로그 스키마 생성
새 로그 스키마를 생성합니다. 기존 스키마의 설정은 로그 스키마 수정 API로 변경할 수 있습니다.
필요 권한
관리자 이상의 계정으로 이용할 수 있습니다.
HTTP 요청
POST /api/sonar/log-schemas
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
-d 'code=ping' \
-d 'name=핑' \
-d 'fields=[{"name":"_time","type":"DATE","display_name":"시각","ordinal":1},{"name":"dst_ip","type":"IP","display_name":"목적지IP","ordinal":2},{"name":"rtt","type":"INT","display_name":"왕복시간","ordinal":3}]' \
-X POST \
https://HOSTNAME/api/sonar/log-schemas
요청 매개변수
| 키 | 필수 | 타입 | 설명 | 비고 |
|---|---|---|---|---|
| code | O | 문자열 | 로그 스키마 코드 | 최소 1자, 최대 50자 |
| name | O | 문자열 | 로그 스키마 이름 | 최소 1자, 최대 50자 |
| name_trans | X | 문자열 키/값 | 로케일별 스키마 이름 | JSON 형식 문자열 |
| description | X | 문자열 | 로그 스키마 설명 | 최대 255자 |
| fields | X | 객체 배열 | 정규화 필드 정의 목록 | JSON 형식 문자열 |
name_trans는 로케일별 스키마 이름을 담은 JSON 형식의 문자열이며, 키는 en, ko, ja, zh 중 하나여야 합니다.
fields 객체 속성
- name (문자열, 필수): 필드 이름. 최소 1자, 최대 50자.
- display_name (문자열, 필수): 화면 표시 이름. 최소 1자, 최대 50자.
- display_name_trans (맵, 선택): 로케일별 표시 이름. 키는
en,ko,ja,zh중 하나여야 합니다. - type (문자열, 필수): 필드 유형.
DATE,STRING,IP,PORT,SHORT,INT,LONG,COUNTRY,FLOAT,DOUBLE,BOOL,MD5,SHA1,URL,SHA256,DOMAIN중 하나. - ordinal (32비트 정수, 선택): 필드 표시 순서
정상 응답
{
"code": "ping"
}
- code (문자열): 생성된 로그 스키마 코드
오류 응답
code 또는 name이 누락된 경우
HTTP 상태 코드 400 응답
{
"error_code": "null-argument",
"error_msg": "code should be not null"
}
code 또는 name 값의 길이가 잘못된 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'code' must be shorter than or equal to 50 characters."
}
description 값의 길이가 잘못된 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'description' must be shorter than or equal to 255 characters."
}
fields.name 또는 fields.display_name이 누락된 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'fields.name' should be not null"
}
fields.type이 문자열이 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'fields.type' should be string type."
}
fields.type이 허용 값이 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'fields.type' should be one of DATE, STRING, IP, PORT, SHORT, INT, LONG, COUNTRY, FLOAT, DOUBLE, BOOL, MD5, SHA1, URL, SHA256, DOMAIN"
}
name_trans 또는 display_name_trans에 지원하지 않는 로케일을 지정한 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "'ru' is unsupported locale."
}
로그 스키마 코드가 중복된 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "duplicated log schema code: ping"
}
권한이 없는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "no-permission"
}