> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 观测云

> AutoMQ 提供云原生可扩展性、完全兼容 Kafka 协议，并能通过观测云进行高效的实时监测，实现高达10倍的成本优势和高可靠性。

## 前言

### 观测云

[观测云](https://docs.guance.com/product-introduction/) \[1] 是一款专为云平台、云原生、应用及业务相关需求设计的统一实时监测应用，集成了指标、日志和追踪三大信号，覆盖测试、预发和生产环境，实现对软件开发全生命周期的可观测性。通过观测云，企业能够构建完整的应用全链路可观测性，提升整体 IT 架构的透明度和可控性。

作为一个强大的数据分析平台，观测云包括多个核心模块，如 DataKit \[2] 统一数据采集器和 DataFlux Func 数据处理开发平台。

<img alt="可观测性的数据流动" src="https://mintcdn.com/automq/sFBpuM1amdoj0ixs/zh/automq/integrations/observability/guance-cloud/1.webp?fit=max&auto=format&n=sFBpuM1amdoj0ixs&q=85&s=0eb35ef6e712522ea4b8cb9d0366810d" width="1747" height="746" data-path="zh/automq/integrations/observability/guance-cloud/1.webp" />

### AutoMQ

[AutoMQ](https://www.automq.com/zh) \[3]，是基于云原生理念重新设计的新一代 Apache Kafka 发行版，在 100% 兼容 Apache Kafka 协议的前提下提供了高达 10 倍的成本优势和弹性优势。并且 AutoMQ 将数据完全存储在 S3 上，因此在集群扩容时无需数据复制即可快速应对突发的流量洪峰。相比之下，Apache Kafka 在扩容后需要大量带宽进行分区数据的复制，难以应对突发流量。通过自动扩缩容、自动流量平衡和自动故障恢复等功能，AutoMQ 实现了系统的高度自治，无需人工干预即可实现更高水平的可用性。AutoMQ 的共享存储结构：

<img src="https://mintcdn.com/automq/W0CbTmf8Sq7hHZDS/zh/automq/integrations/observability/guance-cloud/2.gif?s=87de271b88c1beba88224e0b7683212b" width="1424" height="1642" data-path="zh/automq/integrations/observability/guance-cloud/2.gif" />

## AutoMQ 的可观测接口

由于 AutoMQ 对 Kafka 的完全兼容，并且支持开放基于 Prometheus 的 Metrics 收集端口，因此可以利用观测云提供的数据采集工具 DataKit 与观测云平台进行集成。方便用户对 AutoMQ 集群的状态进行监测和管理，并且观测云平台支持用户自定义地对 Metrics 数据进行聚合以及查询，通过给定的仪表盘模板或者自定义仪表盘，可以有效地对 AutoMQ 集群的各种信息进行统计，比如常见 Topics, Brokers, Partitions 以及 Group 统计数据。

除此之外，根据 Metrics 可观测数据，也可以查询到 AutoMQ 集群运行过程中遇到的错误情况以及当前系统的各种占用指标，如 JVM CPU 占用，JVM 堆占用和缓存大小，这些指标都能够帮助在集群发送异常的情况下，迅速的发现问题并进行解决，这对于系统的高可用和快速恢复都是非常有利的。接下来，本文将介绍如何使用观测云平台进行 AutoMQ 集群状态的监测。

## 集成观测云的步骤

### AutoMQ 开启 Metric 拉取接口

参考 AutoMQ 文档：[Linux 主机部署多节点集群▸](/zh/automq/deployment/deploy-multi-nodes-cluster-on-linux) 部署启动前，添加如下配置参数开启 Prometheu的拉取接口。通过以下参数启动 AutoMQ 集群以后，每个节点将会额外开放一个 HTTP 接口供拉取 AutoMQ 的监控指标。指标的格式均遵循 Prometheus Metrics 的格式。

```bash theme={null}

bin/kafka-server-start.sh ...\
--override  s3.telemetry.metrics.exporter.type=prometheus \
--override  s3.metrics.exporter.prom.host=0.0.0.0 \
--override  s3.metrics.exporter.prom.port=8890 \
....

```

当启用 AutoMQ 监控指标后，可以在任意一台节点上通过 HTTP 协议拉取到 Prometheus 格式的监控指标，地址为： `http://{node_ip}:8890` ，响应结果示例如下：

```text theme={null}

....
kafka_request_time_mean_milliseconds{otel_scope_name="io.opentelemetry.jmx",type="DescribeDelegationToken"} 0.0 1720520709290
kafka_request_time_mean_milliseconds{otel_scope_name="io.opentelemetry.jmx",type="CreatePartitions"} 0.0 1720520709290
...

```

关于指标介绍，可以参考 AutoMQ 官网文档：[Prometheus Metrics 定义▸](/zh/automq/observability/prometheus-metrics)。

### 安装和配置 DataKit 采集工具

DataKit 是一款由观测云提供的开源的监控采集工具，支持 Promethues Metrics 的拉取。可以通过 DataKit 来拉取 AutoMQ 上的监控数据汇总到观测云平台。

#### 安装 DataKit 工具

> Tips: 更多 DataKit 安装细节参考文档：[主机安装 - 观测云文档](https://docs.guance.com/datakit/datakit-install/) \[6]。

首先，注册观测云账号并登录，随后在主界面点击左侧「集成」选择顶部「DataKit」，即可看到 DataKit 的安装命令：

```bash theme={null}

DK_DATAWAY="https://openway.guance.com?token=<TOKEN>" bash -c "$(curl -L https://static.guance.com/datakit/install.sh)" 

```

拷贝以上命令，在集群中的所有节点上运行 DataKit 的安装命令完成安装。

> Tips: 集群中所有需要被监控的 Broker 都需要安装 DataKit.

执行安装命令成功后使用命令 `datakit monitor` 可以验证 DataKit 是否成功安装。

<img src="https://mintcdn.com/automq/sFBpuM1amdoj0ixs/zh/automq/integrations/observability/guance-cloud/3.webp?fit=max&auto=format&n=sFBpuM1amdoj0ixs&q=85&s=09b446d4235872fbc79851bda4a964df" width="1280" height="780" data-path="zh/automq/integrations/observability/guance-cloud/3.webp" />

#### AutoMQ 采集器配置与生效

这里要在每个待采集数据的节点所在的服务器上配置好 DataKit 的 AutoMQ 采集器配置。进入目录 `/usr/local/datakit/conf.d/prom` ，创建一个采集器配置文件  `prom.conf` 。采集器配置会包括开放的可观测数据接口、采集器名称、prom 实例名以及重要的采集间隔 interval 等，你可以根据需要对每个服务器上的配置进行一些调整：

```text theme={null}

  [[inputs.prom]]
  
  urls = ["http://clientIP:8890/metrics"]   # clientIP 为你自己的服务器地址
  source = "AutoMQ"

  ## Keep Exist Metric Name
  ## If the keep_exist_metric_name is true, keep the raw value for field names.
  keep_exist_metric_name = true

  [inputs.prom.tags_rename]
    overwrite_exist_tags = true

  [inputs.prom.tags_rename.mapping]
    service_name = "job"
    service_instance_id = "instance"

  [inputs.prom.tags]
    component="AutoMQ"
  interval = "10s"

```

调整参数说明 ：

| urls<br />     | AutoMQ 指标地址，这里填写对应组件暴露出来的指标 url<br /> |
| -------------- | ------------------------------------- |
| source<br />   | 采集器别名，建议做区分<br />                     |
| interval<br /> | 采集间隔，指定了采集器进行采集数据的间隔<br />            |

执行  `datakit service -R`  重启该节点的 DataKit 生效采集器配置。

## 通过观测云可视化管理 AutoMQ 集群

观测云平台已经集成了 AutoMQ 并且提供了多个默认的仪表盘，可以前往 [仪表盘示例 ](https://console.guance.com/scene/dashboard/createDashboard?w=wksp_63b96920660e4962a07429b65ef163e7\&lak=Scene)\[7] 查看。下面是其中几种常用模板示例，我们介绍一下他们的功能：

### 集群监控

主要显示的是当前活跃 Broker 的数量，以及总的 Topics 数量、Partitions 分区数量等，除此之外，也可以指定具体查询哪个节点，这个可以在 Cluster\_id 里选择。

<img alt="通过监测 Kafka 集群的状态，可以及时发现并解决潜在的问题，如节点故障、磁盘空间不足、网络延迟等，以保证系统更加可控稳定。" src="https://mintcdn.com/automq/kFvm7Lwf3ab0EBuj/zh/automq/integrations/observability/guance-cloud/4.webp?fit=max&auto=format&n=kFvm7Lwf3ab0EBuj&q=85&s=5000860978cb8e741d013431981f1635" width="1920" height="869" data-path="zh/automq/integrations/observability/guance-cloud/4.webp" />

通过监测 Kafka 集群的状态，可以及时发现并解决潜在的问题，如节点故障、磁盘空间不足、网络延迟等，以保证系统更加可控稳定。

### Broker 监控

观测云的  `AutoMQ Broker`  仪表盘描述了所有 Broker 的一些指标、比如连接数、分区数、每秒接受到的消息数量 ops 以及每秒输入和输出的数据量，单位是 Byte。

<img src="https://mintcdn.com/automq/kFvm7Lwf3ab0EBuj/zh/automq/integrations/observability/guance-cloud/5.webp?fit=max&auto=format&n=kFvm7Lwf3ab0EBuj&q=85&s=5183330240c13d88ee28ee32d53c8932" width="1920" height="869" data-path="zh/automq/integrations/observability/guance-cloud/5.webp" />

### Topic 监控

这里就是对于所有节点中包含的所有 Topic 的信息总览了，当然你也可以像上面介绍的那样，指定查询某个节点下的 Topic 信息。这些指标主要包括每个 Topic 占用的空间大小，以及接受到的消息数量，还有 Request Throughput 表示单位时间内处理请求的能力。

<img alt="至此，通过观测云成功监测了 AutoMQ 集群状态，并且仪表盘中的数据都是由 Metrics 指标进行聚合或查询的方式得到的。" src="https://mintcdn.com/automq/kFvm7Lwf3ab0EBuj/zh/automq/integrations/observability/guance-cloud/6.webp?fit=max&auto=format&n=kFvm7Lwf3ab0EBuj&q=85&s=4712fb3aec46d2c3e5db6067e0e5ccbe" width="1920" height="869" data-path="zh/automq/integrations/observability/guance-cloud/6.webp" />

至此，通过观测云成功监测了 AutoMQ 集群状态，并且仪表盘中的数据都是由 Metrics 指标进行聚合或查询的方式得到的。

## 总结

本文介绍了如何将观测云平台与 AutoMQ 完美地结合在一起，完成对 AutoMQ 集群状态信息的监测，其实还有更多进一步的高级操作，比如自定义的报警功能，自定义的数据查询等，这些都可以通过官方给出的规则进行 DIY，你可以手动试验一下这些操作，相信你会找到适合你的需求。同时也希望这篇文章能够在你结合观测云平台和 AutoMQ 时有所帮助！

## 引用

\[1] 观测云：[https://docs.guance.com/product-introduction/](https://docs.guance.com/product-introduction/)

\[2] DataKit: [https://docs.guance.com/datakit/](https://docs.guance.com/datakit/)

\[3] AutoMQ: [https://www.automq.com](https://www.automq.com)

\[4] 主机安装 - 观测云文档：[https://docs.guance.com/datakit/datakit-install/](https://docs.guance.com/datakit/datakit-install/)

\[5] 仪表盘示例：[https://console.guance.com/scene/dashboard/createDashboard?w=wksp\_63b96920660e4962a07429b65ef163e7\&lak=Scene](https://console.guance.com/scene/dashboard/createDashboard?w=wksp_63b96920660e4962a07429b65ef163e7\&lak=Scene)
