之前配置的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的链路,第二个参数代表当前这个监控链路的值,第三个参数代表时间。
调整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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。