OpenTelemetry语义约定与自动检测:提升可观测性的关键
1. 语义约定概述
在中大型组织中,支持生产工作负载的工程师常常会遇到这样的情况:多个服务产生的指标或日志使用了各种不同的属性或标签来表示同一概念,例如云提供商区域。不同的服务可能会用 region 、 region_name 、 cloud.region 等不同方式来表达,甚至在迁移到云环境的服务中,还可能沿用旧的属性,如 data_center ,但赋予了它完全不同的含义。这使得工程师在查找特定区域的日志或指标时变得困难,需要一定的领域知识。
为了解决这个问题,OpenTelemetry 语义约定应运而生。它定义了一组用于描述遥测信号上下文的通用属性的键值对,涵盖了运行时环境、协议和操作等概念。其目标是促进跨信号和跨语言的遥测关联,并使可观测性工具能够使用通用语言处理遥测数据。
语义约定作为一个跨领域的关注点,以独立于不同客户端 API 和 SDK 的包形式发布。为确保跨语言的一致性,这些包中的常量和枚举是从托管在 opentelemetry - specification 公共仓库中的一组 YAML 文件自动生成的。
在 Java 项目中使用语义约定时,由于其尚未完全稳定,需要在构建中包含 alpha 版本的包。以下是在 Gradle 项目中使用的依赖配置示例:
dependencies {
implementation platform("io.ope
超级会员免费看
订阅专栏 解锁全文
83

被折叠的 条评论
为什么被折叠?



