グラファイト/グラファナを使用して、mongodbインスタンス内のすべてのコレクションのサイズを記録します。グラファイトデリバティブにデータが表示されない
#!/usr/bin/python
from pymongo import MongoClient
import socket
import time
statsd_ip = '127.0.0.1'
statsd_port = 8125
# create a udp socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client = MongoClient(host='12.34.56.78', port=12345)
db = client.my_DB
# get collection list each runtime
collections = db.collection_names()
sizes = {}
# main
while (1):
# get collection size per name
for collection in collections:
sizes[collection] = db.command('collstats', collection)['size']
# write to statsd
for size in sizes:
MESSAGE = "collection_%s:%d|c" % (size, sizes[size])
sock.sendto(MESSAGE, (statsd_ip, statsd_port))
time.sleep(60)
これは、grafanaのすべてのコレクションサイズを正しく表示しています。しかし、私はこれらのサイズの変化率を取得したいので、私はgrafanaで、次のグラファイトクエリを作成:
derivative(statsd.myHost.collection_myCollection)
、グラフは完全に空白表示されます。何か案は?
フォローアップ:24時間を超える時間範囲を選択すると、すべてのデータが同様にグラフから消えます。私の人生はそれを理解できません。
'derivative()'関数がなぜ失敗するのかを理解するために、データまたはグラフを表示する必要があります。また、 'storage-schemas.conf'を投稿してください。 – obfuscurity
データのスクリーンショットを以下に示します:[imgur album](http://imgur.com/a/NRWJr)。 何らかの理由で、画像の順序が乱されましたが、情報はそこにあります。 –
更新:この問題はグラファイトに由来すると私は思う。グラファイトWebインターフェイスを使用してグラフを作成すると、グラファナ派生語に表示されるのと同じ結果が空のグラフに表示され、過去24時間を超える範囲を含むと空のグラフが表示されます。私はirc.freenode.netの#graphiteと相談し、集約の問題かもしれないと思ったようです。私のstorage-aggregation.confは空のファイルです。 –