Create a Default Type Index¶
POST /api/v1/log_index_cfg/add
Overview¶
Create a default storage type index configuration.
Body Request Parameters¶
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Y | Index name Example: xxx Allow empty: False Max length: 256 |
| desc | string | Index description Example: xxx Allow empty: False Allow empty string: True Max length: 1024 |
|
| extend | json | Frontend custom data Allow empty: True |
|
| duration | string | Data retention duration Allow empty: False Example: 7d |
|
| storagePolicy | json | Long-term storage policy. For logs, only workspaces with scopedb storage are allowed to enable this; pay, enterprise, and unlimited support long-term log storage, with enterprise/unlimited logging capped at 1800d; enterprise/unlimited rp supports custom long-term storage duration (maximum 3600d); unlimited supports only the metric_point_total billing type when BossAccountSet is enabled, and is processed as metric_point_total when disabled; includes longStorageEnabled and longStorageDuration Example: {'longStorageEnabled': True, 'longStorageDuration': '180d'} Allow empty: False |
|
| directIndex | boolean | Native direct write index, default false, newly added in the 2025-06-25 iteration Allow empty: False |
|
| isFullLineIndex | int | Whether it is a full-line index; supports integer 0/1 or boolean false/true; Scopedb new indexes default to and only support 1/true, while other log storage keeps the original default of 0 and does not support setting it to 1 Allow empty: False |
|
| setting | json | Related configuration information Allow empty: False |
|
| setting.hot_retention | int | Volcengine storage, standard storage - hot storage Allow empty: False |
|
| setting.cold_retention | int | Volcengine storage, infrequent access storage - cold data Allow empty: False |
|
| setting.archive_retention | int | Volcengine storage, archive storage - archived data Allow empty: False |
Additional Parameter Notes¶
1. Request parameter description
| Parameter | type | Required | Description |
|---|---|---|---|
| name | String | Required | Index name |
| desc | String | Index description | |
| extend | Json | Extension information used for frontend echo | |
| duration | Json | Index total storage duration, example: 60d | |
| directIndex | Boolean | Native direct write index, default false, newly added in the 2025-06-25 iteration | |
| setting | Json | Index configuration information when logs use Volcengine storage |
2. Parameters in setting
| Parameter | type | Required | Description |
|---|---|---|---|
| hot_retention | int | Required | Standard storage - hot data, must be a whole number of days in hours. Unit: hour (h) |
| cold_retention | int | Infrequent access storage - cold data, must be a whole number of days in hours. Unit: hour (h) | |
| archive_retention | int | Archive storage - archived data, must be a whole number of days in hours. Unit: hour (h) |
2.1 Volcengine storage duration limits:
Standard storage: hot data storage, range: 1-1800 days. If infrequent access storage is configured, the range is 7-1800 days; if archive storage is configured, the range is 30-1800 days.
Infrequent access storage: cold data storage, range: 30-1800 days.
Archive storage: archived data storage, range: 60-1800 days.
2.2 Volcengine storage duration limits:
Total storage duration (standard storage + infrequent access storage + archive storage) cannot exceed 1800 days.
3. Parameters in extend
| Parameter | type | Required | Description |
|---|---|---|---|
| matchMode | String | Matching mode, optional values: basic, advanced; defaults to basic when omitted |
|
| filters | Array[dict] | Normal matching filter condition list. Not required for native direct write indexes; an empty array is recommended in advanced mode |
|
| advancedFilter | Dict | Advanced matching condition tree, effective when matchMode=advanced |
|
| extendFields | Array | Index extended field information | |
| extendFields[*].tag | String | Yes | Key field name |
| extendFields[*].alias | String | Key field alias | |
| services | String | Matched service |
4. Structure of extend.filters
| Parameter | type | Required | Description |
|---|---|---|---|
| condition | string | Relationship with the previous filter condition, optional values: and, or; default: and |
|
| name | string | Field name to be filtered | |
| operation | string | Operator, optional values: in, not_in |
|
| value | array | Value list | |
| value[#] | string/int/boolean | Can be string/numeric/boolean type |
5. Structure of extend.advancedFilter
| Parameter | type | Required | Description |
|---|---|---|---|
| type | string | Yes | Root node is fixed to group |
| condition | string | Yes | Relationship among child nodes in the current group, optional values: and, or |
| filters | array | Yes | Child node list, elements can be rule or group |
| filters[#].type | string | Yes | Node type, optional values: rule, group |
| filters[#].name | string | Required for rule | Log field name |
| filters[#].operation | string | Required for rule | Operator, optional values: =, !=, in, not_in, match, not_match, wildcard, not_wildcard, regexp, not_regexp, >, <, >=, <=, exist, not_exist |
| filters[#].value | array | Required for rule | Value list; exist / not_exist use an empty array |
When matchMode=advanced, the backend generates conditions in DQL where style, e.g., IN, NOT IN, = match('xxx'), = wildcard('xxx'); regular filters still maintain the historical generation format.
Request Example¶
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
Response¶
{
"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"
}