コンテンツにスキップ

変更



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

フィードバック

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