首页
/ Apache SkyWalking 新特性:STANDARD_VALUE 指标类型的设计与实现

Apache SkyWalking 新特性:STANDARD_VALUE 指标类型的设计与实现

2025-05-08 04:45:38作者:苗圣禹Peter

背景与需求分析

在现代分布式系统的可观测性领域,多维指标数据的处理能力至关重要。Apache SkyWalking 作为一款优秀的 APM 系统,其指标处理机制需要不断演进以满足更复杂的监控场景。当前版本在处理带标签的指标数据时存在明显局限性——仅支持单一标签键值对的存储和查询,这在实际生产环境中会遇到诸多挑战。

以 OpenTelemetry 指标集成场景为例,当我们需要同时记录错误码(error_code)和节点标识(instance)两个维度的指标时,现有架构只能将多个标签拼接成一个字符串存储。这种设计不仅破坏了数据的结构化特性,更导致后续无法进行灵活的维度聚合分析。

架构设计演进

现有方案的问题剖析

当前 LABELED_VALUE 类型指标的核心限制体现在:

  1. 单维度标签存储:每个数据点只能携带一个标签键值对
  2. 查询能力受限:无法按需进行多维度聚合计算
  3. 可视化局限:UI 层只能展示单一标签值

STANDARD_VALUE 新特性设计

新提出的 STANDARD_VALUE 指标类型采用更先进的数据模型:

  1. 多维标签支持:每个数据点可携带完整的键值对集合
  2. 存储层优化:基于 StorageDataComplexObject 实现结构化存储
  3. 查询接口隔离:仅通过 MQE(Metrics Query Engine)系统提供查询能力
// 伪代码示例:新数据结构示意
class StandardValue {
    String entity;       // 实体标识
    Map<String, String> labels; // 多维度标签
    double value;        // 指标值
}

关键技术实现

存储引擎改造

  1. 放弃现有 DataTable 实现,采用专门优化的二进制编码格式
  2. 支持动态标签字段的高效序列化/反序列化
  3. 保持与时间序列数据库的兼容性

查询处理优化

  1. MQE 语法扩展:支持基于标签维度的聚合函数
  2. 查询下推能力:将标签过滤条件推送到存储层执行
  3. 结果集处理:动态合并多维度标签展示

可视化适配方案

前端展示层需要智能处理多种场景:

  1. 单标签场景:保持现有显示格式(metric.labels[0].value)
  2. 多标签场景:自动拼接为"key1=value1 key2=value2"格式
  3. 支持标签维度选择器:允许用户交互式选择展示维度

应用场景展望

这一改进将显著提升以下场景的监控能力:

  1. OpenTelemetry 指标深度集成:完美支持原生多维度指标模型
  2. 错误分析场景:可同时按错误类型和服务节点进行聚合统计
  3. 资源监控:支持主机+进程+线程的多级维度监控

总结

STANDARD_VALUE 指标类型的引入标志着 SkyWalking 指标处理能力的重要升级。通过支持真正的多维度指标模型,系统现在可以更好地处理现代云原生环境下的复杂监控需求。这一改进不仅解决了当前 OpenTelemetry 集成中的痛点,更为未来的可观测性场景提供了更强大的基础能力。

对于使用者而言,需要注意新指标类型将完全依赖 MQE 查询系统,这意味着需要相应升级查询方式和可视化配置。这一改变虽然带来一定的迁移成本,但换来的将是更强大、更灵活的指标分析能力。

登录后查看全文

项目优选

收起
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
465
kernelkernel
deepin linux kernel
C
32
16
atomcodeatomcode
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get Started
Rust
2.09 K
218
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
700
1.4 K
docsdocs
暂无描述
Dockerfile
780
5.08 K
pytorchpytorch
Ascend Extension for PyTorch
Python
758
968
flutter_flutterflutter_flutter
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.04 K
271
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
880
2.03 K
mindquantummindquantum
MindQuantum is a general software library supporting the development of applications for quantum computation.
Python
183
111
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.11 K
682