grafana 使用graphite metrics 来统计数据量采样

topswim 2019-06-21

之前配置的ELK进行了日志的监控,并且对elasticsearch了解了一些。这次配置grafana进行访问统计的时候,发现数据源也可以进行elasticsearch的配置,所以就使用了一下,但是发现不能按照metrics进行分类选取。后来发现原来如果要使用这种选择度量的方式的查询要使用graphite

说明

如果要是为了达到统计某个接口的访问量图形记录,需要在接口处和数据源中间搭建一个中间层,用于count接口调用次数,然后每隔固定时间打入到数据源中。

相关资料

《using-graphite-in-grafana官方文档》

《Graphite 系列 #2:Carbon 和 Whisper》

《安装和配置Graphite》是按照这个安装的,方便快捷

《第三十三章 metrics(1) - graphite搭建 + whisper存储模式 + 高精度向低精度聚合方式 + 集成StatsD + 集成grafana》 主要介绍了whisper 时间精度的调整

安装

此处不再进行说明,只说明一些注意事项

  • 必须安装carbon、whisper、graphite-web

  • 接入grafana的时候,需要graphite-web的接口支持,所以无论是否使用graphite-web的监控界面,都需要进行安装

  • 启动的时候需要指定一个端口

    root@debian:/opt/graphite# PYTHONPATH=`pwd`/storage/whisper ./bin/run-graphite-devel-server.py --port=8085 --libs=`pwd`/webapp /opt/graphite 1>/opt/graphite/storage/log/webapp/process.log 2>&1 &
  • 接入grafana的时候,数据源的验证要填写proxy,并且用户名和密码是在安装graphite的过程中输入的,并非你的系统账户,而是要登陆graphite-web的用户名和密码。如下图
    grafana 使用graphite metrics 来统计数据量采样

  • 通过一条命令可以简单地向数据源中打入数据

    PORT=2003 // 这个是数据源的写入地址
    SERVER=http://192.168.186.136
    echo "local.metric.random 4 `date +%s`" | nc -q0 ${SERVER} ${PORT}

    第一个参数就是代表了metrics的链路,第二个参数代表当前这个监控链路的值,第三个参数代表时间。
    grafana 使用graphite metrics 来统计数据量采样

调整whisper的时间精度

因为在图形上,我们发现,在1分钟内修改的值最终都会被聚合为最后一个值,所以图形上都是按照每一分钟来打点的。我们要提高精度,找到文件

sudo vim /opt/graphite/conf/storage-schemas.conf
# 按顺序来扫描的,第一个匹配到的配置为准,这个文件每隔60秒会被扫描一次。
# Schema definitions for Whisper files. Entries are scanned in order,
# and first match wins. This file is scanned for changes every 60 seconds.
#
#  [name]
#  pattern = regex
#  retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ...

# Carbon's internal metrics. This entry should match what is specified in
# CARBON_METRIC_PREFIX and CARBON_METRIC_INTERVAL settings
# 这个地方我把原来的carbon的配置删掉了,具体可以看.example的配置
[default_1min_for_1day]
pattern = .*
# 这里是每隔2s统计一次数据,保存1天
retentions = 2s:1d

修改完后保存,但是60s过后我发现没有生效,关联的grafana里面的数据还是60s的精度,执行命令来查看wsp文件的信息,发现secondsPerPoint的值还是60,于是果断把这个文件删除了。。。,然后重新打入数据,新生成的文件就变成2s了。

sunhuajie@debian:/opt/graphite/storage/whisper/local/sun$ whisper-info.py random.wsp
maxRetention: 86400
xFilesFactor: 0.5
aggregationMethod: average
fileSize: 518428

Archive 0
retention: 86400
secondsPerPoint: 60
points: 43200
size: 518400
offset: 28

果断删除后重新生成

sudo rm random.wsp

查看wsp文件信息

sunhuajie@debian:/opt/graphite/storage/whisper/local/sun$ whisper-dump.py random.wsp  | more

打印结果如下,可以看到每次更新数据的时候时间戳是每隔2s打点的

Meta data:
  aggregation method: average
  max retention: 86400
  xFilesFactor: 0.5

Archive 0 info:
  offset: 28
  seconds per point: 2
  points: 43200
  retention: 86400
  size: 518400

Archive 0 data:
0: 1487747056,        122
1: 0,          0
2: 0,          0
3: 0,          0
4: 0,          0
5: 0,          0
6: 0,          0
7: 0,          0
8: 0,          0
9: 0,          0
10: 0,          0
11: 0,          0
12: 0,          0
13: 0,          0
14: 0,          0
15: 0,          0
16: 1487747088,        122
17: 1487747090,        122
18: 1487747092,        122
19: 1487747094,        122
20: 0,          0
21: 1487747098,         22
22: 1487747100,         22
23: 0,          0
24: 0,          0
25: 1487747106,         52
26: 1487747108,         52
27: 1487747110,         52
28: 0,          0
29: 0,          0
30: 0,          0
31: 1487747118,         52
32: 0,          0
33: 1487747122,         52
34: 0,          0

相关推荐