前言
我们在之前的文章里介绍了 AutoMQ 如何与 Prometheus、观测云[1]、夜莺监控[2]等后端进行集成并实现对 AutoMQ 的监控,本文将进一步介绍 AutoMQ 的可观测性架构,以及 AutoMQ 如何实现多云可观测性。
可观测架构
Apache Kafka 的 Server 侧主要依赖 YammerMetrics[3] 这一第三方 Library 实现了指标的定义和采集,并通过将指标注册到 MBeans Server 的方式对外暴露观测接口,在实际集成过程中,还需要结合诸如 jmx_exporter[4] 之类的第三方 agent 来完成与可观测后端的集成。而 AutoMQ 作为一款面向云重新设计的流处理平台,自然需要更加原生化的可观测方式,而 OpenTelemetry[5](下简称 OTel) 作为当前云原生应用可观测性框架的事实标准,自然成为了 AutoMQ 的首选。AutoMQ 的整体可观测架构如下图所示,本节将分采集、导出、可观测后端、可视化前端四个部分进行介绍。

采集
在采集侧,AutoMQ 保留了 Apache Kafka 的原生指标采集链路,并通过 OTel 社区的 JMXMetrics Library 完成从 JMX 到 OTLP 格式的指标转换。对于 AutoMQ 自身新增的指标,则全部使用了 OTel SDK 进行采集。
导出
基于 Apache Kafka MetricsReporter 接口:
-
JmxReporter:即上文提到的 Apache Kafka 的原生指标导出方式,通过 YammerMetrics Library 将指标以 JMX 形式导出
-
AutoBalancerMetricsReporter:AutoMQ 实现的内部指标采集器,主要用于采集节点和分区维度的负载相关指标并写入内部 Topic
基于 OTLP SDK:
-
PrometheusMetricsExporter:基于 OTel SDK 的 PrometheusHttpServer 实现,AutoMQ 自身作为 HTTP Server 对外暴露端口,以被动拉取的方式提供 Prometheus 格式的指标
-
OpsMetricsExporter:AutoMQ 实现的基于对象存储的指标上报组件,可定时将采集到的指标进行序列化后上传至指定的对象存储 Bucket 中,以实现便捷的跨云跨账号的指标共享和分析

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



