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的用户名和密码。如下图
通过一条命令可以简单地向数据源中打入数据
PORT=2003 // 这个是数据源的写入地址 SERVER=http://192.168.186.136 echo "local.metric.random 4 `date +%s`" | nc -q0 ${SERVER} ${PORT}
第一个参数就是代表了metrics的链路,第二个参数代表当前这个监控链路的值,第三个参数代表时间。
因为在图形上,我们发现,在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
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