생성¶
POST /api/v1/pipeline/add
개요¶
Pipeline을 생성합니다.
category 유형이 profiling인 경우, 워크스페이스 설정 필드 CentralPLServiceSwitch(/workspace/get API가 반환)가 true여야 이 규칙이 실제로 적용됩니다.
Body 요청 매개변수¶
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
| name | string | Y | Pipeline 파일 이름 빈 값 허용: False 최대 길이: 256 $notSearchRegExp: [^a-zA-Z0-9_\u4e00-\u9fa5-]+ |
| type | string | Y | Pipeline 파일 유형 빈 값 허용: False 선택 값: ['local', 'central'] |
| source | array | 선택한 source 목록 빈 값 허용: False |
|
| versionAction | string | 버전 출처 동작; 공식 템플릿 또는 현재 Pipeline을 클론할 때 전달 빈 값 허용: False 선택 값: ['official_clone', 'current_clone'] |
|
| sourceTemplateName | string | 공식 템플릿 클론 시 출처 템플릿 이름 빈 값 허용: False 빈 문자열 허용: False |
|
| sourcePipelineUUID | string | 현재 버전 클론 시 출처 Pipeline UUID 빈 값 허용: False 빈 문자열 허용: False |
|
| sourceConfigVersion | integer | 현재 버전 클론 시 읽어오는 출처 Pipeline 구성 버전 번호 빈 값 허용: False $minValue: 1 |
|
| content | string | Y | Pipeline 파일 내용(base64 인코딩). base64 디코딩된 스크립트는 Studio UI의 문자 수 계산 규칙에 따라 검증됩니다. U+0001–U+007E, U+FF60–U+FF9F는 1로 계산하고, 기타 UTF-16 단위는 2로 계산하며 상한은 65535입니다. 또한 디코딩된 스크립트 전체의 UTF-8 인코딩 크기는 65535바이트를 초과할 수 없습니다. 둘 중 하나라도 초과하면 ft.ContextExceedLimit이 반환되며, 바이트 초과 안내는 바이트 단위로 표시됩니다. 빈 값 허용: False |
| testData | string | 테스트 데이터(base64 인코딩). OpenAPI 측에서는 빈 문자열 또는 base64 디코딩 후 JSON 배열인 내용만 전달할 수 있습니다. 생성 방식: 1. 먼저 테스트 샘플 배열을 준비합니다. 2. 배열에 JSON.stringify를 실행합니다. 3. 얻은 UTF-8 문자열을 base64 인코딩한 후 testData로 전달합니다. 일반적인 예시: - 빈 샘플 배열: [] -> W10= - 단일 JSON 로그: [{"level":"info","msg":"HTTP"}] -> W3sibGV2ZWwiOiJpbmZvIiwibXNnIjoiSFRUUCJ9XQ== - 단일 텍스트 로그: ["raw log line"] -> WyJyYXcgbG9nIGxpbmUiXQ== 잘못된 예시: {"level":"info","msg":"HTTP"}를 base64로 인코딩하여 바로 전달하는 경우, 디코딩 후 최상위 레벨이 object이므로 배열이 아닙니다. 빈 값 허용: False 빈 문자열 허용: True |
|
| dataType | string | 데이터 유형: line_protocol - 라인 프로토콜 형식; json - JSON 형식; message - Message 예시: line_protocol 빈 값 허용: False 빈 문자열 허용: True 선택 값: ['line_protocol', 'json', 'message'] |
|
| isForce | boolean | 특정 유형에 default가 있을 때 교체할지 여부 빈 값 허용: False |
|
| category | string | Y | 카테고리 빈 값 허용: False 빈 문자열 허용: False 선택 값: ['logging', 'object', 'custom_object', 'network', 'tracing', 'rum', 'llm', 'agent_monitor', 'security', 'keyevent', 'metric', 'profiling', 'dialtesting', 'billing', 'keyevent'] |
| asDefault | int | 해당 유형의 기본 pipeline으로 지정할지 여부, 1은 기본으로 설정, 0은 기본이 아님 빈 값 허용: False |
|
| enableByLogBackup | int | 전송 데이터를 처리하도록 Pipeline 활성화, 1은 활성화, 0은 비활성화 빈 값 허용: False |
|
| extend | json | 카테고리 빈 값 허용: False |
|
| extend.appID | array | appID 빈 값 허용: True |
|
| extend.measurement | array | source 출처 빈 값 허용: True |
|
| extend.loggingIndex | string | 로그 인덱스 빈 값 허용: True |
|
| extend.ifAiCreate | boolean | AI 생성 파싱 규칙인지 여부 빈 값 허용: True |
|
| extend.aiTargetStructure | string | AI 추출 내용 빈 문자열 허용: True 빈 값 허용: True |
|
| extend.exampleSource | string | 예제 소스 빈 문자열 허용: True 빈 값 허용: True |
|
| extend.exampleType | string | 예제 유형 빈 문자열 허용: True 빈 값 허용: True |
매개변수 추가 설명¶
요청 예시¶
curl 'https://openapi.guance.com/api/v1/pipeline/add' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"name":"openapi_test","category":"logging","asDefault":0,"content":"YWRkX2tleShjaXR5LCAic2hhbmdoYWkiKQ==","testData":"W3sibGV2ZWwiOiJpbmZvIiwibXNnIjoiSFRUUCJ9XQ==","source":["nsqlookupd"]}' \
--compressed
응답¶
{
"code": 200,
"content": {
"asDefault": 0,
"category": "logging",
"content": "YWRkX2tleShjaXR5LCAic2hhbmdoYWkiKQ==\n",
"createAt": 1678026470,
"creator": "xxxx",
"deleteAt": -1,
"extend": {},
"id": null,
"isSysTemplate": null,
"name": "openapi_test",
"status": 0,
"testData": "W10=\n",
"updateAt": 1678026470,
"updator": "xxxx",
"uuid": "pl_xxxx32",
"workspaceUUID": "wksp_xxxx32"
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE-74509B6F-DE3D-4905-AC9F-4FD96ED78EC3"
}