跳到主要内容

独立使用 APO Metrics 模块实现 Metrics 数据监控功能

最后于 更新

简介​

  • APO 默认开启并支持全量采集多种类型的可观测数据,包括 Trace、Metrics 和 Logs,用户可根据自身需求,灵活配置 APO-one-agent 的数据采集类型,以适应用户环境中现有的数据类型。
  • APO 监控 Metrics 数据均使用开源组件与传统的 Metrics 数据采集无异,且拥有更高的集成度实现快速部署。
  • 本文档介绍 APO 如何独立监控 Metrics 数据,并介绍如何配置 APO 独立采集并监控 Metrics 数据。

与传统方式对比​

传统的 Metrics 数据采集: 基本都是使用 Prometheus 的 Exporter 进行节点指标采集,如果是容器环境再加上 cAdvisor 采集容器指标。再由 Prometheus 来采集目标节点端口并存储。由 Grafana 作为前端查询指标数据。

APO 实现的 Metrics 数据采集: 使用 Grafana Alloy 的 exporter 采集节点、容器及 Kubernetes 环境的各项指标,并通过 OTEL Collector 推送数据至 VictoriaMetrics 存储。APO 内嵌的 Grafana 用于作为前端,查询并展示指标数据,预设了 Kubernetes、容器、节点及网络资源的监控大盘。所有组件集成于一次部署中,实现系统的快速搭建与监控能力的全面覆盖。

画板

实现原理​

使用 OneAgent 中的 Alloy 采集 Metrics 数据​

相比传统的 Prometheus Node Exporter,APO-one-agent 内置集成了 Grafana Alloy,能够采集宿主机节点资源指标、Kubernetes 集群信息,以及 Kubernetes 环境下节点和容器的资源指标。同时,APO-one-agent 还集成了网络组件,用于采集节点间和容器间的网络 RTT(Round Trip Time,往返时间)等关键网络性能指标。

自动配置应用/基础设施及网络相关指标采集器​

相较于传统部署更新采集器需要维护配置文件来监控目标节点,且需要配置安装多个采集器来适配您的 Metrics 数据采集需求;APO-one-agent仅需配置少量配置即可获得生产环境常用的大部分指标数据。

OTEL Collector 完成数据跨云、跨集群传输​

使用 OTEL Collector 来完成数据跨云、跨集群传输,APO 支持 OTEL 协议,所有 Metrics 数据都符合 OTEL 数据格式,轻松兼容已有数据源与未来拓展。

APO 将 Metrics 数据存储在 VictoriaMetrics 中​

相较于 Prometheus 更强性能的指标存储数据库组件,使用更少的资源,存储更多的数据,获取更强的资源;同时 APO 可选使用内部集成 VictoriaMetrics 亦或者轻松对接您已有的 VictoriaMetrics 实例(具体配置请参见生产环境部署建议)。

利用 APO 集成的 Grafana 大屏查看指标或者自定义更多大屏​

APO 集成 Grafana 并预置多个常用指标大盘,您可以在 Grafana 中查询全量的 Metrics 数据,也可以查看 APO 预配置的指标大屏,亦或者您可以自定义更多指标大屏。

轻松拓展 Trace Metrics Log 一体化可观测平台​

相较于传统的 Metrics 监控体系,APO 不仅能够实现对节点、容器及应用的性能指标采集,还可以轻松扩展至涵盖 Trace、Metrics 和 Log 的一体化可观测平台。通过这一平台,不同数据类型(如指标、链路追踪、日志)可以相互关联,提供完整的可观测性视图,帮助开发者和运维人员在性能调优、故障排查、异常监控等方面更加高效。APO 以一站式的方式搭建起涵盖全栈的可观测体系,极大简化了系统的管理和监控工作。

如何配置 APO 仅使用 Metrics 监控模块​

第一步:准备工作​

要使用 Helm 安装 APO,请确保已完成以下操作:

  • 在计算机上安装 Kubernetes 服务器。有关安装 Kubernetes 的信息,请参阅安装 Kubernetes。
  • 安装 Helm 的最新稳定版本。有关安装 Helm 的信息,请参阅安装 Helm。
  • 网络策略:需要 APO-one-agent 所在集群/机器能够访问 APO-server 集群的 30044、31363、31317、30319 端口。

第二步:设置 APO Helm 仓库​

要设置 APO Helm 存储库,以便在计算机上下载正确的 APO Helm charts,请完成以下步骤:使用下方命令添加 apo Helm 仓库

helm repo add apo https://apo-charts.oss-cn-hangzhou.aliyuncs.com
helm repo update apo

第三步:配置 APO 组件为独立采集 Metrics 数据模式​

创建文件apo-values.yaml,并根据您的需求进行定义,并在部署阶段挂载配置。

本步骤配置 APO-server 数据模式为独立使用 Metrics 模块数据模式。

# apo-values.yaml

# agentCollectorMode 为采集数据模式
global:
agentCollectorMode:
- metrics

# APO-server
# 持久化配置,默认为false
# 生产环境:推荐打开
# POC阶段:可以使用非持久化配置进行快速部署
# 如果为持久化配置则需要根据PVC创建PV
altinity-clickhouse-operator:
clickhouse:
persistence:
enabled: true
victoria-metrics-single:
server:
persistentVolume:
enabled: true
apo-backend:
persistence:
enabled: true

这里提供的为 APO 部署的基础配置,如果您要进行更多配置更改,请从 APO Helm Charts 库中下载values.yaml文件:

helm show values apo/apo > values.yaml

第四步:部署 APO-server​

运行以下命令,挂载配置文件并部署 。

helm install apo apo/apo -n apo --create-namespace \
-f apo-values.yaml

第五步:配置 APO-one-agent 仅使用 Metrics 监控模块​

创建文件apo-one-agent-values.yaml,并根据您的需求进行定义,并在部署阶段挂载配置。

本步骤配置 APO-on-agent 数据模式为独立使用 Metrics 模块数据模式。

# apo-one-agent-values.yaml

# apoServerIP 为 APO-server 所在的 ClusterIP
# agentCollectorMode 为采集数据模式
global:
apoServerIP: x.x.x.x # FIXME
agentCollectorMode:
- metrics

这里提供的为 APO 部署的基础配置,如果您要进行更多配置更改,请从 APO Helm Charts 库中下载values.yaml文件:

helm show values apo/apo-one-agent > values.yaml

第六步:部署 APO-one-agent​

运行以下命令,挂载配置文件并部署 。

helm install apo-one-agent apo/apo-one-agent -n apo --create-namespace \
-f apo-one-agent-values.yaml

第七步:验证​

执行下方命令查询 pod 运行状态

kubectl get po -n apo

卸载 APO-server​

kubectl delete clickhouseinstallation apo -napo
helm uninstall apo -n apo
kubectl delete ns apo

卸载 APO-one-agent​

helm uninstall apo-one-agent -n apo
kubectl delete ns apo