흑연/그라파 나를 사용하여 mongodb 인스턴스의 모든 컬렉션 크기를 기록합니다. 이렇게 간단한 (WIP) 파이썬 스크립트를 작성했습니다 :흑연 미분 데이터 없음
#!/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). 이유가 무엇이든간에 이미지 순서가 엉망이지만 정보가 있습니다. –
업데이트 :이 문제는 흑연에서 기인한다고 생각합니다. Graphite 웹 인터페이스를 사용하여 그래프를 작성하면 grafana 파생물에 표시된 것과 동일한 결과가 빈 그래프로 나타나며 지난 24 시간보다 큰 범위를 포함하면 빈 그래프가 표시됩니다. 나는 irc.freenode.net에서 #graphite와상의했는데 집단적 문제라고 생각하는 것 같았다. 내 storage-aggregation.conf는 빈 파일입니다. –