前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >grafana&prometheus生产级容器化监控-2:监控rocketmq

grafana&prometheus生产级容器化监控-2:监控rocketmq

作者头像
Criss@陈磊
发布2019-10-24 18:28:57
1.5K0
发布2019-10-24 18:28:57
举报
文章被收录于专栏:测试技术圈测试技术圈

(1)核心原理与代码

笔者为了简单快速,是直接调用rocketmq-console的ajax/http取现成数据,所以本例rocketmq-exporter的运行必须有对应的rocketmq-console实例。

代码位于:

https://github.com/hepyu/hpy-rocketmq-exporter/blob/master/src

http_util.py:封装pycurl访问http。

rocketmq_constant.py:定义不监控的topic,因为rocketmq安装后会有一些默认topic,如给benchmark用的BenchmarkTest等,正常情况下这些不需要纳入监控。如果你要进行压测,肯定是要开的,目前只能改代码重制镜像,后边会把他放到env做成可配置的。

rocketmq_dao.py:使用http_util,封装调用rocketmq-console取监控数据的接口。

rocketmq_service.py:调用rocketmq_dao,格式化数据。

rocketmq_exporter.py:暴露最终的exporter服务,同时创建prometheus监控对象,返回最终的metrics数据给prometheus的scrape调用。

(2)基础镜像

位于:

https://github.com/hepyu/hpy-rocketmq-exporter

以官方镜像python3.6为基准安装prometheus-client, flask等必要组件。

cd python-docker-image

sh ./docker-python3.6.build.sh

hpy-rocketmq-exporter

以前述镜像为基准制作rocketmq-exporter镜像。

sh ./docker.build.sh

(3)结合grafana/prometheus/容器化

笔者提供grafana/prometheus/rocketmq-exporter容器化的基本配置文件,位于:

https://github.com/hepyu/k8s-app-config/tree/master/product/standard/grafana-prometheus-pro/exporter-mq-rocketmq

父目录有grafana/prometheus的容器化配置,分别执行即可。

grafana与prometheus的生产级容器化详见笔者相关文章:

grafana&prometheus生产级容器化监控-1:生产级容器化

(4)一些瑕疵

但足够生产使用了(主要是我也没啥动力,够我们用就可以了,高优先级事情太多)。

1.目前只支持rocketmq-console的变量设置。

2.数据校验方面有遗漏,必须存在至少一个topic和consumer才正常,否则json解析失败,metrics获取失败。

(5)最终效果

原图文件位于:

https://github.com/hepyu/k8s-app-config/blob/master/product/standard/grafana-prometheus-pro/exporter-mq-rocketmq/images/mesage-unconsumed-count.jpg

可以根据各个维度监控消息堆积,精确到进程粒度:

(6).建议rocketmq集成prometheus监控到官方

建议rocketmq集成prometheus监控,这样可以全方位监控rocketmq集群的状态,比如其中一个很重要的维度就是高压力下消息发送失败,以及对应的重试机制,如果可以对其进行观测,更有助于生产使用。

我们目前的做法是在自研框架中再次封装rocketmq接口,在封装的这一层集成prometheus监控。我们的生产做法参见文章:

rocketmq1:集群主要结构和监控,以及性能测试与成本控制

如下图例,监控producer第一次发送消息失败的情况,以及重发结果的情况:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 质问 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (1)核心原理与代码
  • (2)基础镜像
相关产品与服务
Grafana 服务
Grafana 服务(TencentCloud Managed Service for Grafana,TCMG)是腾讯云基于社区广受欢迎的开源可视化项目 Grafana ,并与 Grafana Lab 合作开发的托管服务。TCMG 为您提供安全、免运维 Grafana 的能力,内建腾讯云多种数据源插件,如 Prometheus 监控服务、容器服务、日志服务 、Graphite 和 InfluxDB 等,最终实现数据的统一可视化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档