コンテンツにスキップ

作成



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
$minValue: 0
$maxValue: 86400
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 ログからメトリクスを生成
metricToMetric メトリクスからメトリクスを生成
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 必須 集約関数(qmode が選択ボックスモードの場合に必須。フロントエンド表示用)。列挙値: ("count", "avg", "max", "sum", "min", "count_distinct", "p75", "p95", "p99")
fieldKey string 必須 集約フィールド(qmode が選択ボックスモードの場合に必須。フロントエンド表示用)
index string ログタイプの場合のインデックス名
source string このフィールドはタイプごとに意味が異なります: ログタイプ: ソース source、アプリケーションパフォーマンスタイプ: サービス service、ユーザーアクセスタイプ: アプリ 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/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"
} 

フィードバック

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