コンテンツにスキップ

変更



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"
} 

フィードバック

このページは役に立ちましたか?