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

:単一値のクエリ

最終更新日:Mar 28, 2026

指定された時間範囲内で、1 つ以上の時系列からデータポイントをクエリします。時間範囲と 1 つ以上のサブクエリを定義する JSON ボディを含む POST リクエストを /api/query に送信します。

リクエスト構文

POST /api/query

リクエストパラメーター

パラメーター必須デフォルト説明
startLongはい時間範囲の開始時刻です。単位は秒またはミリ秒です。TSDB は数値に基づいて単位を自動的に判別します。詳細については、「タイムスタンプの単位」をご参照ください。
endLongいいえ現在のサーバー時刻時間範囲の終了時刻です。単位は秒またはミリ秒です。デフォルトでは TSDB サーバーの現在時刻が使用されます。詳細については、「タイムスタンプの単位」をご参照ください。
queries配列はいサブクエリの配列です。詳細については、「サブクエリパラメーター」をご参照ください。
msResolutionブール値いいえfalseタイムスタンプをミリ秒単位で返すかどうかを指定します。この設定は、クエリ対象のデータポイントが秒単位のタイムスタンプを使用している場合にのみ適用されます。true を指定すると、応答内のすべてのタイムスタンプがミリ秒単位に変換されます。false を指定すると、元の単位が保持されます。ミリ秒単位のタイムスタンプで保存されたデータポイントは、この設定に関係なく常にミリ秒単位で返されます。
hintマップいいえ応答時間を短縮するためのクエリヒントです。詳細については、「パラメーター: hint」をご参照ください。

タイムスタンプの単位

TSDB は数値に基づいてタイムスタンプの単位を判別します。

範囲単位日付範囲
[4294968, 4294967295]1970-02-20 01:02:48 – 2106-02-07 14:28:15
[4294967296, 9999999999999]ミリ秒1970-02-20 01:02:47.296 – 2286-11-21 01:46:39.999
(-∞, 4294968) または (9999999999999, +∞)無効
これらのルールは、/api/put(書き込み)および /api/query(クエリ)の両方に適用されます。

単一時点のデータポイントをクエリするには、start および end を同一の値に設定します(例: 1356998400)。

サブクエリパラメーター

queries 配列内の各オブジェクトは、以下のパラメーターをサポートします。

パラメーター必須デフォルト説明
aggregator文字列はい集約関数です。詳細については、「パラメーター: aggregator」をご参照ください。例:sum
metric文字列はいメトリック名です。例:sys.cpu0
rateブール値いいえfalse連続する値間の成長率を計算するかどうかを指定します。計算式:(Vt − Vt-1) / (t − t-1)
deltaブール値いいえfalse連続する値間の差分(デルタ)を計算するかどうかを指定します。計算式:Vt − Vt-1。詳細については、「パラメーター: delta」をご参照ください。
limit整数いいえ01 つの時系列あたり、1 ページごとに返される最大データポイント数です。0 の場合は制限なしです。
offset整数いいえ01 つの時系列あたり、1 ページごとにスキップするデータポイント数です。0 の場合はスキップしません。
dpValue文字列いいえ値によるデータポイントのフィルター処理を行います。サポートされる演算子:><=<=>=!=。値が文字列の場合、= および != のみがサポートされます。集約後に適用されます。
preDpValue文字列いいえ集約前のスキャン中に生データポイントをフィルター処理します。dpValue と同じ演算子が使用可能です。このフィルターに該当しないデータポイントは、すべての計算から除外されます。
downsample文字列いいえダウンサンプリング構成です。詳細については、「パラメーター: downsample」をご参照ください。例:60m-avg
tagsマップいいえタグベースのフィルター条件です。filters と相互排他です。両方を指定した場合、JSON 内で後に出た方が有効になります。
filtersリストいいえJSON 形式のフィルター条件です。tags と相互排他です。両方を指定した場合、JSON 内で後に出た方が有効になります。詳細については、「パラメーター: filters」をご参照ください。
hintマップいいえサブクエリレベルのクエリヒントです。詳細については、「パラメーター: hint」をご参照ください。
forecasting文字列いいえAI トレーニングを用いて将来のデータポイントを予測します。詳細については、「パラメーター: forecasting」をご参照ください。
abnormaldetect文字列いいえAI トレーニングを用いて時系列内の異常を検出します。詳細については、「パラメーター: abnormaldetect」をご参照ください。
1 回のリクエストでサポートされるサブクエリの最大数は 200 です。
tags および filters の両方が指定されている場合、JSON 内で後に出たパラメーターが有効になります。

リクエスト例

POST /api/query
{
  "start": 1356998400,
  "end": 1356998460,
  "queries": [
    {
      "aggregator": "sum",
      "metric": "sys.cpu.0",
      "rate": "true",
      "tags": {
        "host": "*",
        "dc": "lga"
      }
    }
  ]
}

応答要素

正常なリクエストでは、HTTP 200 応答とともに JSON 配列が返されます。各要素は 1 つのサブクエリ結果に対応します。

パラメーター説明
metricメトリック名です。
tags値が集計されなかったタグ。
aggregateTags値が集計されたタグ。
dpsタイムスタンプと値のペア形式のデータポイントです。

応答例

[
  {
    "metric": "tsd.hbase.puts",
    "tags": {"appName": "hitsdb"},
    "aggregateTags": ["host"],
    "dps": {
      "1365966001": 25595461080,
      "1365966061": 25595542522,
      "1365966062": 25595543979,
      "1365973801": 25717417859
    }
  }
]

パラメーター: limit および offset

limit および offset を組み合わせて使用し、サブクエリ内での結果のページネーションを行います。

  • limit:1 つの時系列あたりに返される最大データポイント数です。デフォルト値 0 は制限なしを意味します。

  • offset:1 つの時系列あたりにスキップするデータポイント数です。デフォルト値 0 はスキップしないことを意味します。

重要

limit および offset のいずれも負の数に設定することはできません。

順位 1001 ~ 1500 のデータポイントを取得するには、limit500offset1000 に設定します。

{
  "start": 1346046400,
  "end": 1347056500,
  "queries": [
    {
      "aggregator": "avg",
      "downsample": "2s-sum",
      "metric": "sys.cpu.0",
      "limit": "500",
      "offset": "1000",
      "tags": {
        "host": "localhost",
        "appName": "hitsdb"
      }
    }
  ]
}

パラメーター: dpValue

集約後に値によるデータポイントのフィルター処理を行います。サポートされる演算子:><=<=>=!=

重要

フィルター値が文字列の場合、= および != のみがサポートされます。

{
  "start": 1346046400,
  "end": 1347056500,
  "queries": [
    {
      "aggregator": "avg",
      "downsample": "2s-sum",
      "metric": "sys.cpu.0",
      "dpValue": ">=500",
      "tags": {
        "host": "localhost",
        "appName": "hitsdb"
      }
    }
  ]
}

パラメーター: delta

deltatrue に設定すると、dps 応答内の各値は、連続するデータポイント間の計算済みデルタとなります。元の結果に n 個のキーと値のペアが含まれる場合、デルタ結果には n−1 個のペアが含まれます(最初のペアは、比較可能な前後の値がないため除外されます)。デルタ演算子は、ダウンサンプリング後の値にも適用されます。

deltaOptions

サブクエリ内で deltaOptions を構成することで、デルタの計算方法を制御できます。

パラメーター必須デフォルト説明
counterブール値いいえfalseメトリック値を単調増加または単調減少する累積カウント(カウンターに類似)として扱います。サーバーはメトリック値を検証しません。
counterMax整数いいえcountertrue の場合のデルタ値のしきい値です。絶対デルタがこのしきい値を超えると、そのデルタは異常と見なされます。未設定の場合は、しきい値は適用されません。
dropResetブール値いいえfalsecounterMax が設定されている場合の異常デルタに対する動作を制御します。true の場合、異常デルタは破棄されます。false の場合、異常デルタは 0 にリセットされます。

{
  "start": 1346046400,
  "end": 1347056500,
  "queries": [
    {
      "aggregator": "none",
      "downsample": "5s-avg",
      "delta": true,
      "deltaOptions": {
        "counter": true,
        "counterMax": 100
      },
      "metric": "sys.cpu.0",
      "dpValue": ">=50",
      "tags": {
        "host": "localhost",
        "appName": "hitsdb"
      }
    }
  ]
}

パラメーター: downsample

ダウンサンプリングは、指定された時間間隔でデータを集約する操作であり、長期間のデータをクエリする際に有用です。時間範囲は指定された間隔のウィンドウに分割され、返される各タイムスタンプはウィンドウの開始時刻を表します。

フォーマット

<interval><units>-<aggregator>[-<fill policy>]
重要

downsample が指定されている場合、TSDB はクエリ範囲を両端とも 1 ウィンドウ分自動的に拡張します。たとえば、[1346846401, 1346846499] の範囲で 5 分間隔を指定した場合、実際の範囲は [1346846101, 1346846799] になります。

フィールド

`interval`

560 などの数値です。0all を使用すると、範囲内のすべてのデータポイントが単一の値に集約されます。

`units`

単位
s
m
h時間
d
n
y
デフォルトでは、タイムスタンプはモジュロ切り捨てにより整合されます:整合済みタイムスタンプ = データタイムスタンプ − (データタイムスタンプ % 時間間隔)
カレンダー間隔(たとえば 00:00 から翌日の 00:00 まで)で整合させるには、単位の末尾に c を追加します:1dc

`aggregator`

演算子説明
avg平均値
countデータポイント数
first最初の値
last最後の値
min最小値
max最大値
median中央値
sum値の合計
zimsum値の合計(ゼロ補間)
rfirstfirst と同じですが、整合済みタイムスタンプではなく元のタイムスタンプを返します
rlastlast と同じですが、整合済みタイムスタンプではなく元のタイムスタンプを返します
rminmin と同じですが、整合済みタイムスタンプではなく元のタイムスタンプを返します
rmaxmax と同じですが、整合済みタイムスタンプではなく元のタイムスタンプを返します
rfirstrlastrmin、および rmax 演算子は、同じダウンサンプリング式内でフィルポリシーと併用できません。

フィルポリシー

フィルポリシーは、ダウンサンプリング結果における欠損値の埋め方を定義します。タイムウィンドウ内にデータが存在しない場合、TSDB はフィルポリシーを適用して値を生成します。

フィルポリシー欠損値を以下で埋める
none埋めない(デフォルト)
nannull
nullnull
zero0
linear線形補間で計算された値
previous直前の値
near最も近い隣接する値
after次の値
fixedユーザー指定の固定値

固定フィルポリシー

欠損値を固定数で埋めるには、以下のフォーマットを使用します。

<interval><units>-<aggregator>-fixed#<number>

固定値は正または負の数を指定できます。例:1h-sum-fixed#61h-avg-fixed#-8

ダウンサンプリングの例

1m-avg1h-sum-zero1h-sum-near

重要

downsample は任意のパラメーターです。ダウンサンプリングを明示的に無効化するには、null または空文字列を指定します:{"downsample": null} または {"downsample": ""}

パラメーター: aggregator

ダウンサンプリング後、TSDB は各整合済みタイムスタンプで複数のタイムラインの値を集約し、それらを 1 つのタイムラインにマージします。クエリに一致するタイムラインが 1 つのみの場合、集約はスキップされます。

補間

複数のタイムラインをマージする場合、特定のタイムスタンプで値が欠落しているタイムラインには、フィルポリシーが指定されておらず、かつ他のタイムラインの少なくとも 1 つがそのタイムスタンプで値を持つ場合に限り、補間値が割り当てられます。

たとえば、{"downsample": "10s-avg", "aggregator": "sum"} を使用して 2 つのタイムラインをマージする場合:

  • タイムライン 1 には t+0t+10t+20t+30 に値があります。

  • タイムライン 2 には t+0t+20t+30 に値があります。

集約前に、TSDB はタイムライン 2 の t+10 に対して補間値を計算します。補間方法は集約関数によって異なります。

演算子説明補間方法
avg平均値線形補間
countデータポイント数0 を補間
mimmin最小値最大値を補間
mimmax最大値最小値を補間
min最小値線形補間
max最大値線形補間
none集約をスキップ0 を補間
sum値の合計線形補間
zimsum値の合計0 を補間

パラメーター: filters

filters パラメーターは、タグベースのフィルター処理を行うための JSON フィルター・オブジェクトのリストを受け入れます。tags パラメーターとは相互排他です。

フィルター・オブジェクトのパラメーター

パラメーター必須デフォルト説明
type文字列はいフィルターの種類です。詳細については、「フィルターの種類」をご参照ください。例:literal_or
tagk文字列はいフィルター対象のタグキーです。例:host
filter文字列はいフィルター式です。例:web01|web02
groupByブール値いいえfalse一致したタグ値に対して GROUP BY 操作を実行するかどうかを指定します。

また、サブクエリ内で簡易タグ式を直接使用することもできます。

  • tagk = *:タグキーのすべての値に対して GROUP BY を実行します。

  • tagk = tagv1|tagv2tagv1 の値と tagv2 の値をそれぞれ個別に集約します。

フィルターの種類

フィルターの種類説明
literal_orweb01|web02| で区切られた正確なタグ値に一致します。大文字小文字を区別します。
wildcard*.example.comワイルドカードパターンを使用してタグ値に一致します。大文字小文字を区別します。

フィルターなしの例

{
  "start": 1356998400,
  "end": 1356998460,
  "queries": [
    {
      "aggregator": "sum",
      "metric": "sys.cpu.0",
      "rate": "true",
      "tags": {
        "host": "*",
        "dc": "lga"
      }
    }
  ]
}

フィルターありの例

{
  "start": 1356998400,
  "end": 1356998460,
  "queries": [
    {
      "aggregator": "sum",
      "metric": "sys.cpu.0",
      "rate": "true",
      "filters": [
        {
          "type": "wildcard",
          "tagk": "host",
          "filter": "*",
          "groupBy": true
        },
        {
          "type": "literal_or",
          "tagk": "dc",
          "filter": "lga|lga1|lga2",
          "groupBy": false
        }
      ]
    }
  ]
}

パラメーター: hint

クエリヒントは、クエリ実行時に TSDB がどのタグキーインデックスを使用するかを制御することで、応答時間を短縮します。たとえば、タグセット B で一致する時系列がタグセット A で一致する時系列の部分集合である場合、TSDB にタグセット A のインデックスを読み取るオーバーヘッドを回避させ、B のみのインデックスを使用するよう指示できます。

hint パラメーターは、最上位レベル(クエリ全体に適用)またはサブクエリ内(そのサブクエリにのみ適用)のいずれかで設定できます。

現在の TSDB バージョンでは、ヒント内での tagk パラメーターのみがサポートされています。

フォーマット

tagk マップ内では、各タグキーをインデックス使用の有無に応じて 1 または 0 に設定します。すべての値は 0 または 1 のいずれかでなければならず、同一のヒント内で両方を混在させるとエラーになります。

バージョン要件: TSDB v2.6.1 以降。

サブクエリに適用されるヒント

{
  "start": 1346846400,
  "end": 1346846400,
  "queries": [
    {
      "aggregator": "none",
      "metric": "sys.cpu.nice",
      "tags": {
        "dc": "lga",
        "host": "web01"
      }
    }
  ],
  "hint": {
    "tagk": {
      "dc": 1,
      "host": 0
    }
  }
}

クエリ全体に適用されるヒント

{
  "start": 1346846400,
  "end": 1346846400,
  "queries": [
    {
      "aggregator": "none",
      "metric": "sys.cpu.nice",
      "tags": {
        "dc": "lga",
        "host": "web01"
      }
    }
  ],
  "hint": {
    "tagk": {
      "dc": 1
    }
  }
}

エラー事例

0 と 1 の混在

以下のリクエストは、dc1host0 であるためエラーになります。

{
  "start": 1346846400,
  "end": 1346846400,
  "queries": [
    {
      "aggregator": "none",
      "metric": "sys.cpu.nice",
      "tags": {
        "dc": "lga",
        "host": "web01"
      }
    }
  ],
  "hint": {
    "tagk": {
      "dc": 1,
      "host": 0
    }
  }
}

エラー応答:

{
  "error": {
    "code": 400,
    "message": "ヒントの値は 0 または 1 のみであり、0 と 1 の両方が存在してはなりません。",
    "details": "TSQuery(start_time=1346846400, end_time=1346846400, subQueries[TSSubQuery(metric=sys.cpu.nice, filters=[filter_name=literal_or, tagk=dc, literals=[lga], group_by=true, filter_name=literal_or, tagk=host, literals=[web01], group_by=true], tsuids=[], agg=none, downsample=null, ds_interval=0, rate=false, rate_options=null, delta=false, delta_options=null, top=0, granularity=null, granularityDownsample=null, explicit_tags=explicit_tags, index=0, realTimeSeconds=-1, useData=auto, limit=0, offset=0, dpValue=null, preDpValue=null, startTime=1346846400000, endTime=1346846400000, Query_ID=null)] padding=false, no_annotations=false, with_global_annotations=false, show_tsuids=false, ms_resolution=false, options=[])"
  }
}

0 または 1 以外の値

{
  "start": 1346846400,
  "end": 1346846400,
  "queries": [
    {
      "aggregator": "none",
      "metric": "sys.cpu.nice",
      "tags": {
        "dc": "lga",
        "host": "web01"
      }
    }
  ],
  "hint": {
    "tagk": {
      "dc": 100
    }
  }
}

エラー応答:

{
  "error": {
    "code": 400,
    "message": "ヒントの値は 0 または 1 のみであり、'100' が渡されたことが検出されました。",
    "details": "TSQuery(start_time=1346846400, end_time=1346846400, subQueries[TSSubQuery(metric=sys.cpu.nice, filters=[filter_name=literal_or, tagk=dc, literals=[lga], group_by=true, filter_name=literal_or, tagk=host, literals=[web01], group_by=true], tsuids=[], agg=none, downsample=null, ds_interval=0, rate=false, rate_options=null, delta=false, delta_options=null, top=0, granularity=null, granularityDownsample=null, explicit_tags=explicit_tags, index=0, realTimeSeconds=-1, useData=auto, limit=0, offset=0, dpValue=null, preDpValue=null, startTime=1346846400000, endTime=1346846400000, Query_ID=null)] padding=false, no_annotations=false, with_global_annotations=false, show_tsuids=false, ms_resolution=false, options=[])"
  }
}

パラメーター: forecasting

過去の時系列データに対する AI トレーニングを用いて、将来のデータポイントを予測します。TSDB は既存のデータをトレーニングし、トレンドおよび周期性を特定したうえで、将来の値を投影します。

フォーマット

<AlgorithmName>-<ForecastPointCount>[-<ForecastPolicy>]

サポートされるアルゴリズム

  • `arima` — AutoRegressive Integrated Moving Average(ARIMA)。ARIMA の ForecastPolicy には 2 つのフィールドがあります。

    • delta:差分次数。デフォルト値:1。データの変動を抑えるために増加させることができます。

    • seasonality:データポイント数単位の周期長。デフォルト値:1。データの自然な周期に合わせて設定してください(例:データが 10 ポイントごとに変動する場合、10)。

  • `holtwinters` — Holt-Winters 指数平滑化。Holt-Winters の ForecastPolicy には 1 つのフィールドがあります。

    • seasonality:ARIMA と同様です。デフォルト値:1

例: arima-1arima-48-1-48holtwinters-1-1

既存のシリーズデータ:

[
  {
    "metric": "sys.cpu.nice",
    "tags": {"dc": "lga", "host": "web00"},
    "aggregateTags": [],
    "dps": {
      "1346837400": 1,
      "1346837401": 2,
      "1346837402": 3,
      "1346837403": 4,
      "1346837404": 5,
      "1346837405": 6,
      "1346837406": 7,
      "1346837407": 8,
      "1346837408": 9,
      "1346837409": 10,
      "1346837410": 11,
      "1346837411": 12
    }
  }
]

クエリ:

{
  "start": 1346837400,
  "end": 1346847400,
  "queries": [
    {
      "aggregator": "none",
      "metric": "sys.cpu.nice",
      "forecasting": "arima-1"
    }
  ]
}

予測結果(1 つの追加データポイントが付与されます):

[
  {
    "metric": "sys.cpu.nice",
    "tags": {"dc": "lga", "host": "web00"},
    "aggregateTags": [],
    "dps": {
      "1346837400": 1,
      "1346837401": 2,
      "1346837402": 3,
      "1346837403": 4,
      "1346837404": 5,
      "1346837405": 6,
      "1346837406": 7,
      "1346837407": 8,
      "1346837408": 9,
      "1346837409": 10,
      "1346837410": 11,
      "1346837411": 12,
      "1346837412": 13
    }
  }
]

パラメーター: abnormaldetect

STL(Seasonal-Trend decomposition using Loess)アルゴリズムを用いて、時系列内の異常を検出します。TSDB は既存のデータをトレーニングし、パターンを特定したうえで、期待範囲から大きく逸脱したデータポイントをフラグ付けします。

フォーマット

<AlgorithmName>[-<Sigma>-<NP>-<NS>-<NT>-<NL>]

現在サポートされているのは STL アルゴリズムのみです。STL のパラメーター調整に慣れていない場合は、パラメーター項目を省略してデフォルト値を使用してください。

パラメーター

パラメーター説明
AlgorithmNameアルゴリズム名です。stl を使用します。
Sigma異常のしきい値です。データポイントの値と時系列の平均値との絶対差が Sigma × 標準偏差を超える場合、そのデータポイントは異常と見なされます。典型的な値:3.0
NP1 サイクルあたりのデータポイント数です。
NS季節成分の平滑化パラメーターです。
NTトレンド成分の平滑化パラメーターです。
NLローパスフィルターの平滑化パラメーターです。

"abnormaldetect": "stl"
"abnormaldetect": "stl-5-5-7-0-0"

クエリ例

{
  "start": 1346836400,
  "end": 1346946400,
  "queries": [
    {
      "aggregator": "none",
      "metric": "sys.cpu.nice",
      "abnormaldetect": "stl-5-5-7-0-0",
      "filters": [
        {
          "type": "literal_or",
          "tagk": "dc",
          "filter": "lga",
          "groupBy": false
        },
        {
          "type": "literal_or",
          "tagk": "host",
          "filter": "web00",
          "groupBy": false
        }
      ]
    }
  ]
}

異常検出の出力

dps 内の各値は、以下の形式の配列です。

[srcValue, upperValue, lowerValue, predictValue, isAbnormal]
フィールド説明
srcValue元のデータポイントの値です。
upperValue期待範囲の上限値です。
lowerValue期待範囲の下限値です。
predictValueSTL アルゴリズムによって予測された値です。
isAbnormal0:正常。1:異常。

出力例

[
  {
    "metric": "sys.cpu.nice",
    "tags": {"dc": "lga", "host": "web00"},
    "aggregateTags": [],
    "dps": {
      "1346837400": [1, 1.0000000000000049, 0.9999999999999973, 1.0000000000000013, 0],
      "1346837401": [2, 2.0000000000000036, 1.9999999999999958, 1.9999999999999998, 0],
      "1346837402": [3, 3.0000000000000036, 2.9999999999999956, 3, 0],
      "1346837403": [4, 4.0000000000000036, 3.9999999999999956, 4, 1],
      "1346837404": [5, 5.0000000000000036, 4.9999999999999964, 5, 0],
      "1346837405": [6, 6.000000000000002, 5.999999999999995, 5.999999999999998, 0],
      "1346837406": [7, 7.0000000000000036, 6.9999999999999964, 7, 1],
      "1346837407": [8, 8.000000000000004, 7.9999999999999964, 8, 0],
      "1346837408": [9, 9.000000000000004, 8.999999999999996, 9, 0],
      "1346837409": [10, 10.000000000000004, 9.999999999999996, 10, 0],
      "1346837410": [11, 11.000000000000005, 10.999999999999998, 11.000000000000002, 0],
      "1346837411": [12, 12.000000000000004, 11.999999999999996, 12, 0]
    }
  }
]