DQL データクエリ(旧バージョン)¶
POST /api/v1/df/query_data
概要¶
DQL データクエリ
Query リクエストパラメータ¶
| パラメータ名 | 型 | 必須 | 説明 |
|---|---|---|---|
| body | string | dql クエリの query 構造体 空を許可: False |
|
| queries_body | string | dql クエリの query 構造体(2023-08-11 に廃止) 空を許可: False |
|
| search_after | string | ページネーションクエリのリクエストパラメータ(2023-08-11 に廃止) 空を許可: False |
パラメータ補足説明¶
クエリ説明
レスポンス content.data[i].warnings[] には DQLDataAccessScopeRestricted が含まれる場合があります:
details[0].metadata.namespaceは現バージョンでは固定でloggingです。details[0].metadata.restriction=partialは、アクセス権限のあるログインデックスのデータのみが返されることを示します。details[0].metadata.restriction=allは、関連するログインデックスにデータアクセス権限がなく、空の結果が返されることを示します。-
HTTP ステータスコードは依然として 200 であり、この warning は GuanceDB/Kodo の既存の warning と共存します。
-
クエリ文字列の要素フィールド説明
| パラメータ名 | type | 必須 | 説明 |
|---|---|---|---|
| body | string | Y | クエリリクエストボディ |
| queries_body[*] | string | (旧バージョンパラメータ、2023-08-10 に廃止)クエリリスト | |
| search_after | string | (旧バージョンパラメータ、2023-08-10 に廃止。新バージョンでは query 構造体内に移動)クエリのページネーションデータ。初回クエリのデフォルトは [] で、さらにページネーションデータを取得する場合は、前回のクエリ結果の search_after フィールドを追加して後続データを取得します。 |
- body 内の JSON 構造パラメータ説明
| パラメータ名 | type | 必須 | 説明 |
|---|---|---|---|
| queries | array | Y | マルチコマンドクエリ。内容は query オブジェクトのリストです。 |
| fieldTagDescNeeded | boolean | field または tag の説明情報が必要かどうか |
- queries[*] メンバーパラメータ構造説明
| パラメータ名 | type | 必須 | 説明 |
|---|---|---|---|
| qtype | string | Y | クエリ文のタイプ dql: dql タイプのクエリ文を示します。 promql: PromQl タイプのクエリ文を示します。 |
| query | json | Y | クエリ構造 |
| query.q | string | qtype タイプと一致するクエリ文(例:dql または promql クエリ文) | |
| query.ignore_cache | boolean | クエリでキャッシュを無効にするかどうか。デフォルトは false で、キャッシュを使用することを示します。 | |
| query.promqlType | enum | qtype=promql の場合に有効。promql のクエリタイプ。指定可能な値は instantQuery と rangeQuery で、デフォルト値は rangeQuery です。 |
|
| query.highlight | boolean | ハイライトデータを表示するかどうか | |
| query.timeRange | array | 時間範囲のタイムスタンプリスト | |
| query.disableMultipleField | bool | 単一カラムモードを有効にするかどうか。デフォルトは true です。 |
|
| query.showLabel | bool | オブジェクトのラベルを表示するかどうか。デフォルトはなし。 | |
| query.funcList | array | dql の戻り値を再集計するためのものです。disableMultipleField=false の場合、このパラメータは無効です。 | |
| query.slimit | integer | 時系列グループのサイズ。メトリクスクエリにのみ有効です。 | |
| query.soffset | integer | 時系列グループのオフセット | |
| query.limit | integer | ページネーションサイズ | |
| query.offset | integer | ページネーションオフセット | |
| query.orderby | array | ソートリスト。{fieldName:method} の形式です。メジャーメントクエリのソートは fieldName=time のみサポートされています。method は ["desc", "asc"] から選択します。メジャーメントクエリのソートは fieldName=time のみサポートされています。 |
|
| query.density | string | レスポンスのポイント密度。autoDensity より優先度が低く、dql 文で設定された密度より優先度が高くなります。 | |
| query.interval | number | 時間スライス間隔。Kodo int64 範囲内に変換可能で、かつ 1ms 以上の整数ミリ秒の正数のみ受け付けます。デフォルト単位は秒で、interval_unit でミリ秒を指定できます。 | |
| query.interval_unit | string | interval の単位。s、ms から選択可能。デフォルトは s です。 |
|
| query.search_after | array | ページネーションマーカー。現在のインターフェースが返すページネーションマーカーで、次回のリクエスト時に渡します。 | |
| query.maxPointCount | integer | 最大ポイント数 | |
| query.workspaceUUID | string | クエリ対象のワークスペースの UUID。"*" はすべての認可されたワークスペースをクエリすることを示します。認可されたワークスペースのリストはインターフェース /wksp_share/granted_ws_list を参照してください。 | |
| query.workspaceUUIDs | array | クエリ対象のワークスペースの UUID リスト。query.workspaceUUID よりも優先度が高くなります。["*"] はすべての認可されたワークスペースをクエリすることを示します。認可されたワークスペースのリストはインターフェース /wksp_share/granted_ws_list を参照してください。 | |
| query.targetRegion | string | クエリ対象のワークスペースを ["*"] に指定した場合、このフィールドは必須です。 | |
| query.output_format | string | lineprotocol: 行プロトコル出力。デフォルトでは未入力の場合、既存の出力形式を維持します。 | |
| query.cursor_time | integer | セグメントクエリの閾値:初回セグメントクエリ時は、cursor_time を end_time に設定する必要があります。以降のセグメントクエリでは、cursor_time をレスポンス内の next_cursor_time に設定する必要があります。 | |
| query.cursor_token | string | ページネーションクエリのトークン(エンジンが cursor_token の値を返却)。ページネーションクエリ時は、前回のクエリで返された next_cursor_token を今回のクエリの cursor_token に設定する必要があります。cursor_token がないリクエストは、ページ送り時に同じタイムスタンプのデータがスキップされる可能性があります。 | |
| query.disable_sampling | bool | サンプリング無効スイッチ。デフォルト値は false です。 | |
| query.disable_truncate | bool | クエリが返却内容を切り詰めるかどうかを示します。デフォルトはなし。 |
- レスポンスのポイント密度
densityパラメータ値の説明
| 指定可能な値 | 説明 |
|---|---|
| lower | 低め、60 ポイント |
| low | 低い、180 ポイント |
| medium | 中程度、360 ポイント |
| high | 高い、720 ポイント |
-
ポイント密度パラメータの優先順位に注意してください。最大密度
density[high]* maxPointCount > interval > density > dql 文内の制御パラメータ -
よくあるクエリの説明
注: openapi インターフェースを使用してデータクエリを実行する場合、デフォルトでは 管理者 ロールになります。データアクセスルールの制限を受ける可能性があることに注意してください。
リクエスト例¶
curl 'https://openapi.guance.com/api/v1/df/query_data?body=\{%22queries%22:\[\{%22uuid%22:%2205ea25f0-2fa3-11ee-aa03-57233270ef0c%22,%22qtype%22:%22dql%22,%22query%22:\{%22q%22:%22L::re(`.*`):(`*`)\{+`index`+IN+\[%27default%27\]+\}%22,%22highlight%22:true,%22limit%22:50,%22orderby%22:\[\{%22time%22:%22desc%22\}\],%22_funcList%22:\[\],%22funcList%22:\[\],%22disableMultipleField%22:false,%22align_time%22:false,%22is_optimized%22:true,%22offset%22:0,%22search_after%22:\[1690808645037,538070,%22L_1690808645037_cj3r2itnel8fnfu5tlag%22\],%22timeRange%22:\[1690807857000,1690808757999\],%22tz%22:%22Asia/Shanghai%22\}\}\],%22expensiveQueryCheck%22:true\}' \
-H 'DF-API-KEY: <DF-API-KEY>' \
--compressed
レスポンス¶
{
"code": 200,
"content": {
"data": [
{
"AsyncTaskPayload": null,
"async_id": "",
"column_names": [
"container_id",
"source",
"filepath",
"image",
"index",
"df_metering_size",
"__namespace",
"host",
"log_read_offset",
"__docid",
"filename",
"service",
"image_name",
"image_short_name",
"image_tag",
"log_read_lines",
"message",
"log_read_time",
"container_name",
"container_type",
"message_length",
"create_time",
"container_runtime_name",
"date_ns",
"status"
],
"complete": false,
"cost": "19ms",
"index_name": "",
"index_names": "",
"index_store_type": "es",
"is_running": false,
"points": null,
"query_type": "",
"raw_query": "{\\\"aggs\\\":{},\\\"_source\\\":{\\\"excludes\\\":[\\\"message@json\\\"],\\\"includes\\\":[]},\\\"query\\\":{\\\"bool\\\":{\\\"filter\\\":[{\\\"term\\\":{\\\"__namespace\\\":\\\"logging\\\"}},{\\\"range\\\":{\\\"date\\\":{\\\"gte\\\":\\\"1680187562081\\\",\\\"lte\\\":\\\"1680230762081\\\"}}},{\\\"bool\\\":{\\\"should\\\":[{\\\"terms\\\":{\\\"index\\\":[\\\"default\\\"]}}]}}]}},\\\"size\\\":50,\\\"sort\\\":[{\\\"date\\\":{\\\"missing\\\":\\\"_last\\\",\\\"order\\\":\\\"desc\\\",\\\"unmapped_type\\\":\\\"long\\\"}},{\\\"date_ns\\\":{\\\"missing\\\":\\\"_last\\\",\\\"order\\\":\\\"desc\\\",\\\"unmapped_type\\\":\\\"long\\\"}},{\\\"__docid\\\":{\\\"missing\\\":\\\"_first\\\",\\\"order\\\":\\\"desc\\\",\\\"unmapped_type\\\":\\\"string\\\"}}],\\\"search_after\\\":[1680226330509,8572,\\\"L_1680226330509_cgj4hqbrhi85kl1m6os0\\\"],\\\"timeout\\\":\\\"54s\\\"}",
"search_after": [
1680226330508,
82936,
"L_1680226330508_cgj4hbdepb7fcn07sf60"
],
"series": [
{
"columns": [
"container_id",
"time",
"source",
"filepath",
"image",
"index",
"df_metering_size",
"__namespace",
"host",
"log_read_offset",
"__docid",
"filename",
"service",
"image_name",
"image_short_name",
"image_tag",
"log_read_lines",
"message",
"log_read_time",
"container_name",
"container_type",
"message_length",
"create_time",
"container_runtime_name",
"date_ns",
"status"
],
"values": [
[
"2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380",
1680226330509,
"test",
"/var/lib/docker/containers/2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380/2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380-json.log",
"test:test",
"default",
1,
"logging",
"izbp152ke14timzud0du15z",
149232879,
"L_1680226330509_cgj4hqbrhi85kl1m6org",
"2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380-json.log",
"test",
"test",
"test",
"test",
147890,
"ddtrace.profiling.exporter.http.UploadFailed: [Errno 101] Network is unreachable",
1680226330508872700,
"compose_python_ddtrace_web_b_1",
"docker",
80,
1680230633485,
"compose_python_ddtrace_web_b_1",
8571,
"unknown"
],
[
"2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380",
1680226330509,
"test",
"/var/lib/docker/containers/2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380/2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380-json.log",
"test:test",
"default",
1,
"logging",
"izbp152ke14timzud0du15z",
149232879,
"L_1680226330509_cgj4hqbrhi85kl1m6or0",
"2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380-json.log",
"test",
"test",
"test",
"test",
147889,
" raise retry_exc from fut.exception()",
1680226330508872700,
"compose_python_ddtrace_web_b_1",
"docker",
40,
1680230633485,
"compose_python_ddtrace_web_b_1",
8570,
"unknown"
],
[
"2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380",
1680226330509,
"test",
"/var/lib/docker/containers/2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380/2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380-json.log",
"test:test",
"default",
1,
"logging",
"izbp152ke14timzud0du15z",
149232879,
"L_1680226330509_cgj4hqbrhi85kl1m6oqg",
"2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380-json.log",
"test",
"test",
"test",
"test",
147888,
" File \\\"/usr/local/lib/python3.7/site-packages/tenacity/__init__.py\\\", line 361, in iter",
1680226330508872700,
"compose_python_ddtrace_web_b_1",
"docker",
87,
1680230633485,
"compose_python_ddtrace_web_b_1",
8569,
"unknown"
],
[
"2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380",
1680226330508,
"test",
"/var/lib/docker/containers/2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380/2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380-json.log",
"test:test",
"default",
1,
"logging",
"izbp152ke14timzud0du15z",
149228783,
"L_1680226330508_cgj4hbdepb7fcn07sf60",
"2fef685801c80b5cb7d04b7b5e859007de94752aadbe801df812a058acf5e380-json.log",
"test",
"test",
"test",
"test",
147841,
"KeyError: 'dd.service'",
1680226330507918000,
"compose_python_ddtrace_web_b_1",
"docker",
22,
1680230573234,
"compose_python_ddtrace_web_b_1",
82936,
"unknown"
]
]
}
],
"total_hits": 10000
}
]
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE-CD50CBBD-E29B-4F58-BD6B-618EED50920A"
}