nginx 및 PostgresSQL과 함께 Puppet ( https://forge.puppetlabs.com/dwerder/graphite )을 통해 Graphite를 설치했습니다 . 데이터를 수동으로 보내면 메트릭이 생성되지만 모든 데이터 포인트는 "없음"(일명 null)입니다. Graphite와 함께 제공된 example-client.py를 실행하는 경우에도 발생합니다.
echo "jakub.test 42 $(date +%s)" | nc 0.0.0.0 2003 # Carbon listens at 2003
# A minute or so later:
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | head -n1
Sun May 4 12:19:00 2014 None
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | tail -n1
Mon May 5 12:09:00 2014 None
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | grep -v None | wc -l
0
과:
$ python /opt/graphite/examples/example-client.py
# Wait until it sends two batches of data ...
$ whisper-fetch.py /opt/graphite/storage/whisper/system/loadavg_15min.wsp | grep -v None | wc -l
0
이것은 ngrep에 따르면 [나중에 시도하여] 포트 3에 도착하는 데이터입니다.
####
T 127.0.0.1:34696 -> 127.0.0.1:2003 [AP]
jakub.test 45 1399362193.
####^Cexit
23 received, 0 dropped
이것은 다음의 관련 부분입니다 /opt/graphite/conf/storage-schemas.conf
.
[default]
pattern = .*
retentions = 1s:30m,1m:1d,5m:2y
어떤 생각이 잘못 되었습니까? 카본 자체의 메트릭과 데이터가 UI에 표시됩니다. 감사합니다!
환경 : Ubuntu 13.10 Saucy, 흑연 0.9.12 (pip를 통해).
추신 : 여기에 문제 해결 시도에 대해 썼습니다 -Graphite는 메트릭을 보여 주지만 데이터는 없습니다 – 문제 해결
업데이트 :
- 보존 정책이 "1s"또는 "10s"와 같이 더 높은 정밀도를 지정하더라도 속삭임 파일의 데이터 포인트는 1 분마다 만 채점됩니다.
- 무시되는 데이터에 대한 해결 방법 :
xFilesFactor = 0.1
(0.5 대신)를 사용하여 집계 스키마를 사용 하거나 <1-49> 사이의 숫자 대신 가장 낮은 정밀도를 1m로 설정하십시오. -허용 된 답변 또는 흑연 답변 질문 아래의 의견을 참조하십시오. 문서에 따르면 : "xFilesFactor
0과 1 사이의 부동 소수점 숫자 여야하며 null이 아닌 값으로 집계하기 위해 이전 보유 레벨의 슬롯에서 널이 아닌 값을 가져야하는 비율을 지정합니다. 기본값은 0.5입니다. " 따라서 1의 지정된 정밀도를 고려하지 않고 데이터는 1 분으로 집계되고 분 기간의 값의 50 % 미만이 없음이 아니므로 없음으로 끝납니다.
해결책
그래서 @jlawrie가 나를 해결책으로 인도했습니다. 실제로 데이터가 있지만 아무것도 집계되지 않은 것으로 나타났습니다. 이유는 두 배입니다.
- UI와 Whisper-fetch 는 전체 쿼리 기간에 걸쳐 최대 24 시간으로 고정밀 도로 집계 된 데이터를 표시합니다 . 즉, 보존 기간이 1d 미만인 항목은 더 짧은 기간을 선택하지 않으면 UI에 표시되거나 가져 오지 않습니다. 1 초 동안의 보존 기간은 30 분이므로 수집 된 최고 정밀도에서 원시 데이터를 실제로 보려면 <= 지난 30 분의 기간을 선택해야합니다.
- 데이터를 집계 할 때 (필자의 경우 1 초에서 1 분까지) Graphite는 기본적으로 기간의 데이터 포인트 중 50 % (xFilesFactor = 0.5)에 값이 있어야합니다. 그렇지 않으면 기존 값을 무시하고 없음으로 집계합니다. 따라서 필자의 경우 집계 된 1 분 값으로 표시되도록 1 분 내에 30 번 이상 데이터를 보내야합니다 (30은 60s의 50 % = 1 분). 그러나 내 응용 프로그램은 10 초마다 데이터를 보내므로 가능한 60 개 값 중 6 개만 있습니다.
=> 솔루션은 첫 번째 정밀도를 1에서 10으로 변경하고 원시 데이터를보고 싶을 때 더 짧은 기간을 선택하는 것을 잊지 마십시오 (또는 기본적으로 유지 시간을 24 시간으로 연장).