2014-07-11 2 views
0

지난 4 시간 동안 rrd 데이터베이스 파일의 첫 번째 데이터 소스에서 전체 AVG를 가져 오는 올바른 방법일까요? 부모 솔루션은 pnp4nagios이며 매 5 분/300 초마다 값을 기록하며 그 모든 것이 훌륭하게 작동합니다. rrd 파일을 수동으로 정확하게 쿼리하는 방법을 배우고 싶을뿐입니다.rrd 지난 4 시간 및 지난 24 시간 페치

이 난에 관심이 데이터 소스 열을 평균 몇 가지 AWK 문을 사용이 시급한 또는 아무것도 아니다, 난 그냥 RRDtool의

rrdtool fetch rrdfile.rrd AVERAGE -r 300 -s -4hr|awk '{print $2}'|grep -v nan|cut -c 1-4|awk 'NR>2'|awk '{ sum += $1; n++ } END { if (n > 0) print sum/n; }' 

에 대해 좀 더 배우려고 노력하고 있습니다. - 편집 - 독서와 테스트를 한 후이 해결책을 찾았습니다. pnp4nagios를 사용하고 rrd 데이터베이스를 쿼리하여 그래프를 표시하는 것과 비교하여 값을 인쇄하려면이 작업이 유용합니다.

rrdtool graph test.png --start -4hour 'DEF:data=test.rrd:1:AVERAGE' PRINT:data:AVERAGE:%lf|awk 'NR>1' 

단순히 GPRINT를 인쇄로 대체하십시오. 그러면 출력을 pnp4nagios 그래프와 비교하여 인쇄 된 Datasoure 출력이 그래프와 동일한 값인지 확인할 수 있습니다.

+0

rrd xport 옵션을 발견했으며 수동으로 쿼리 할 때 rrd 그래프가 pnp4nagios 그래프에 인쇄 할 때 값을 완벽하게 일치시킵니다. – user1999357

답변

0
rrdtool graph test.png --start -4hour 'DEF:data=test.rrd:1:AVERAGE' PRINT:data:AVERAGE:%lf|awk 'NR>1' 
+0

단순히 GPRINT를 인쇄로 대체하십시오. 그러면 출력을 pnp4nagios 그래프와 비교하여 인쇄 된 Datasoure 출력이 그래프와 동일한 값인지 확인할 수 있습니다. – user1999357

관련 문제