apmspan.get

説明

integer/array apmspan.get(object parameters)

指定したパラメータに従ってスパンを取得できます。

このメソッドは、すべてのタイプのユーザーが利用できます。 メソッドを呼び出す権限は、ユーザーロールの設定で取り消すことができます。 詳細については、ユーザーロールを参照してください。

パラメータ

(object) 目的の出力を定義するパラメータ。

このメソッドでは、以下のパラメータをサポートしています。

パラメータ 型 説明
time_from timestamp 指定した時刻以降に開始したスパンのみを返します。

パラメータの動作:
- 必須
time_till timestamp 指定した時刻より前に開始したスパンのみを返します。

パラメータの動作:
- 必須
traceids string/array 指定したトレースに属するスパンのみを返します。
spanids string/array 指定したIDを持つスパンのみを返します。
parent_spanids string/array 指定した親スパンを持つスパンのみを返します。
resource_attributes object/array 指定したリソース属性を持つスパンのみを返します。
形式: [{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。
空の配列を指定すると、すべてのスパンを返します。

使用可能な演算子の値:
0 - (デフォルト) 含む;
1 - 等しい;
2 - 含まない;
3 - 等しくない;
4 - 存在する;
5 - 存在しない。
resource_attributes_evaltype integer resource_attributes の条件に対する評価方法。

使用可能な値:
0 - (デフォルト) And/Or;
2 - Or。
span_attributes object/array 指定したスパン属性を持つスパンのみを返します。
形式: [{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。
空の配列を指定すると、すべてのスパンを返します。

使用可能な演算子の値:
0 - (デフォルト) 含む;
1 - 等しい;
2 - 含まない;
3 - 等しくない;
4 - 存在する;
5 - 存在しない。
span_attributes_evaltype integer span_attributes の条件に対する評価方法。

使用可能な値:
0 - (デフォルト) And/Or;
2 - Or。
min_duration integer 指定した値以上の期間を持つスパンのみを返します。値の単位はナノ秒です。
max_duration integer 指定した値未満の期間を持つスパンのみを返します。値の単位はナノ秒です。
filter object 指定したフィルターに完全に一致する結果のみを返します。

プロパティ名をキーとし、一致させる単一の値または値の配列を値とするオブジェクトを受け取ります。

サポートされるプロパティ: traceid, spanid, parent_spanid, trace_state, span_name, span_kind, service_name, scope_name, scope_version, status_code, status_message。
search object 指定したパターンに一致する結果を返します(大文字と小文字を区別しません)。

プロパティ名をキーとし、検索対象の文字列を値とするオブジェクトを受け取ります。追加のオプションを指定しない場合、LIKE "%…%" 検索を実行します。

サポートされるプロパティ: trace_state, span_name, service_name, scope_name, scope_version, status_message。
sortfield string/array 指定したプロパティで結果を並べ替えます。

使用可能な値: timestamp, traceid, spanid, parent_spanid, trace_state, span_name, span_kind, service_name, scope_name, scope_version, duration, status_code, status_message。
offset integer 結果を返す前にスキップするレコード数。
countOutput boolean これらのパラメータについては、リファレンスコメントで説明しています。
excludeSearch boolean
limit integer
output query
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

戻り値

(integer/array) 次のいずれかを返します。

  • オブジェクトの配列
  • countOutput パラメータが使用されている場合は、取得したオブジェクトの数

例

トレースのスパン階層の取得

トレース「dee625f33cb0994e86c5cd4640e3b09c」の最初の4つのスパンを、開始時刻順に取得します。
parent_spanid プロパティは、スパン間の関係を示します。ルートスパンには親がなく、それ以外の各スパンは、そのスパンを開始したスパンを参照します。

リクエスト:

{
    "jsonrpc": "2.0",
    "method": "apmspan.get",
    "params": {
        "output": ["spanid", "parent_spanid", "service_name", "span_name", "duration", "status_code"],
        "time_from": 1790848800,
        "time_till": 1790852400,
        "traceids": "dee625f33cb0994e86c5cd4640e3b09c",
        "sortfield": "timestamp",
        "sortorder": "ASC",
        "limit": 4
    },
    "id": 1
}

レスポンス:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "spanid": "7c1a9e2f4b6d8a03",
            "parent_spanid": "",
            "service_name": "zabbix-nginx",
            "span_name": "POST /zabbix.php",
            "duration": "1104826531",
            "status_code": "Unset"
        },
        {
            "spanid": "3f8b2c6d1e9a7054",
            "parent_spanid": "7c1a9e2f4b6d8a03",
            "service_name": "zabbix-frontend",
            "span_name": "POST /zabbix.php",
            "duration": "1098230418",
            "status_code": "Unset"
        },
        {
            "spanid": "b3390ad41931ed08",
            "parent_spanid": "3f8b2c6d1e9a7054",
            "service_name": "zabbix-frontend",
            "span_name": "mysqli::real_connect",
            "duration": "36671360",
            "status_code": "Ok"
        },
        {
            "spanid": "e41f7a2c9d5b3086",
            "parent_spanid": "3f8b2c6d1e9a7054",
            "service_name": "zabbix-frontend",
            "span_name": "mysqli_query",
            "duration": "19704118",
            "status_code": "Ok"
        }
    ],
    "id": 1
}

関連項目

ソース

ui/include/classes/api/services/CApmSpan.php の CApmSpan::get()。