监控部署落地

工单处理完了,我松了一口气,但是事情并没有告一段落。这个故障算是敲响了警钟:不能觉得 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 监控相关推荐

  1. 采用Opserver来监控你的ASP.NET项目系列(三、监控你的服务器状态)

    前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. ASP.NET Core之跨平台的实时性能监控 ASP.NET Core之跨平台的实时性能监控(2.健康检查) ...

  2. NSQ系列(一)nsq 介绍

    NSQ 介绍 简介 NSQ 是一款 Go 语言编写的开源分布式消息队列中间件,具备非常好的性能.易用性和可用性. 性能方面,采用了分布式可横向扩展的架构,让其适用于超大规模的消息实时处理,能够满足绝大 ...

  3. 查看linux内存优化,Linux性能优化和监控系列(三) 分析Memory使用状况

    Linux性能优化和监控系列(三) 分析Mem 分析Memory使用状况 内存是影响服务器性能的一个主要因素, 当进程已经驻留内存或者系能够分配给进程足够的内存给它, CPU能顺利自如的运行. 如果发 ...

  4. nsq java_golang使用Nsq

    为什么要使用Nsq 最近一直在寻找一个高性能,高可用的消息队列做内部服务之间的通讯.一开始想到用zeromq,但在查找资料的过程中,意外的发现了Nsq这个由golang开发的消息队列,毕竟是golan ...

  5. 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解

    前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...

  6. 【j360-boot】Spring-boot系列三(崩溃模式,不是你崩就是电脑崩)

    2019独角兽企业重金招聘Python工程师标准>>> j360-boot spring-boot入门工程之j360-boot:(欢迎star.fork) https://githu ...

  7. zabbix 5系列之snmp监控详解

    更多精彩Zabbix文章.技术交流.免费技术培训加微号NateIT,免费获取zabbix安装.配置.优化技术培训视频 官网:http://ywzs.hanyunintel.com 首先,谢谢原作者: ...

  8. flume系列之:监控flume上个小时生成的HDFS文件是否有损毁,并发送告警信息

    flume系列之:监控flume上个小时生成的HDFS文件是否有损毁,并发送告警信息 一.查看HDFS文件状态背景知识 二.登陆远程服务器代码 三.获取当前时间和上个小时时间 四.访问hdfs执行ke ...

  9. 【第21天】SQL进阶-查询优化- performance_schema系列三:事件记录(SQL 小虚竹)

    回城传送–><32天SQL筑基> 文章目录 零.前言 一.练习题目 二.SQL思路 SQL进阶-查询优化- performance_schema系列三:事件记录 等待事件表 even ...

  10. linux磁盘管理系列三:LVM的使用

    2019独角兽企业重金招聘Python工程师标准>>> linux磁盘管理系列三:LVM的使用 LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的L ...

最新文章

  1. LPC1768基本输入输出GPIO使用
  2. virtuoso根据原理图绘制版图并联接_版图绘制及Virtuoso软件工具使用.ppt
  3. 手动安装sys驱动文件_海龙工具的正确安装及卸载方法,自己动手丰衣足食
  4. MyBatis中in的使用
  5. WF4.0 基础篇 (二十九) WorkflowInspectionServices
  6. 练习--第一次课(运算if while 字符编码)
  7. linux 操作系统级别监控 free命令
  8. php主页备案号底部中间,如何获取公安备案号?如何将公安备案号放到网站底部?...
  9. 思科交换机配置命令大全
  10. 孩子兄弟表示法实现树
  11. 赛码-回文串-java
  12. 华为防火墙应用层过滤--URL
  13. Gallery与Imageswitch完美结合 做相册一绝啊
  14. tpc-c 服务器性能,TPC-E和TPC-C测试结果比较之我见
  15. 酷炫的数据可视化大屏来了!满足你99%大屏需求
  16. 志强CPU E5 E7参数,CPU内核参数对比图
  17. 深度学习面试题总结1-20
  18. 非LL(1)文法到LL(1)文法的等价变换
  19. Redis学习总结和相关资料
  20. Docker安装java环境并部署jar包运行

热门文章

  1. jeesite vue教程
  2. 2011学习总结(二)感悟篇
  3. 使用adb时出现Permission denied的解决办法
  4. windows找不到文件 chrome 请确定文件名是否正确 解决办法
  5. UE4 时间膨胀、慢动作
  6. android网络请求回调管理,Android网络请求回调没正常走 处理方案
  7. LeetCode - 76 最小覆盖子串
  8. 创业旅途008——公司注册
  9. Android脱离USB执行Shell脚本的方法
  10. 深入浅出单点登录---2、解决方案