すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:メトリクスデータのクエリと分析の構文

最終更新日:Jun 11, 2026

Simple Log Service (SLS) は、メトリクスデータのクエリと分析のために、PromQL、SQL、および SQL と PromQL を組み合わせた構文をサポートしています。また、特定の命名規則とクエリ制限があります。

SLS は、メトリクスデータのクエリと分析用に 3 つの構文をサポートしています。

PromQL または SQL と PromQL を組み合わせて使用する場合、メトリクス名とラベルは命名規則に従う必要があります。詳細については、メトリクス識別子をご参照ください。

PromQL 構文

PromQL の例:

  • メトリクス名が http_requests_totaljob ラベルが apiserverhandler ラベルが /api/comments の時系列をクエリします。

    http_requests_total{job="apiserver", handler="/api/comments"}
  • 過去 5 分間における、app と proc でグループ化された CPU 使用率の上位 3 つをクエリします。app はアプリケーションを、proc はプロセスタイプをそれぞれ指定します。

    topk(3, sum by (app, proc) (rate(instance_cpu_time_ns[5m])))
  • 異常な Pod をクエリします。

    min_over_time(sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"})[15m:1m]) > 0
  • Kubernetes DaemonSets の CPU 使用率の合計をクエリします。

    sum(rate(container_cpu_usage_seconds_total{pod=~"fluentd-.*", cluster=~".*", namespace=~".*"}[1m])) / sum(kube_pod_container_resource_limits_cpu_cores{pod=~"fluentd-.*", cluster=~".*", namespace=~".*"}) * 100

PromQL 構文の詳細については、Prometheus ドキュメントクエリ例、およびPromQL のユースケースをご参照ください。

SQL 構文

SQL の例: 詳細については、「SQLのユースケース」をご参照ください。

  • すべてのデータをクエリして分析します。

    *| SELECT * FROM "my_metric_store.prom" WHERE __name__ != '' 
  • http_request_count メトリクスについて、 __labels__ フィールドの domain の値が www.example.com のデータをクエリし、 __value__ フィールドの値の合計を取得します。

    *| SELECT sum(__value__) FROM "my_metric_store.prom" WHERE __name__='http_request_count' and element_at(__labels__, 'domain')='www.example.com' 
  • http_request_count メトリクスについて、 __labels__ フィールドの domain の値が www.example.com のデータをクエリし、 __value__ フィールドの値を時間単位で集計し、値の合計を取得します。

    *| SELECT sum(__value__),date_trunc('hour', __time_nano__/1000000) as t
    FROM "my_metric_store.prom" 
    WHERE __name__='http_request_count' and element_at(__labels__, 'domain')='www.example.com'
    GROUP BY t
    ORDER BY t DESC

SQL 構文の詳細:

  • メトリクスデータの SQL 構文は、ログデータの SQL 構文 (分析構文) と一致します。SQL を使用してメトリクスデータをクエリする場合、FROM 句のテーブル名は {metrics_store_name}.prom 形式にする必要があります。{metrics_store_name} は、作成した Metricstore の名前を表します。

    説明

    テーブル名は二重引用符 ("") で囲んでください。

  • element_at() 関数を使用して、 __labels__ フィールドからキーの値を取得します。例: element_at(__labels__, 'key')

  • テーブルスキーマの詳細については、エンコーディング形式をご参照ください。

SQL+PromQL 構文

SLS は 7 つの PromQL 関数を提供しています。promql_query、promql_labels、promql_label_values、および promql_series 関数は、Metricstore のカスタムクエリと分析ページでのみ呼び出すことができます。

重要
  • SQL と PromQL を組み合わせる場合、FROM 句のテーブル名は metrics にする必要があります。

  • PromQL 関数の API エンドポイントと説明については、Prometheus ドキュメントをご参照ください。

関数名

説明

promql_query(string)

時間範囲の EndTime において瞬時クエリを評価します。Prometheus の /query API と同等です。パラメータ設定: query=<string>

*| SELECT promql_query('up') FROM metrics

promql_query_range(string, string)

StartTime から EndTime までの時間範囲内でクエリを評価します。Prometheus の /query_range API と同等です。パラメータ設定: query=<string> および step=<duration>

*| SELECT promql_query_range('up', '5m') FROM metrics

promql_labels()

すべてのラベルキーを返します。

デフォルトでは、この関数は次の時間範囲内のデータのみを返します: [<EndTime> - 5min, <EndTime>]

*| SELECT promql_labels() FROM metrics

promql_labels(string)

match[] パラメータをサポートし、<series_selector> に一致するラベルキーを返します。

match[] の値は 1 つのみサポートされます。例: promql_labels('up')

デフォルトでは、この関数は次の時間範囲内のデータのみを返します: [<EndTime> - 5min, <EndTime>]

*| SELECT promql_labels('up') FROM metrics

promql_label_values(string)

指定されたラベルの値を返します。

デフォルトでは、この関数は次の時間範囲内のデータのみを返します: [<EndTime> - 5min, <EndTime>]

*| SELECT promql_label_values('__name__') FROM metrics

promql_label_values(string, string)

match[] パラメータをサポートし、<series_selector> に一致する時系列のうち、指定されたラベルの値を返します。

match[] の値は 1 つのみサポートされ、Label パラメータの前に配置します。例: promql_label_values('up', '__label_name__')

デフォルトでは、この関数は次の時間範囲内のデータのみを返します: [<EndTime> - 5min, <EndTime>]

*| SELECT promql_label_values('up', '__label_name__') FROM metrics

promql_series(string)

一致した時系列を返します。

デフォルトでは、この関数は次の時間範囲内のデータのみを返します: [<EndTime> - 5min, <EndTime>]

*| SELECT promql_series('up') FROM metrics

各 PromQL 関数は、ユーザー定義テーブル値関数 (UDTF) と同様にテーブルを返します。

  • promql_query(string) および promql_query_range(string, string) が返すテーブルのスキーマ:

    フィールド

    フィールドタイプ

    説明

    metric

    varchar

    メトリック名。クエリに GROUP BY 句が含まれている場合は空になることがあります。

    labels

    map<varchar, varchar>

    キーと値のマップ形式のラベル。

    time

    bigint

    時刻。

    value

    double

    特定の時点の値。

    クエリ例:

    • promql_query(string) 関数query

    • promql_query_range(string, string) 関数promql_query_range

  • promql_labels()、promql_labels(string)、promql_label_values(string)、および promql_label_values(string, string) が返すテーブルのスキーマ:

    フィールド

    フィールドタイプ

    説明

    label

    varchar

    ラベルキーまたは値

    クエリ例:

    • promql_labels() 関数labels

    • promql_labels(string) 関数labels_match

    • promql_label_values(string) 関数labelValues

    • promql_label_values(string, string) 関数label_values_match

  • promql_series(string) が返すテーブルのスキーマ:

    フィールド

    フィールドタイプ

    説明

    series

    map<varchar, varchar>

    時系列。

    クエリ例:series

制限事項

  • Metricstore は、Prometheus クエリ API エンドポイント ( /query および /query_range ) のみをサポートしています。 /admin/alerts/rules などの他のエンドポイントはサポートされていません。

  • PromQL および SQL と PromQL を組み合わせたクエリは、最大 11,000 データポイント分の値を返します。