监控观测数据标签体系的应用实践

前言

在复杂的应用系统环境下,监控数据量呈现出海量且繁杂的特点,如何高效地对这些监控数据进行管理、分析以及从中挖掘出有价值的信息,成为保障系统稳定运行和优化性能的关键所在。数据标签体系的建立就变得十分重要,它能够为监控数据赋予清晰的 “身份标识”,如同给数据穿上了带有详细说明的 “外衣”,让用户可以更便捷、精准地理解和运用这些数据,进而提升应用系统监控工作的整体效能。接下来,将探讨关于监控数据标签体系相关的内容。

标签的意义

标签是标识一个数据点采集对象的属性集合,是对监控数据的一种具有特定含义的标识,从不同维度对数据进行描述,将原本看似无序的监控数据进行有序分类和细化。数据标签化是做分类监控分析,数据间关联分析的基础。在监控数据分类分析中,利用数据标签可依其属性精准划分海量数据,基于分类分析关键信息、了解分布及变化趋势。数据间的关联分析依赖数据标签化,借助相同标签使不同数据产生关联,唯有如此用户才能高效挖掘数据价值,让其在应用系统监控及相关决策等方面发挥强大作用。

观测云的核心能力之一是把采集到的不同类型的监测数据,包括 metrics、rum、trace 和 logs 等,存放在统一平台上。同时,还提供了极为灵活和强大的数据标签化功能,把平台上各类监控数据实现分类和关联性。这种标签化能力带来的好处和效果包括:

  • 提升数据可理解性

监控数据往往涉及众多技术指标和复杂的业务信息,单纯的数据值很难让人迅速把握其含义和背后反映的系统状态。而标签可以直观地表明数据所对应的业务环节、系统资源类型或者数据性质等关键信息,使得不同角色的人员(运维人员、开发人员、业务人员等)都能轻松理解数据内容。

  • 便于精准分析与查询

在海量的监控数据中,若要查找特定业务流程或者特定系统性能方面的数据,如果没有标签,就如同大海捞针。有了标签,用户可以通过标签条件进行快速筛选和精准定位,极大地提高数据分析的效率和准确性。

  • 助力故障排查与性能优化

当系统出现故障或者性能问题时,借助标签能够迅速聚焦到相关的数据范围。以订单处理为例,从前端发起请求到后端数据处理以及与外部接口交互等整个链路中各环节的数据关联情况,从中发现到底是哪个子步骤耗时过长、第三方接口故障还是数据库操作异常等导致了订单处理出现问题,从而精准定位故障根源等。以此制定优化策略,助力故障解决及性能提升,实现相应目标。

标签的设计和配置

1. 设计思路

在着手进行监控数据的标签设计时,首要任务便是明确数据标签化的需求与目标。例如:核心需求聚焦在两个关键方面:其一,借助数据标签化实现对数据的分类统计,让繁杂的数据能够依据相应标签有序归类;其二,利用标签化在不同的数据对象之间构建起关联关系,使数据间的内在联系得以清晰呈现。

如上图所示,从纵向维度来看,依据业务系统组织架构来确定分类维度是一种行之有效的方法。具体而言,采用从大类范围逐步细化至小类范围的分层划分方式,如此一来,后续在面对海量监控数据时,便能依据不同的范围层次,迅速地开展分类分析工作,并且在筛选查询特定数据时也能更加高效便捷。而从横向维度考量,针对不同数据对象之间存在的关联需求,需要为它们打上相同的标签,以此建立起数据关联。例如,若期望链路调用数据和日志数据之间能够实现关联分析,那就应当在这两种不同的数据对象上统一打上对应的 trace_id 标签。

秉持这样的思路,在整个标签设计的过程中,紧密结合实际的系统环境,并充分考量关联分析的具体需求,从中不断提炼、抽象出具有共性的标签,进而构建起一套完善的数据标签体系,为后续的数据分析、故障排查以及系统性能优化等工作筑牢坚实基础。

2. 常见配置方式

2.1 全局标签配置

DataKit 是一款功能强大的数据采集 agent。在 DataKit 上设置全局标签后,所有通过 DataKit 进行采集和上报的数据默认都将自动设置上数据标签。如果被采集上来的数据中,本来就带有同名的 Tag,那么 DataKit 不会再追加这里配置的全局 Tag。

这里分两类全局标签,说明如下。

2.1.1 主机类全局标签

通过 DataKit 采集上报的数据都会打上该选项下配置的标签信息。该配置选项在 &DATAKIT_HOME/conf.d/datakit.conf 文件中通过 [global_host_tags] 配置项实现。

2.1.2 选举类全局标签

对于集群多节点环境,为了避免不同节点上的 DataKit 对一些公共指标重复采集,需要用到 DataKit 的选举机制。对于该场景下,需要设置选举类全局标签。该配置选项在 &DATAKIT_HOME/conf.d/datakit.conf 文件中的如下配置项实现。

[election][election.tags]
2.2 采集器标签配置

DataKit 中每个不同数据对象的采集都有自己对应的采集配置文件,位于 &DATAKIT_HOME/conf.d 的下层子目录中。不同的数据对象可以通过对应采集配置文件中的如下配置项打上特定的数据标签。

[inputs.xxx.tags]# some_tag = "some_value"# more_tag = "some_other_value"
2.3 RUM自定义标签配置

如果需要对 RUM 相关的监控数据配置自定义标签,RUM SDK 提供如下的方法进行自定义的标签设置。

DATAFLUX_RUM.setGlobalContextProperty('<CONTEXT_KEY>', '<CONTEXT_VALUE>');

关于 RUM 的自定义标签的详细说明,请参考如下链接:
自定义添加额外的数据 TAG - 观测云文档

2.4 链路自定义标签配置

除了在数据采集器 DataKit 上给链路数据打标签外,同时也可以在链路数据的生成端上设置对应的自定义标签。以使用 ddtrace 为例,在应用启动前,设置如下的环境变量来设置自定义标签。

DD_TAGS="key1:value1,key2:value2"
2.5 Pipeline动态标签配置

Pipeline 支持对多种数据类型进行处理。通过编写 Pipeline 脚本,可以自定义切割出符合要求的结构化数据,并把切割出来的字段使用 set_tag() 方法作为自定义标签使用,从而用户可以快速地进行筛选统计、关联分析,帮助用户快速去定位和解决问题。

关于 Pipeline 的详细介绍,请参考如下链接中的内容:
Pipelines - 观测云文档

应用场景案例

下面对使用数据标签实现全链路和数据关联进行高效分析进行说明:

在服务调用监控与分析的过程中,需要实现全链路的打通。当问题出现时,能够清晰知道问题是发生在哪个环节。同时,需要借助在不同数据类型上设置适合的标签,在分析问题时,能让该链路点相关的其他监控数据关联起来,进而开展关联分析工作。

1. 标签配置设计

如上图所示,在该案例中考虑三个方面的标签配置:

  • 全链路串联:使用 trace_id 标签。这个标签用于在全链路中串联不同数据源的数据,可以追踪从用户前端应用访问(RUM)到后端服务链路调用(APM)的全链路数据。同时,可以通过 trace_id 快速关联服务调用链路和对应产生的日志做关联分析,便于排查系统性能问题和故障。
  • 服务关联:使用 service 标签。这个标签用于关联不同服务的数据。例如:链路中 mysql 调用的服务名标签 service 为“mysql”。同时,对采集 MySQL 的运行指标设置服务名标签 service 也为“mysql”。那么,在查看 mysql 调用链路的时候,就可以快速关联查看 MySQL 数据库在链路执行时间点上的运行状态。
  • 主机关联:使用 host 标签。这个标签用于将同一主机上的数据进行关联,便于分析主机相关的性能和问题。

2. 效果

通过上述标签配置,用户不仅能够借助 trace_id 查看完整的链路调用情况,还可以依据链路上的 service 或 host 标签,关联到具有相同 host 标签值的主机运行指标,或者具有相同 service 标签值的 MySQL 指标等相关数据。这种标签设置有助于提升监控数据的管理和分析效率,帮助运维人员和开发人员更好地理解和优化系统。

总结

监控数据标签化体系通过给数据打上具有特定含义的标签,从多维度分类描述数据,提升数据管理与理解效率;同时助力关联分析、精准查询等,为系统监控、故障排查及决策制定等工作提供有力支撑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue中el-tree结合vuedraggable实现跨组件元素拖拽

实现效果&#xff1a; 左侧el-tree: <template><el-treeclass"filter-tree":data"treeData":props"defaultProps":filter-node-method"filterNode"node-key"id"draggable:allow-drop"allowDrop"node-dr…

PHP民宿酒店预订系统小程序源码

&#x1f3e1;民宿酒店预订系统 基于ThinkPHPuniappuView框架精心构建的多门店民宿酒店预订管理系统&#xff0c;能够迅速为您搭建起专属的、功能全面且操作便捷的民宿酒店预订小程序。 该系统不仅涵盖了预订、退房、WIFI连接、用户反馈、周边信息展示等核心功能&#xff0c;更…

点击底部的 tabBar 属于 wx.switchTab 跳转方式,目标页面的 onLoad 不会触发(除非是第一次加载)

文章目录 1. tabBar 的跳转方式2. tabBar 跳转的特点3. 你的配置分析4. 生命周期触发情况5. 总结 很多人不明白什么是第一次加载&#xff0c;两种情况讨论&#xff0c;第一种情况假设我是开发者&#xff0c;第一次加载就是指点击微信开发者工具上边的编译按钮&#xff0c;每点击…

三维卷积( 3D CNN)

三维卷积&#xff08; 3D CNN&#xff09; 1.什么是三维卷积 1.1 三维卷积简介 二维卷积是在单通道的一帧图像上进行滑窗操作&#xff0c;输入是高度H宽度W的二维矩阵。 三维卷积输入多了深度C这个维度&#xff0c;输入是高度H宽度W深度C的三维矩阵。在卷积神经网络中&…

电脑硬盘系统迁移及问题处理

一、系统迁移准备 1、确认你的电脑主板是否支持安装两块硬盘,如电脑主板有多个M2硬盘接口,我们将新硬盘安装到主板上,原来的老硬盘安装在第二个接口上,主板只有一个M2接口的话可以使用移动硬盘盒。 2、新硬盘安装好后,我们进入原来的系统,在 此电脑–右键–管理–磁盘管…

游戏语音的历史是什么样的?

游戏中&#xff0c;离不开游戏社交。 无社交&#xff0c;不游戏&#xff0c;大家都深知社交在游戏体验中的重要性。 游戏语音的发展史是怎么样的&#xff1f;问了下AI&#xff0c;给我的回答是 早期阶段 1970年代&#xff1a;1970年代出现了第一个语音游戏“尤瓦尔的冒险”&am…

GDPU Android移动应用 重点习题集

目录 程序填空 ppt摘选 题目摘选 “就这两页ppt&#xff0c;你还背不了吗” “。。。” 打开ppt后 “Sorry咯&#xff0c;还真背不了&#x1f61c;” 更新日志 考后的更新日志 没想到重点勾了一堆&#xff0c;还愣是没考到其中的内容&#xff0c;翻了一下&#xff0c;原…

排序:插入、选择、交换、归并排序

排序 &#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性 &#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#xff0c;…

计算机网络 (34)可靠传输的工作原理

前言 计算机网络可靠传输的工作原理主要依赖于一系列协议和机制&#xff0c;以确保数据在传输过程中能够准确无误地到达目的地。 一、基本概念 可靠传输指的是数据链路层的发送端发送什么&#xff0c;在接收端就收到什么&#xff0c;即保证数据的完整性、正确性和顺序性。由于网…

C++:string

一、string概念 之前介绍过通过字符数组保存字符串&#xff0c;然后对字符数组中的字符串做各种操作&#xff1b;为了更加简单方便&#xff0c;在C中&#xff0c;又增加了 string 来处理字符串。 char str[20] "hello world"; string 字符串其实是一种更加高级的封…

SQL Server 数据库给第三方用户开权限,限制可见内容

单独数据库权限的设置&#xff1a; 方法&#xff1a; 给外方公司开用户&#xff0c;让其访问本地有限资源。 分两步&#xff0c;1新建服务器登录名&#xff0c;2设置数据库用户权限 1&#xff0c;首先用管理员sa登录数据库&#xff0c;在服务器级别下“安全性\登录名”&#…

Opus Clip AI技术浅析(二):上传与预处理

1. 视频上传 1.1 用户接口 用户通过网页或移动应用上传视频文件。文件上传通常使用HTTP协议&#xff0c;支持多种视频格式&#xff08;如MP4, AVI, MOV等&#xff09;。上传接口需要处理大文件上传、断点续传等问题。 1.2 文件传输 上传的视频文件通过安全的传输协议&#…

二叉树层序遍历 Leetcode102.二叉树的层序遍历

二叉树的层序遍历相当于图论的广度优先搜索&#xff0c;用队列来实现 &#xff08;二叉树的递归遍历相当于图论的深度优先搜索&#xff09; 102.二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右…

Linux第一课:c语言 学习记录day06

四、数组 冒泡排序 两两比较&#xff0c;第 j 个和 j1 个比较 int a[5] {5, 4, 3, 2, 1}; 第一轮&#xff1a;i 0 n&#xff1a;n个数&#xff0c;比较 n-1-i 次 4 5 3 2 1 // 第一次比较 j 0 4 3 5 2 1 // 第二次比较 j 1 4 3 2 5 1 // 第三次比较 j 2 4 3 2 1 5 // …

保护性暂停原理

什么是保护性暂停&#xff1f; 保护性暂停&#xff08;Guarded Suspension&#xff09;是一种常见的线程同步设计模式&#xff0c;常用于解决 生产者-消费者问题 或其他需要等待条件满足后再继续执行的场景。通过这种模式&#xff0c;一个线程在执行过程中会检查某个条件是否满…

嵌入式C语言:二维数组

目录 一、二维数组的定义 二、内存布局 2.1. 内存布局特点 2.2. 内存布局示例 2.2.1. 数组元素地址 2.2.2. 内存布局图&#xff08;简化表示&#xff09; 2.3. 初始化对内存布局的影响 三、访问二维数组元素 3.1. 常规下标访问方式 3.2. 通过指针访问 3.2.1. 指向数…

【ArcGIS微课1000例】0137:色彩映射表转为RGB全彩模式

本文讲述ArcGIS中,将tif格式的影像数据从色彩映射表转为RGB全彩模式。 参考阅读:【GlobalMapper精品教程】093:将tif影像色彩映射表(调色板)转为RGB全彩模式 文章目录 一、色彩映射表预览二、色彩映射表转为RGB全彩模式一、色彩映射表预览 加载配套数据包中的0137.rar中的…

Java 将RTF文档转换为Word、PDF、HTML、图片

RTF文档因其跨平台兼容性而广泛使用&#xff0c;但有时在不同的应用场景可能需要特定的文档格式。例如&#xff0c;Word文档适合编辑和协作&#xff0c;PDF文档适合打印和分发&#xff0c;HTML文档适合在线展示&#xff0c;图片格式则适合社交媒体分享。因此我们可能会需要将RT…

基于 GEE 下载逐年 MODIS 地表温度 LST 数据

目录 1 地表温度&#xff08;LST&#xff09; 2 数据准备 3 代码实现 3.1 加载研究区与数据集 3.2 数据预处理与标准化 3.3 逐年批量导出 3.4 可视化结果 4 运行结果 5 完整代码 1 地表温度&#xff08;LST&#xff09; 在遥感领域&#xff0c;地表温度&#xff08;L…

Vue2:el-table中的文字根据内容改变颜色

想要实现的效果如图,【级别】和【P】列的颜色根据文字内容变化 1、正常创建表格 <template><el-table:data="tableData"style="width: 100%"><el-table-column prop="id" label="ID"/> <el-table-column …