変更¶
POST /api/v1/aggs_to_metric/{rule_uuid}/modify
概要¶
メトリクス生成ルールの変更
ルートパラメータ¶
| パラメータ名 | タイプ | 必須 | 説明 |
|---|---|---|---|
| rule_uuid | string | Y | 集約メトリクス生成ルールの ID |
リクエストボディパラメータ¶
| パラメータ名 | タイプ | 必須 | 説明 |
|---|---|---|---|
| extend | json | Y | 追加情報 空を許可: False |
| jsonScript | json | Y | ルール設定 空を許可: False |
| jsonScript.type | string | Y | タイプ 例: rumToMetric 空を許可: False 空文字列を許可: False 選択可能な値: ['logToMetric', 'rumToMetric', 'apmToMetric', 'metricToMetric', 'securityToMetric', 'dialingToMetric'] |
| jsonScript.query | json | Y | dql クエリ関連情報 空を許可: False |
| jsonScript.metricInfo | json | Y | メトリクス設定情報 空を許可: False |
| jsonScript.metricInfo.every | string | Y | 頻度。単位付きの整数をサポート。1m〜59m または 1h〜24h から選択可能。cron はサポートされません 例: 5m 空文字列を許可: False |
| jsonScript.metricInfo.metric | string | Y | メジャーメント名 例: cpu 空文字列を許可: False |
| jsonScript.metricInfo.metricField | string | Y | メトリクス名 例: load5s 空文字列を許可: False |
| jsonScript.metricInfo.unit | string | 単位 例: load5s 空文字列を許可: True |
|
| jsonScript.metricInfo.desc | string | 説明 例: xxx 空文字列を許可: True |
|
| jsonScript.metricInfo.delaySeconds | integer | データ待機ウィンドウ(単位: 秒)。0/60/120/180/300/600/900/1200/1800 をサポート。デフォルトの 0 は遅延なしを意味します 例: 60 選択可能な値: [0, 60, 120, 180, 300, 600, 900, 1200, 1800] |
|
| skipRepeatNameCheck | boolean | メジャーメント名とメトリクス名の重複チェックをスキップするかどうか。デフォルトは false。false の場合は重複チェックを実行し、true の場合は重複チェックをスキップします 例: false 空を許可: False |
パラメータ補足説明¶
データ説明.
1. jsonScript のパラメータ説明
| パラメータ名 | type | 必須 | 説明 |
|---|---|---|---|
| type | String | 必須 | データソースのタイプ。列挙型 |
| query | Json | 必須 | クエリ情報 |
| metricInfo | Json | 必須 | メジャーメント設定情報 |
2. タイプ jsonScript.type の説明
| key | 説明 |
|---|---|
| rumToMetric | RUM からメトリクスを生成 |
| apmToMetric | APM からメトリクスを生成 |
| logToMetric | Logging からメトリクスを生成 |
| metricToMetric | Metric からメトリクスを生成 |
| securityToMetric | セキュリティチェックからメトリクスを生成 |
3. タイプ jsonScript.metricInfo の説明
| パラメータ名 | type | 必須 | 説明 |
|---|---|---|---|
| every | String | 必須 | 頻度。単位付きの整数をサポート。1m〜59m または 1h〜24h から選択可能。cron はサポートされません |
| metric | String | 必須 | メジャーメント名 |
| metricField | String | 必須 | メトリクス名 |
| unit | String | 単位 | |
| desc | String | 説明 | |
| delaySeconds | Integer | データ待機ウィンドウ(単位: 秒)。0、60、120、180、300、600、900、1200、1800 をサポート。デフォルトの 0 は遅延なしを意味します |
3.1 タイプ jsonScript.metricInfo.unit の単位説明
単位形式: custom/["単位タイプ","単位"]、例: custom/["time","ms"]
カスタム単位形式: custom/["custom","カスタム単位"]、例: custom/["custom","tt"]
標準単位タイプについては、単位の説明 を参照してください。
4. タイプ jsonScript.query の説明
| パラメータ名 | type | 必須 | 説明 |
|---|---|---|---|
| q | String | 必須 | クエリ文 |
| qtype | String | クエリ構文タイプ。dql/promql | |
| qmode | String | クエリタイプ。選択ボックス: selectorQuery、手書き: customQuery。このフィールドはフロントエンドのクエリ表示スタイルに影響します |
5. extend のパラメータ説明
| パラメータ名 | type | 必須 | 説明 |
|---|---|---|---|
| filters | Array[dict] | ログタイプ以外の場合のフィルター条件リスト | |
| groupBy | Array[str] | グループ化情報 | |
| funcName | string | 必須 | 集約関数。列挙値: ("count", "avg", "max", "sum", "min", "count_distinct", "distribution", "p75", "p95", "p99") |
| fieldKey | string | 必須 | 集約フィールド |
| index | string | ログタイプの場合のインデックス名 | |
| source | string | このフィールドはタイプによって意味が異なります: ログタイプ: ソース source、APM タイプ: サービス service、RUM タイプ: アプリ app_id、メトリクスタイプ: メジャーメント、セキュリティチェック: カテゴリ category | |
| filterString | string | ログタイプの場合のフィルター条件。元のフィルター文字列。例: 'host:hangzhou123 -service:coredns internal:true' |
注意:
extend フィールド内のすべてのフィールドは、フロントエンドでの表示のみを目的としています。実際のメトリクス生成クエリ文は、jsonScript.query で設定されたクエリ情報に基づきます。
選択ボックスモードで Distribution を使用する場合、extend.funcName に distribution を渡し、jsonScript.query.q には histogram_auto(<field>) を使用します。
6. extend.filters の構造説明
| パラメータ名 | type | 必須 | 説明 |
|---|---|---|---|
| condition | string | 前のフィルター条件との関係。選択可能な値: and、or。デフォルト値: and |
|
| name | string | フィルター対象のフィールド名 | |
| op | string | 演算子。選択可能な値: =, !=, match, not match |
|
| values | array | 値のリスト | |
| values[#] | string/int/boolean | 文字列/数値/ブール型を指定できます。データ比較時は、operation の特性に応じて values から特定の要素を取り出して比較します。たとえば、operation が = の場合、values[0] のみが演算に使用されます |
6.1 extend.filters の例:
[
{
"name": "A",
"condition": "and",
"op": "match",
"values": ["error"]
},
{
"name": "tagC",
"condition": "and",
"op": "=",
"values": ["ok"]
}
]
7. 全体構造の例:
{
"extend": {
"filters": [],
"groupBy": ["host_ip"],
"funcName": "count",
"fieldKey": "*",
"index": "default",
"source": "*",
"filterString": "host:hangzhou123 region:guanzhou"
},
"jsonScript": {
"type": "logToMetric",
"metricInfo": {
"every": "1m",
"metric": "test",
"metricField": "001-test",
"unit": "custom/[\"timeStamp\",\"ms\"]",
"desc": "",
"delaySeconds": 60
},
"query": {
"q": "L('default')::RE(`.*`):(count(`*`)) { `host`='hangzhou123' and `region`='guanzhou' } BY `host_ip`",
"qtype": "dql"
}
}
}
リクエスト例¶
curl 'https://openapi.guance.com/api/v1/aggs_to_metric/rul_xxxx/modify' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"extend":{"filters":[],"groupBy":["host_ip"],"funcName":"count","fieldKey":"*","index":"default","source":"*","filterString":"host:hangzhou123 region:guanzhou"},"jsonScript":{"type":"logToMetric","metricInfo":{"every":"1m","metric":"test","metricField":"001-test","unit":"custom/[\"timeStamp\",\"ms\"]","desc":"","delaySeconds":60},"query":{"q":"L('default')::RE(`.*`):(count(`*`)) { `host`='hangzhou123' and `region`='guanzhou' } BY `host_ip`","qtype":"dql"}}}' \
--compressed
レスポンス¶
{
"code": 200,
"content": {
"workspaceUUID": "wksp_xxxx",
"monitorUUID": "",
"updator": null,
"type": "aggs",
"refKey": "",
"secret": null,
"jsonScript": {
"type": "logToMetric",
"metricInfo": {
"every": "1m",
"metric": "test",
"metricField": "001-test",
"unit": "custom/[\"timeStamp\",\"ms\"]",
"desc": "",
"delaySeconds": 60
},
"query": {
"q": "L('default')::RE(`.*`):(count(`*`)) { `host`='hangzhou123' and `region`='guanzhou' } BY `host_ip`",
"qtype": "dql"
}
},
"crontabInfo": {
"id": "cron-4VdviPep3oHc",
"crontab": null
},
"extend": {
"filters": [],
"groupBy": [
"host_ip"
],
"funcName": "count",
"fieldKey": "*",
"index": "default",
"source": "*",
"filterString": "host:hangzhou123 region:guanzhou"
},
"createdWay": "manual",
"isLocked": false,
"openPermissionSet": false,
"permissionSet": [],
"id": null,
"uuid": "rul_xxxx",
"status": 0,
"creator": "acnt_xxxx",
"createAt": 1734594428,
"deleteAt": -1,
"updateAt": null,
"__operation_info": {
"uuid": "rul_xxxx"
}
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "1111139030457458757"
}