解密可观测行业中的语义规范 — 代码世界中的“语言艺术”
可观测行业中的语义规范
语义规范可以说在我们生活中无处不在,它为某种语言或文化中的单词和短语提供了一致的意义,以促进更清晰的交流。
而在计算机世界中,语义规范也同样甚至更加关键,因为屏幕上的文本缺乏更丰富的对话环境——没有语调或肢体语言可以解读,这使得误解更容易发生,也让接手他人代码变得具有挑战性。
在可观测领域,语义规范同样重要,它可以确保一致性和清晰度。
定义和示例
在可观测领域,语义规范指的是遥测数据及其属性的命名标准。它们定义了用户在监控常见软件或库时应该如何命名其可观测数据。
例如,在典型的使用数据库驱动的应用中,语义规范定义了标准名称和值的枚举,如:
-
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 已经衍生出多款适合不同用户的解决方案,更多信息或 demo 展示请联系下方小助手(微信号:greptime)。
欢迎对开源感兴趣的朋友们参与贡献和讨论,从带有 good first issue 标签的 issue 开始你的开源之旅吧~期待在开源社群里遇见你!添加小助手微信即可加入“技术交流群”与志同道合的朋友们面对面交流哦~
Star us on GitHub Now: https://github.com/GreptimeTeam/greptimedb
官网:https://greptime.cn/
文档:https://docs.greptime.cn/
Twitter: https://twitter.com/Greptime
Slack: https://greptime.com/slack
LinkedIn: https://www.linkedin.com/company/greptime/
相关文章:
解密可观测行业中的语义规范 — 代码世界中的“语言艺术”
可观测行业中的语义规范 语义规范可以说在我们生活中无处不在,它为某种语言或文化中的单词和短语提供了一致的意义,以促进更清晰的交流。 而在计算机世界中,语义规范也同样甚至更加关键,因为屏幕上的文本缺乏更丰富的对话环境—…...
esp32 ap httpsever 控制led
功能:浏览器/open 开 led /close 关led 如不关,则亮灯10秒自动关闭 已买220v 转5V电源,5V固态继电器,开始组装无线开关。 代替家里华为的hlink灯泡,此灯必须要连入网络才能控制开和关,经常时灵时不…...
告别复杂判断!Python中实现函数重载的终极技巧
引言 说到函数重载,学过 Java 的同学应该不陌生,最常用的地方应该就是打印 log 了,对于不同的参数,调用的是不同的重载函数。那么 Python 如何实现函数重载呢? 重载概念 函数重载是指在同一作用域内,允许…...
Clang-Format:让你的代码整齐划一,格式不再烦恼
在现代软件开发中,代码规范和一致性对团队协作和代码质量至关重要。如何保持代码风格一致,避免手动格式化的繁琐操作?clang-format 是一款强大而灵活的代码格式化工具,它为开发者提供了高效的解决方案。本文将详细介绍 clang-form…...
【jvm】Full GC
目录 1. 说明2. 触发条件3. 优化4. 注意事项 1. 说明 1.Full GC(Full Garbage Collection)是Java垃圾回收过程中最重要且最昂贵的一种操作。2.Full GC涉及对整个堆内存(包括年轻代和老年代)的垃圾回收。3.当Full GC发生时&#x…...
【Python】实战:请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息
# 定义汽车基类 class Car:def __init__(self, model, license_plate):self.model model # 车型self.license_plate license_plate # 车牌def start(self):print(f"{self.model} ({self.license_plate}) 启动了。")def stop(self):print(f"{self.model} ({s…...
互联网摸鱼日报(2024-11-07)
互联网摸鱼日报(2024-11-07) 36氪新闻 阿华田再现颓势 中国旅游景区上市公司,三季度财报好看吗? 电动化浪潮下,消费者彻底放弃百年品牌BBA? 估值114亿,海尔系独角兽终止IPO 又一知名品牌门店全关,高端…...
requests库
GET请求 基本实例import requestsresponse requests.get(https://www.httpbin.org/get) print(response.text)params参数import requests data {"name":"Bileton","age":"21" } response requests.get(https://www.httpbin.org/ge…...
大数据之多级缓存方案
多级缓存介绍?多级缓存优缺点,应用场景?多级缓存架构? 多级缓存介绍 多级缓存方案是一种优化手段,通过在多个级别上存储数据来提高应用程序的性能和响应速度。以下是对多级缓存方案的详细解析: 一、多级缓…...
QCon演讲实录|徐广治:边缘云原生操作系统的设计与思考
10月18日,在 QCon 全球软件开发大会 2024(上海站),火山引擎边缘云资深架构师徐广治围绕火山引擎边缘计算产品背后的算力底座 - 边缘云原生操作系统,探讨如何实现算力服务的混合部署和跨区域弹性调度,以及在…...
web第二次作业
代码如下 <!DOCTYPE html> <html> <head> <!-- 设置页面的字符编码为utf-8,确保能正确显示各种字符 --> <meta charset"utf-8"> <title></title> <style> /* 全局样式设置 */ *{ …...
大模型技术讲解:大模型参数微调(大模型微调)
转自 秋色稻田公众号 这篇文章讲讲大模型的参数微调,参数微调(Fine-tuning)是一种机器学习技术,用于调整大型预训练模型的参数,以大模型适应特定应用场景。这种方法通常用于自然语言处理(NLP)…...
测试自动化如何和业务流程结合?
测试自动化框架固然重要,但是最终自动化的目的都是为了业务服务的。 那测试自动化如何对业务流程产生积极影响? 业务流程的重要性 测试自动化项目并非孤立存在,其生命周期与被测试的应用程序紧密相关。项目的价值在于被整个开发团队所使用&a…...
Python进阶之IO操作
文章目录 一、文件的读取二、文件内容的写入三、之操作文件夹四、StringIO与BytesIO 一、文件的读取 在python里面,可以使用open函数来打开文件,具体语法如下: open(filename, mode)filename:文件名,一般包括该文件所…...
ubuntu如何卸载colmap
如果你是通过源码编译并安装的 COLMAP,可以按照以下步骤手动卸载: 1. **查找安装路径**: 检查 COLMAP 安装时的路径(通常是 /usr/local)。 2. **删除二进制文件**: 删除已安装的 COLMAP 可执行文…...
【comfyui教程】ComfyUI即将迎来全新界面:升级体验就在11月15日
前言 ComfyUI迎来全新界面:升级体验就在11月15日 想象一下,拥有一个更直观、更智能的用户界面,不再需要在繁杂的设置中摸索。这不再只是梦想!从2024年11月15日起,ComfyUI将正式启用新UI (Beta UI)作为默认界面&#…...
Leecode热题100-104.二叉树的最大深度
给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入:root [1,null,2] 输出…...
深度学习中的 Dropout:原理、公式与实现解析
8. dropout 深度学习中的 Dropout:原理、公式与实现解析 在神经网络训练中,模型往往倾向于“记住”训练数据的细节甚至噪声,导致模型在新数据上的表现不佳,即过拟合。为了解决这一问题,Dropout 应运而生。通过在训练…...
【大数据学习 | HBASE】habse的表结构
在使用的时候hbase就是一个普通的表,但是hbase是一个列式存储的表结构,与我们常用的mysql等关系型数据库的存储方式不同,mysql中的所有列的数据是按照行级别进行存储的,查询数据要整个一行查询出来,不想要的字段也需要…...
完成程序《大奖赛评分B》
学习目标: 使用代码完成程序《大奖赛评分B》 题目: 如今许多歌手大奖赛评分时,为了体现公平,在评委给出分数后统计平均得分时,都会去掉最高分和最低分。编写程序,读入评委打分(分数都是大于0的…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...
【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
FTXUI::Dom 模块
DOM 模块定义了分层的 FTXUI::Element 树,可用于构建复杂的终端界面,支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...
