1

私は OpenTSDB と時系列 DB にかなり慣れていません。私はすぐにそのドキュメントを一通り読みましたが、まだ特定のことが明確ではありません。私は基本的に、合計などのアグリゲーター関数にはあまり興味がありません。レプリケーションラグ、スロークエリの数、SQL マシンのステータスなどのメトリックを、次のようなタグに保存するすべてのホストに対して保存する必要があります::

[
{
"metric":"replicationLag"
"timestamp":new Date.getTime()
"value" : 2.0
"tags": {
 "host":acb-em1.db01.nm.xyz.com
}
}
"metric":"slowQuery"
"timestamp":new Date.getTime()
"value" : 4
"tags": {
 "host":acb-em1.db01.nm.xyz.com
}
]

これに対して行う必要があるクエリの種類は、ほとんど次のようなものです。特定の時間範囲でのレプリケーション ラグの値はどのくらいでしたか。1.上記のスキーマはこれで十分ですか、それとももっと良い方法がありますか?

このためにこれを使用しています

リクエストのJSONは

{
"start":1410272307100,
"end":1410340000000,
"queries":[
    {
    "metric":"slowQuery",
    "aggregator":"sum",
    "tags":{
    "host":"tg-em-db01.nm.flipkart.com"
    }
    }
    ]
}

Response content : 




   [
    {
    "metric":"slowQuery",
    "tags":{
    "host":"tg-em-db01.nm.flipkart.com"
    },
    "aggregateTags":[],
    "dps":{"1410327176":0,"1410328026":0,"1410328265":0,"1410328401":0,"1410328488":0}
    }
    ]

空のコンテンツを返しているため、アグリゲーターの「合計」が正確に何をするかはわかりません。とにかく合計は必要ありませんが、ドキュメントには「必須」フィールドであると記載されています。ただし、これですべてのデータポイントとその値を取得します。AggregatorTags とそれが必要な理由、およびそれを省略して、指定された時間中にそのホストに対応するデータポイントを取得する方法についてはまだ不明です。前もって感謝します!

4

1 に答える 1

1

実際、アグリゲーターはクエリで必要ですが、これは常に使用されるという意味ではありません。あなたの場合、お気づきのように、それは単に無視され、最初に提供したデータ ポイントを受け取ります。

たとえば、クエリでホスト タグとその値が指定されていない場合、アグリゲーターが実際の役割を果たします。この状況では、OpenTSDB は両方のホストの値を合計してから返します。明確にするために、「aggregateTags」フィールドには、合計で使用されたホストが入力されます。

于 2015-03-11T11:38:58.763 に答える