기본 유형 인덱스 생성¶
POST /api/v1/log_index_cfg/add
개요¶
기본 저장 유형 인덱스 구성을 생성합니다.
본문 요청 매개변수¶
| 매개변수 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
| name | string | Y | 인덱스 이름 예시: xxx 빈 값 허용: False 최대 길이: 256 |
| desc | string | 인덱스 설명 예시: xxx 빈 값 허용: False 빈 문자열 허용: True 최대 길이: 1024 |
|
| extend | json | 프런트엔드 사용자 정의 데이터 빈 값 허용: True |
|
| duration | string | 데이터 보존 기간 빈 값 허용: False 예시: 7d |
|
| storagePolicy | json | 장기 저장 정책. 로그는 scopedb 저장 워크스페이스에서만 활성화할 수 있습니다. pay, enterprise, unlimited는 로그 장기 저장을 지원하며, enterprise/unlimited의 logging은 최대 1800d입니다. enterprise/unlimited의 rp는 장기 저장 기간(최대 3600d)을 사용자 정의할 수 있습니다. unlimited는 BossAccountSet이 활성화된 경우 metric_point_total 과금 유형에서만 지원되며, 비활성화된 경우 metric_point_total로 처리됩니다. longStorageEnabled와 longStorageDuration을 포함합니다. 예시: {'longStorageEnabled': True, 'longStorageDuration': '180d'} 빈 값 허용: False |
|
| directIndex | boolean | 네이티브 직접 쓰기 인덱스, 기본값 false, 2025-06-25 릴리스에서 추가됨 빈 값 허용: False |
|
| isFullLineIndex | int | 전체 행 인덱스 여부. 정수 0/1 또는 불리언 false/true를 지원합니다. Scopedb에서 새 인덱스는 기본적으로 1/true만 지원하며, 다른 로그 저장소는 기존 기본값 0을 유지하고 1로 설정할 수 없습니다. 빈 값 허용: False |
|
| setting | json | 관련 구성 정보 빈 값 허용: False |
|
| setting.hot_retention | int | Volcengine 스토리지, 표준 스토리지-핫 스토리지 빈 값 허용: False |
|
| setting.cold_retention | int | Volcengine 스토리지, 저빈도 스토리지-콜드 데이터 빈 값 허용: False |
|
| setting.archive_retention | int | Volcengine 스토리지, 아카이브 스토리지-아카이브 데이터 빈 값 허용: False |
매개변수 추가 설명¶
1. 요청 매개변수 설명
| 매개변수 이름 | type | 필수 | 설명 |
|---|---|---|---|
| name | String | 필수 | 인덱스 이름 |
| desc | String | 인덱스 설명 | |
| extend | Json | 프런트엔드 에코(표시)용 확장 정보 | |
| duration | Json | 인덱스 총 저장 기간, 예시: 60d | |
| directIndex | Boolean | 네이티브 직접 쓰기 인덱스, 기본값 false, 2025-06-25 릴리스에서 추가됨 | |
| setting | Json | 로그가 Volcengine 스토리지인 경우 인덱스 구성 정보 |
2. setting 내 매개변수 설명
| 매개변수 이름 | type | 필수 | 설명 |
|---|---|---|---|
| hot_retention | int | 필수 | 표준 스토리지 - 핫 데이터, 하루 단위 시간이어야 함, 단위: 시간(h) |
| cold_retention | int | 저빈도 스토리지 - 콜드 데이터, 하루 단위 시간이어야 함, 단위: 시간(h) | |
| archive_retention | int | 아카이브 스토리지 - 아카이브 데이터, 하루 단위 시간이어야 함, 단위: 시간(h) |
2.1. Volcengine 스토리지 기간 제한:
표준 스토리지: 핫 데이터 스토리지, 데이터 범위: 1-1800일. 저빈도 스토리지가 있으면 데이터 범위: 7-1800일. 아카이브 스토리지가 있으면 데이터 범위: 30-1800일.
저빈도 스토리지: 콜드 데이터 스토리지, 데이터 범위: 30-1800일.
아카이브 스토리지: 아카이브 데이터 등의 스토리지, 데이터 범위: 60-1800일.
2.2. Volcengine 스토리지 기간 제한:
총 저장 기간(표준 스토리지 + 저빈도 스토리지 + 아카이브 스토리지)은 1800일을 초과할 수 없습니다.
3. extend 내 매개변수 설명
| 매개변수 이름 | type | 필수 | 설명 |
|---|---|---|---|
| matchMode | String | 일치 모드, 선택 값: basic, advanced. 기본값은 basic으로 처리 |
|
| filters | Array[dict] | 일반 일치 필터 조건 목록. 네이티브 직접 쓰기 인덱스는 구성할 필요가 없으며, advanced 모드에서는 빈 배열 전달을 권장 |
|
| advancedFilter | Dict | 고급 일치 조건 트리, matchMode=advanced일 때 적용 |
|
| extendFields | Array | 인덱스 확장 필드 정보 | |
| extendFields[*].tag | String | 필수 | 키 필드 이름 |
| extendFields[*].alias | String | 키 필드 별칭 | |
| services | String | 일치 서비스 |
4. extend.filters 본문 구조 설명
| 매개변수 이름 | type | 필수 | 설명 |
|---|---|---|---|
| condition | string | 이전 필터 조건과의 관계, 선택 값: and, or. 기본값: and |
|
| name | string | 필터링할 필드 이름 | |
| operation | string | 연산자, 선택 값: in, not_in |
|
| value | array | 값 목록 | |
| value[#] | string/int/boolean | 문자열/숫자/불리언 유형 가능 |
5. extend.advancedFilter 본문 구조 설명
| 매개변수 이름 | type | 필수 | 설명 |
|---|---|---|---|
| type | string | 필수 | 루트 노드는 고정적으로 group |
| condition | string | 필수 | 현재 그룹 내 하위 노드 관계, 선택 값: and, or |
| filters | array | 필수 | 하위 노드 목록, 요소는 rule 또는 group일 수 있음 |
| filters[#].type | string | 필수 | 노드 유형, 선택 값: rule, group |
| filters[#].name | string | rule 필수 | 로그 필드 이름 |
| filters[#].operation | string | rule 필수 | 연산자, 선택 값: =, !=, in, not_in, match, not_match, wildcard, not_wildcard, regexp, not_regexp, >, <, >=, <=, exist, not_exist |
| filters[#].value | array | rule 필수 | 값 목록, exist / not_exist는 빈 배열 사용 |
matchMode=advanced일 때 백엔드는 DQL where 스타일로 conditions를 생성합니다(예: IN, NOT IN, = match('xxx'), = wildcard('xxx')). 일반 filters는 기존 생성 형식을 유지합니다.
요청 예시¶
curl 'https://openapi.guance.com/api/v1/log_index_cfg/add' \
-H 'Accept: application/json, text/plain, */*' \
-H 'Accept-Language: zh' \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'DF-API-KEY: <DF-API-KEY>' \
--data-raw '{"name":"test_index","duration":"14d","isFullLineIndex":1,"extend":{"filters":[{"condition":"and","name":"host","operation":"in","value":["custom_host1"]}]}}' \
--compressed
응답¶
{
"code": 200,
"content": {
"conditions": "{ `host` in [ 'custom_host1' ] }",
"createAt": 1698751853,
"creator": "xxx",
"deleteAt": -1,
"duration": "14d",
"extend": {
"filters": [
{
"condition": "and",
"name": "host",
"operation": "in",
"value": [
"custom_host1"
]
}
]
},
"exterStoreName": "",
"exterStoreProject": "",
"externalResourceAccessCfgUUID": "",
"id": null,
"isBindCustomStore": 0,
"isFullLineIndex": 1,
"isPublicNetworkAccess": 0,
"name": "test_index",
"queryType": "logging",
"region": "",
"setting": {},
"sortNo": 3,
"status": 0,
"storeType": "",
"updateAt": 1698751853,
"updator": "xxx",
"uuid": "lgim_xxxx32",
"workspaceUUID": "wksp_xxxx32"
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE-600346C3-6C89-4391-9CA3-2152D10149D8"
}