NSQ系列(三) - nsq 监控
监控部署落地
工单处理完了,我松了一口气,但是事情并没有告一段落。这个故障算是敲响了警钟:不能觉得 NSQ 性能不错就认为消息不会堆积了,必要的监控报警还是得安排上。
因为我司已经存在的基础设施,所以我决定使用 Prometheus 来监控 NSQ 服务。(Prometheus 的相关背景知识就不在这里科普了, 想看的请留言。)
Prometheus 通过 exporter 去采集第三方服务的数据,也就是说 NSQ 必须配置一个 exporter 才能接入 Prometheus。
Prometheus 的官方文档[Exporters and integrations | Prometheus]上对 exporter 有推荐,我顺着链接找到了官方推荐的 NSQ exporter[https://github.com/lovoo/nsq_exporter]。NSQ exporter 这个项目年久失修,最近的一次提交已经在 4 年前。
于是,我把这个项目拿到了本地,做了一些简单的改造, 使它支持 go mod。(PR 在这里[https://github.com/lovoo/nsq_exporter/pull/29])
NSQ exporter 部署完成后,接下来的问题是哪些指标需要监控?
参考官网[NSQ Docs 1.2.1 - nsqadmin]我认为这些指标需要重点关注:
Depth:当前 NSQ 堆积的消息。NSQ 在内存中默认只保存 8000 消息,超过的消息会持久化到磁盘中。
Requeued:消息 requeue 的次数。
Timed Out:处理超时的消息。
Prometheus 建议配置 Grafana 更加直观地查看指标的变动情况,我配置大体的效果如下:
超时消息对应着 Timed Out 指标
堆积消息对应着 Depth 指标
负载是根据公式 sum(irate(NSQ_topic_message_count{}[5m])) 生成的。
探测服务是探测 NSQ exporter 服务是否正常。 因为该服务经常会因为 NSQ 压力过来导致 exporter 自身服务不可用。
自从 NSQ 配置监控服务后,我们能迅速感知 NSQ 当前状况,在报警发出后及时人工处理跟进。相关业务的稳定性有明显提升,此类问题引起的工单变少了;此外监控收集到的相关数据,让我们在接下来的性能优化工作中的思路更加清晰,方向更加明显。
https://github.com/lovoo/nsq_exporter
nsq_exporter - Prometheus Metrics exporter for NSQ
NSQ系列(三) - nsq 监控相关推荐
- 采用Opserver来监控你的ASP.NET项目系列(三、监控你的服务器状态)
前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. ASP.NET Core之跨平台的实时性能监控 ASP.NET Core之跨平台的实时性能监控(2.健康检查) ...
- NSQ系列(一)nsq 介绍
NSQ 介绍 简介 NSQ 是一款 Go 语言编写的开源分布式消息队列中间件,具备非常好的性能.易用性和可用性. 性能方面,采用了分布式可横向扩展的架构,让其适用于超大规模的消息实时处理,能够满足绝大 ...
- 查看linux内存优化,Linux性能优化和监控系列(三) 分析Memory使用状况
Linux性能优化和监控系列(三) 分析Mem 分析Memory使用状况 内存是影响服务器性能的一个主要因素, 当进程已经驻留内存或者系能够分配给进程足够的内存给它, CPU能顺利自如的运行. 如果发 ...
- nsq java_golang使用Nsq
为什么要使用Nsq 最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯.一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golan ...
- 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解
前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...
- 【j360-boot】Spring-boot系列三(崩溃模式,不是你崩就是电脑崩)
2019独角兽企业重金招聘Python工程师标准>>> j360-boot spring-boot入门工程之j360-boot:(欢迎star.fork) https://githu ...
- zabbix 5系列之snmp监控详解
更多精彩Zabbix文章.技术交流.免费技术培训加微号NateIT,免费获取zabbix安装.配置.优化技术培训视频 官网:http://ywzs.hanyunintel.com 首先,谢谢原作者: ...
- flume系列之:监控flume上个小时生成的HDFS文件是否有损毁,并发送告警信息
flume系列之:监控flume上个小时生成的HDFS文件是否有损毁,并发送告警信息 一.查看HDFS文件状态背景知识 二.登陆远程服务器代码 三.获取当前时间和上个小时时间 四.访问hdfs执行ke ...
- 【第21天】SQL进阶-查询优化- performance_schema系列三:事件记录(SQL 小虚竹)
回城传送–><32天SQL筑基> 文章目录 零.前言 一.练习题目 二.SQL思路 SQL进阶-查询优化- performance_schema系列三:事件记录 等待事件表 even ...
- linux磁盘管理系列三:LVM的使用
2019独角兽企业重金招聘Python工程师标准>>> linux磁盘管理系列三:LVM的使用 LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的L ...
最新文章
- LPC1768基本输入输出GPIO使用
- virtuoso根据原理图绘制版图并联接_版图绘制及Virtuoso软件工具使用.ppt
- 手动安装sys驱动文件_海龙工具的正确安装及卸载方法,自己动手丰衣足食
- MyBatis中in的使用
- WF4.0 基础篇 (二十九) WorkflowInspectionServices
- 练习--第一次课(运算if while 字符编码)
- linux 操作系统级别监控 free命令
- php主页备案号底部中间,如何获取公安备案号?如何将公安备案号放到网站底部?...
- 思科交换机配置命令大全
- 孩子兄弟表示法实现树
- 赛码-回文串-java
- 华为防火墙应用层过滤--URL
- Gallery与Imageswitch完美结合 做相册一绝啊
- tpc-c 服务器性能,TPC-E和TPC-C测试结果比较之我见
- 酷炫的数据可视化大屏来了!满足你99%大屏需求
- 志强CPU E5 E7参数,CPU内核参数对比图
- 深度学习面试题总结1-20
- 非LL(1)文法到LL(1)文法的等价变换
- Redis学习总结和相关资料
- Docker安装java环境并部署jar包运行