コンテンツにスキップ

作成



POST /api/v1/aggs_to_metric/add

概要

メトリクス生成ルールの作成

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/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 必須 データソースのタイプ(enum 型)
query Json 必須 クエリ情報
metricInfo Json 必須 メジャーメント設定情報

2. タイプjsonScript.type の説明

key 説明
rumToMetric RUM からメトリクスを生成
apmToMetric APM からメトリクスを生成
logToMetric ログからメトリクスを生成
metricToMetric メトリクスからメトリクスを生成
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 必須 集計関数(qmode が選択ボックスモードの場合に必須。フロントエンド表示用)。選択可能な値: ("count", "avg", "max", "sum", "min", "count_distinct", "distribution", "p75", "p95", "p99")
fieldKey string 必須 集計フィールド(qmode が選択ボックスモードの場合に必須。フロントエンド表示用)
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/add' \
-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"
} 

フィードバック

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