OpenTelemetry 资源概述
介绍
在分布式系统中,当我们需要监控和追踪应用程序行为时,**资源(Resource)**是OpenTelemetry的核心概念之一。资源代表生成遥测数据(telemetry data)的实体,它描述了数据来源的基础设施信息。
简单理解
想象资源就像是一份"身份证",它告诉观测系统:"这些数据是由哪个服务/主机/环境产生的"。
资源的基本组成
OpenTelemetry资源由一组**属性(Attributes)**构成,这些属性是键值对(key-value pairs),用于描述资源的特征。常见的属性包括:
service.name
:服务名称service.version
:服务版本host.name
:主机名cloud.provider
:云服务提供商
资源属性示例
以下是一个典型的资源定义示例(使用Python SDK):
from opentelemetry.sdk.resources import Resource
resource = Resource.create({
"service.name": "payment-service",
"service.version": "1.2.3",
"host.name": "payment-host-42",
"cloud.provider": "aws",
"cloud.region": "us-west-2"
})
资源在实践中的作用
1. 数据关联
资源信息会附加到所有生成的遥测数据上,使得我们可以:
- 区分不同环境的相同服务
- 识别特定主机的问题
- 按云区域聚合指标