对于容器计算服务 ACS 集群上的应用,可通过 OpenTelemetry 无侵入监控(OBI)方案实现无需修改代码的应用性能监控。该方案通过安装 ARMS 探针接入助手(ack-onepilot)组件,并为应用添加指定标签完成接入,监控数据最终通过云监控 2.0 控制台查看。本文介绍如何为 ACS 集群安装 ack-onepilot 组件并为应用配置 OBI 监控标签。
前提条件
ACS 集群通过 Sidecar 方式运行 OBI 需要特殊权限。请提交工单给 ARMS 售后,申请为当前 UID 添加以下 Linux Capabilities 权限:
BPF
PERFMON
NET_ADMIN
NET_RAW
SYS_ADMIN
CHECKPOINT_RESTORE
SYS_RESOURCE步骤一:安装 ARMS 探针接入助手(ack-onepilot)
登录容器服务管理控制台,在集群列表页面单击目标集群名称。
在左侧导航栏单击组件管理,然后通过关键字搜索 ack-onepilot。
说明请确保 ack-onepilot 的版本在 5.2.2 或以上。
在 ack-onepilot 卡片上单击立即安装。
ack-onepilot 组件默认支持 1000 个 Pod 规模,集群 Pod 每超过 1000 个,ack-onepilot 资源对应的 CPU 请增加 0.5 核、内存请增加 512 MB。
如果为 ACS 集群安装 ack-onepilot,请在安装卡片的最下方配置 accessKey 与 accessKeySecret,即阿里云账号的 AccessKey ID 和 AccessKey Secret。获取方法,请参见创建AccessKey。请确认对应的阿里云账号已包含 AliyunARMSFullAccess 和 AliyunSTSAssumeRoleAccess 权限。
在弹出的页面中配置相关参数。其中
configuration.obiSidecarConfig为 OBI 的运行参数。如需修改(例如添加自定义网关),可将原参数值复制导出并修改,再粘贴回输入框中,修改完成后点击确认;若无需修改,OBI 默认支持包括百炼 DashScope、OpenAI、Gemini 等官方 LLM 服务端;若使用其他 LLM 服务端,则需进行配置,在ebpf.payload_extraction.http.genai下新增openai_compatible并配置host即可,类似如下:ebpf: payload_extraction: http: jsonrpc: enabled: true genai: openai_compatible: enabled: true gateways: - host: newapi.com其他配置可参考OBI 组件配置说明完成修改。
步骤二:为应用开启 OBI 监控
为已有应用或新建应用添加 OBI 监控标签,将应用接入云监控 2.0。
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面左侧顶部,选择目标集群所在的资源组和地域,单击目标集群名称,然后在左侧导航栏,单击工作负载,然后选择无状态、有状态或守护进程集。
在目标应用右侧选择
> YAML 编辑。如需创建一个新应用,单击使用 YAML 创建资源。
将以下
labels添加到 YAML 文件spec.template.metadata层级下。labels: apsara.apm/application-type: obi # 必填,标明此应用通过OBI接入。 armsPilotAutoEnable: 'on' armsPilotCreateAppName: "<应用名称>" # 请替换为实际应用名称。 armsPilotAppWorkspace: "<工作空间名称>" # 替换为当前Workspace名称,不填则使用默认值。单击更新。
验证监控数据
OBI 组件配置完成后,等待约 2 分钟即可查看监控数据。
登录云监控 2.0 控制台,选择目标工作空间,在左侧导航栏选择所有功能 > 应用可观测 > 应用监控。
在应用列表页面单击目标应用名称,查看应用拓扑、调用链路、异常事务、慢事务和 SQL 分析等监控数据。各监控功能的使用说明,参见应用监控。如果是 AI Agent 应用,可以在AI Agent 可观测中查看监控数据。