解密可观测行业中的语义规范 — 代码世界中的“语言艺术”
可观测行业中的语义规范
语义规范可以说在我们生活中无处不在,它为某种语言或文化中的单词和短语提供了一致的意义,以促进更清晰的交流。
而在计算机世界中,语义规范也同样甚至更加关键,因为屏幕上的文本缺乏更丰富的对话环境——没有语调或肢体语言可以解读,这使得误解更容易发生,也让接手他人代码变得具有挑战性。
在可观测领域,语义规范同样重要,它可以确保一致性和清晰度。
定义和示例
在可观测领域,语义规范指的是遥测数据及其属性的命名标准。它们定义了用户在监控常见软件或库时应该如何命名其可观测数据。
例如,在典型的使用数据库驱动的应用中,语义规范定义了标准名称和值的枚举,如:
db.system
:数据库类型(例如,mysql
或postgresql
)db.operation.name
:数据库操作(例如,SELECT
)
这些标准化名称可以用于各种可观测数据类型:
指标(Metrics):作为指标名称或标签名称和值
日志/事件(Logs/Events):作为字段名称和值
跟踪(Traces):作为事件字段或属性字段名称和值
行业标准
行业中几种广泛采用的语义规范包括:
Elastic Common Schema
OpenTelemetry Semantic Conventions
Datadog Conventions
概念架构:V-Model
为了说明各种可观测概念之间的关系,我们可以使用 V 模型架构。
如下图,V 字母的左半边代表数据采集链路,右半边代表数据应用链路。数据从左上方经过采集、传输,进入存储,再由存储经过查询语言、API 最终应用在监控产品上,如大盘、告警等系统。
(图 1:可观测概念架构 V-Model)
语义层
负责收集数据并提供数据应用(分析、仪表盘、告警)
理解数据及其含义
示例:名为
db.connection.pool.active
的指标代表应用程序连接池中的活动连接数使构建特定领域的应用程序用于数据洞察和分析成为可能
协议层
增加抽象,并负责通过网络从 API/SDK 移动数据到收集器
通常不需要理解特定值的含义
处理指标(计数器、直方图)、日志和跟踪概念
定义查询语言和数据提取的传输 API
大多数 OpenTelemetry 规范集中于这一层
存储层
更简单,甚至与可观测数据本身解耦
按模型(时间序列或表格)和数据类型(字符串、浮点数)查看数据
可观测专用数据库可包含用于高效查询和数据检索的功能
为什么语义规范很重要
在之前,可观测行业缺乏广泛认可的语义层标准。这导致了一些问题的出现:
组织或公司自行定义自己的指标名称和标签
需要自行定制仪表盘和警报程序,缺乏可以共享的标准程序
更容易被供应商锁定(例如,Datadog 的专有规范)
因此,提供标准语义层会提供几个好处:
互操作性:在不同后端之间共享代理和应用程序
一致性和生态系统:为常见中间件和基础设施构建标准观测解决方案
简化采用:组织可以使用理解这些语义规范的预构建仪表盘、警报和分析工具
优化数据存储和计算:在其他层中实现数据存储和计算的优化
GreptimeDB 支持语义规范
GreptimeDB 是一个适用于存储和分析各种类型可观测数据的时间序列数据库(包括指标、事件和日志等),也得益于行业中建立的明确语义规范。
例如,GreptimeDB 内置 ETL 引擎可将非结构化日志解析为标准事件。我们建议用户以 OpenTelemetry 标准规范命名字段,这样将来也可以很方便地接入标准化的仪表盘和分析工具。
未来,我们也将在云端为符合语义规范的数据提供标准化的上层应用,敬请期待!
关于 Greptime:
Greptime 格睿科技专注于为物联网(如智慧能源、智能汽车等)及可观测等产生大量时序数据的领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前主要有以下三款产品:
GreptimeDB 是一款用 Rust 语言编写的开源时序数据库,具有云原生、无限水平扩展、高性能、融合分析等特点,帮助企业实时读写、处理和分析时序数据的同时,降低长期存储的成本。我们提供 GreptimDB 企业版,支持更多功能和定制化服务,如有需要欢迎联系小助手:15310923206(微信同)
边云一体方案专为更高效地解决物联网中边缘存储和计算问题而设计,解决了物联网企业数据呈几何倍数增长后的实际业务痛点。它通过将多模式边缘数据库与云端的 GreptimeDB 企业版相结合,大幅降低了流量、计算和存储成本,同时提升了数据及时性和商业洞察力。
GreptimeCloud 是一款全托管的云上数据库即服务(DBaaS)解决方案,基于开源时序数据库 GreptimeDB 打造,能够高效支持可观测、物联网、金融等领域的应用。
GreptimeDB 作为开源项目,欢迎对时序数据库、Rust 语言等内容感兴趣的同学们参与贡献和讨论。第一次参与项目的同学推荐先从带有 good first issue 标签的 issue 入手,期待在开源社群里遇见你!微信搜索:greptime,添加小助手备注“技术交流群”立即加入讨论吧~
GitHub: https://github.com/GreptimeTeam/greptimedb
Twitter: https://twitter.com/Greptime
版权声明: 本文为 InfoQ 作者【Greptime 格睿科技】的原创文章。
原文链接:【http://xie.infoq.cn/article/bb9865f246ddb68f4ed966b16】。文章转载请联系作者。
评论