深入拆解消息队列 47 讲
许文强
前腾讯云 Kafka 技术负责人
5385 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 50 讲
深入拆解消息队列 47 讲
15
15
1.0x
00:00/00:00
登录|注册

21|可观测性:如何设计实现一个好用的分布式监控体系?

你好,我是文强。
“可观测性”是近几年技术圈很火的话题,特别是 OpenCensus 和 OpenTracing 合并成立 OpenTelemetry 后,可观测性的发展速度越来越快,越来越成熟。
OpenTelemetry 主要是解决可观测性数据的获取规范问题,类似消息队列领域的 AMQP 和 OpenMessaging,目的都是打造一个标准化规范。它系统地将可观测性分为指标(Metrics)、日志(Logs)、跟踪(Traces)三个方面。在消息队列领域,可观测性建设主要也是围绕着这三点展开。
今天我们先来聊一聊怎样实现好用的指标和日志模块,以便我们快速定位业务问题出在哪里,下一节讲跟踪(Traces)。

指标需要关注哪几个维度?

从技术上看,指标分为单机维度和集群维度。
单机维度的指标主要分为操作系统、语言虚拟机、应用进程三层。
所以,从排查问题的角度来看,我们需要关注对应的三层指标。
操作系统:IaaS 层指标的 CPU、内存、网卡、硬盘等等。
语言虚拟机:Java 虚拟机的 GC、线程池、堆容量等等。
应用进程:进程中的生产消费各阶段耗时、接口的请求数、进程文件句柄数量等等。
集群维度是多个应用进程(节点)构成的集群维度的一些监控指标,比如集群中的 Topic 总数、分区数、Controller 节点的负载等等。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了如何设计和实现一个高效的分布式监控体系,重点关注了可观测性的发展和指标的记录、暴露方式。首先介绍了监控体系中的关键指标,包括单机维度和集群维度的指标,以及消息队列的关键指标。针对这些指标,详细介绍了如何记录指标,包括Java Metrics、Prometheus Metrics、OpenTelemetry支持的指标类型。接着,讨论了指标的暴露方式,包括自定义TCP/HTTP接口、JMX Service Server、Prometheus标准接口和OpenTelemetry上报。对于Prometheus和OpenTelemetry的指标暴露方式,分别进行了详细的技术讨论。最后,指出了当前主流的指标暴露方案,并对Prometheus和OpenTelemetry的使用进行了比较和建议。文章还总结了消息队列集群的指标关注点、记录指标的库以及指标暴露的方案。整体而言,本文对设计和实现分布式监控体系具有一定的参考价值,尤其适合对监控体系感兴趣的读者。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入拆解消息队列 47 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 虚竹
    动态调整日志的级别,也是只能看到调整后的错误信息,调整之前的错误信息看不到了吧?

    作者回复: 是的,之前的日志看不到了。 动态调整日志级别主要解决是不重启服务的情况下,可以开启和关闭不同级别的日志输出。可以用在比如服务正在异常,可能重启就恢复了。此时就可以动态开启不同级别的日志来查问题 。

    2023-10-12归属地:北京
  • takumi
    老师,为什么接口调用耗时使用Histogram而不是Summary?Summary还可以记录P99 P95这种
    2023-11-03归属地:上海
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部