変更¶
POST /api/v1/aggs_to_metric/{rule_uuid}/modify
概要¶
生成指標ルールの変更
ルートパラメータ¶
| パラメータ名 | タイプ | 必須 | 説明 |
|---|---|---|---|
| rule_uuid | string | Y | 集約生成指標の ID |
Body リクエストパラメータ¶
| パラメータ名 | タイプ | 必須 | 説明 |
|---|---|---|---|
| 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 $minValue: 0 $maxValue: 86400 |
|
| skipRepeatNameCheck | boolean | メジャーメント・メトリクス名の重複チェックをスキップするかどうか。デフォルト 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 は遅延なしを意味する。 |
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", "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 で設定されたクエリ情報に従います。
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"
}