tencent cloud

腾讯云可观测平台

动态与公告
产品动态
产品简介
产品概述
产品优势
基本功能
基本概念
应用场景
使用限制
购买指南
云产品监控
应用性能监控
终端性能监控
前端性能监控
云拨测
Prometheus 监控服务
Grafana 服务
事件总线
云压测
快速入门
监控概览
实例分组
云产品监控
应用性能监控
云拨测
云压测
Prometheus 监控服务
Grafana 服务
创建 Dashboard
事件总线
告警服务
云产品监控
云产品监控指标
控制台操作指南
云服务器监控组件
云产品监控对接 Grafana
故障处理
实践教程
应用性能监控
应用性能监控简介
接入指南
控制台操作指南
实践教程
参考信息
常见问题
终端性能监控
终端性能监控概述
控制台操作指南
接入指南
实践教程
前端性能监控
前端性能监控简介
控制台操作指南
接入指南
常见问题
云拨测
产品简介
控制台操作指南
常见问题
云压测
云压测概述
控制台操作指南
实践教程
JavaScript API 列表
常见问题
Prometheus 监控
Prometheus 监控简介
接入指南
控制台操作指南
实践教程
Terraform
常见问题
Grafana 服务
产品简介
控制台操作指南
Grafana 平台常用功能指引
常见问题
Dashboard
什么是 Dashboard
控制台操作指南
告警管理
控制台操作指南
故障处理
常见问题
事件总线
事件总线简介
控制台操作指南
实践教程
常见问题
报表管理
常见问题
腾讯云可观测平台常见问题
告警服务相关
一般性问题
监控图表相关
云服务器监控组件相关
动态阈值告警相关
云监控对接 Grafana 相关
文档阅读指南
相关协议
应用性能监控服务等级协议
APM 隐私协议
APM 数据处理和安全协议
前端性能监控服务等级协议
终端性能监控服务等级协议
云拨测服务等级协议
Prometheus 监控服务服务等级协议
Grafana 服务服务等级协议
云压测服务等级协议
云压测使用限制
Cloud Monitor Service Level Agreement
词汇表

自定义应用实例属性

PDF
聚焦模式
字号
最后更新时间: 2025-03-12 11:43:58
在应用接入 APM 的时候,针对每个应用实例,用户可以自定义一系列实例属性,以实现基于实例属性的查询过滤以及数据聚合。在应用实例生成的可观测数据中,都会将附加上对应的实例属性信息。例如,在 APM 提供的应用详情功能中,用户可以基于实例属性对目标实例进行筛选,分析特定 K8s 集群、K8s 工作负载、应用镜像版本下的性能表现。在 APM 提供的容器监控、CVM监控等功能中,需要通过实例属性关联其他云产品,实现一体化可观测。

APM 支持的实例属性

属性名
Key
是否必填
可以自动注入的场景
实例名
host.name
通过腾讯云增强版 Java 探针接入
通过 Skywalking 方案接入
TKE环境通过 tencent-opentelemetry-operator 一键接入
CVM 所在地域
cvm.region
通过腾讯云增强版 Java 探针接入
CVM 实例 ID
cvm.instance.id
通过腾讯云增强版 Java 探针接入
TKE 所在地域
k8s.region
TKE 环境通过 tencent-opentelemetry-operator 一键接入
TKE 集群 ID
k8s.cluster.id
TKE 环境通过 tencent-opentelemetry-operator 一键接入
K8s 节点 IP
k8s.node.ip
TKE 环境通过 tencent-opentelemetry-operator 一键接入
K8s 命名空间
k8s.namespace.name
TKE 环境通过 tencent-opentelemetry-operator 一键接入
K8s Deployment 名
k8s.deployment.name
TKE 环境通过 tencent-opentelemetry-operator 一键接入
K8s Pod 名
k8s.pod.name
TKE 环境通过 tencent-opentelemetry-operator 一键接入
K8s Pod IP
k8s.pod.ip
TKE 环境通过 tencent-opentelemetry-operator 一键接入
应用版本
service.version
TKE 环境通过 tencent-opentelemetry-operator 一键接入
自定义字段1
custom_key_1
-
自定义字段2
custom_key_2
-
自定义字段3
custom_key_3
-

手动设置实例属性

说明:
仅支持通过 OpenTelemetry 方案接入的应用。
在可以自动注入实例属性的场景,请勿通过手动设置覆盖。
在应用接入的时候,实例属性需要连同 tokenservice.name,一起填入到 Resource Attributes 中。在 OpenTelemetry 标准中,Resource Attributes 以键值对的方式体现应用实例的基本信息。用户可以通过环境变量设置实例属性,也可以在接入代码中设置实例属性,具体的设置方式和接入应用时设置 tokenservice.name的方式一致。

方式一:通过环境变量设置实例属性

将实例属性添加到环境变量 OTEL_RESOURCE_ATTRIBUTES 中,最终 OTEL_RESOURCE_ATTRIBUTES 会表现为类似 key1=value1,key2=value2,key3=value3 的形式。
参考如下代码设置k8s.regionk8s.cluster.id两个实例属性:
export OTEL_RESOURCE_ATTRIBUTES="service.name=myService,token=myToken"
export OTEL_RESOURCE_ATTRIBUTES="$OTEL_RESOURCE_ATTRIBUTES,k8s.region=ap-guangzhou,k8s.cluster.id=cls-7i2n4axx"
对于部署在 Kubernetes 的应用(没有使用 tencent-opentelemetry-operator 一键接入),也可以在工作负载 Yaml 文件通过 OTEL_RESOURCE_ATTRIBUTES环境变量设置实例属性,参考如下代码片段:
spec:
containers:
- env:
- name: OTEL_RESOURCE_ATTRIBUTES
value: "service.name=myService,token=myToken,k8s.region=ap-guangzhou,k8s.cluster.id=cls-7i2n4axx"
对于 TKE 环境通过 tencent-opentelemetry-operator 一键接入的应用,可以在工作负载 Yaml 文件设置没有被自动注入的实例属性,参考如下代码片段:
spec:
containers:
- env:
- name: OTEL_RESOURCE_ATTRIBUTES
value: "custom_key_1=value1,custom_key_2=value_2,cvm.region=ap-guangzhou,cvm.instance.id=ins-3flvdptq"
说明:
对于 TKE 环境通过 tencent-opentelemetry-operator 一键接入的应用,除了可以自动注入的实例属性外,token 和 service.name 也已经自动注入,请勿在 Yaml 文件中通过 OTEL_RESOURCE_ATTRIBUTES 环境变量进行覆盖。

方式二:在接入代码中设置实例属性

如果通过代码接入应用,可以直接在接入代码中设置实例属性,以 Go 应用为例:
import (
"context"
"errors"
"os"
"go.opentelemetry.io/otel/sdk/resource"
)
r, err := resource.New(ctx, []resource.Option{
resource.WithAttributes(
attribute.KeyValue{Key: "token", Value: attribute.StringValue("my-token")},
attribute.KeyValue{Key: "service.name", Value: attribute.StringValue("my-service")},
attribute.KeyValue{Key: "host.name", Value: attribute.StringValue("10.10.0.1")},
attribute.KeyValue{Key: "k8s.region", Value: attribute.StringValue("ap-guangzhou")},
attribute.KeyValue{Key: "k8s.cluster.id", Value: attribute.StringValue("cls-7i2n4ace")},
),
}...)

如何动态获取 Pod 名称

由于 Pod 名称、Pod IP、节点 IP 等信息需要在 Pod 创建后才能确定,在部署工作负载的时候,您可以通过 Kubernetes Downward API 进行动态获取,将这些信息写到环境变量中备用,方便在手动设置实例属性的时候进行引用。
spec:
containers:
- env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: NODE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
保存到环境变量后,可以直接引用,例如:
spec:
containers:
- env:
- name: OTEL_RESOURCE_ATTRIBUTES
value: "service.name=myService,token=myToken,k8s.pod.ip=$(POD_IP),k8s.pod.name=$(POD_NAME)"
说明:
对于 TKE 环境通过 tencent-opentelemetry-operator 一键接入的应用,Pod 名称、Pod IP、节点 IP 等实例属性都已经自动注入,请勿在 Yaml 文件中通过 OTEL_RESOURCE_ATTRIBUTES 环境变量进行覆盖。





帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈