05.5、数据转换 Transformations
数据转换(Transformations)
数据转换是 Grafana 的强大功能,可以在数据可视化之前对数据进行处理和转换。本节将学习:转换类型、合并查询、计算字段,以及数据聚合。
Transformations 转换类型
Grafana 支持哪些转换类型呢?
第一个类型:Add field from calculation。 计算新字段,支持数学运算,基于现有字段计算。例如计算两个字段的和、差、积、商。
第二个类型:Concatenate fields。 连接多个字段,合并字段值,创建组合字段。例如将服务名和实例名连接。
第三个类型:Convert field type。 转换字段类型,字符串转数字,时间戳转换。这样可以进行数学运算。
第四个类型:Filter data by values。 按值过滤数据,保留或排除特定值,条件过滤。这样可以只显示需要的数据。
第五个类型:Group by。 按字段分组,数据聚合,分类汇总。这样可以按类别统计。
第六个类型:Merge。 合并多个查询结果,合并不同数据源,统一数据格式。这样可以在一个图表中显示多个数据源的数据。
转换类型架构: 原始数据经过 Transformations 转换,可以添加字段、连接字段、转换类型、过滤数据、分组、合并。转换后得到新的数据。
这就是转换类型。选择合适的转换类型,可以让数据处理更灵活。
合并查询
合并查询有什么方法呢?
第一种方法:使用 Merge transformation。 合并多个查询,统一字段格式,保留所有数据。这是最简单的方法。
第二种方法:使用 Outer join。 外连接查询,保留所有数据点,填充缺失值。这样不会丢失数据。
第三种方法:使用 Inner join。 内连接查询,只保留匹配的数据点,数据对齐。这样只显示有数据的时间点。
合并查询适用于哪些场景呢?
场景 1:合并不同数据源。 Prometheus 指标、Loki 日志计数、Tempo 追踪数据。可以在一个图表中显示不同数据源的数据。
场景 2:合并同一查询的不同过滤条件。 不同环境的指标、不同服务的指标、不同实例的指标。可以在一个图表中对比不同的环境、服务、实例。
合并示例: 查询 A(Prometheus)和查询 B(Loki)可以通过 Merge 合并。合并后得到统一的结果。
这就是合并查询。使用 Transformations 可以轻松合并多个查询。
计算字段
计算字段是什么? 计算字段用于基于现有字段计算新字段。
计算字段支持哪些操作呢?
- 加法: A + B。例如计算两个指标的和。
- 减法: A - B。例如计算两个指标的差。
- 乘法: A * B。例如计算两个指标的积。
- 除法: A / B。例如计算比率。
- 取模: A % B。例如计算余数。
- 幂运算: A ^ B。例如计算幂。
计算示例:
第一个示例:计算错误率。 错误请求数 / 总请求数 * 100。这样可以计算出错误率。
第二个示例:计算平均值。 (值 A + 值 B + 值 C) / 3。这样可以计算平均值。
第三个示例:计算增长率。 (当前值 - 历史值) / 历史值 * 100。这样可以计算增长率。
计算字段使用: 原始字段 → 计算表达式 → 计算结果 → 新字段。这样就可以得到新的字段。
这就是计算字段。使用计算字段,可以创建更复杂的指标。
数据聚合
数据聚合是什么? 数据聚合用于按字段分组并汇总数据。
数据聚合支持哪些操作呢?
- Sum: 求和。例如计算多个实例的总请求数。
- Mean: 平均值。例如计算多个实例的平均 CPU 使用率。
- Min: 最小值。例如找出多个实例中的最小延迟。
- Max: 最大值。例如找出多个实例中的最大延迟。
- Count: 计数。例如统计有多少个实例。
数据聚合适用于哪些场景呢?
第一个场景:按服务聚合。 聚合多个实例的数据,计算服务总和,计算服务平均值。这样可以查看整个服务的指标。
第二个场景:按环境聚合。 聚合不同环境的数据,对比不同环境,环境级别汇总。这样可以对比不同环境的指标。
第三个场景:按时间聚合。 按小时、天聚合,时间维度汇总,趋势分析。这样可以查看长期趋势。
聚合流程: 原始数据 → 按字段分组 → 聚合操作 → 聚合结果。聚合操作可以是 Sum、Mean、Min、Max、Count。
这就是数据聚合。使用数据聚合,可以按不同的维度汇总数据。
本节小结
在本节中,我们学习了数据转换(Transformations):
第一个是转换类型。 Add field、Concatenate、Convert type、Filter、Group by、Merge。这些转换类型可以灵活处理数据。
第二个是合并查询。 使用 Merge transformation 合并多个查询。可以在一个图表中显示多个数据源的数据。
第三个是计算字段。 基于现有字段计算新字段。可以创建更复杂的指标。
第四个是数据聚合。 按字段分组并汇总数据。可以按不同的维度汇总数据。
Transformations 总结: Transformations 包括合并查询、计算字段、数据聚合、其他转换。这些功能组合在一起,可以让数据处理更灵活。
这就是数据转换(Transformations)。掌握这些转换功能,可以帮助我们处理更复杂的数据。
在下一节,我们将学习变量(Variables)和动态 Dashboard。学习如何创建动态 Dashboard,让 Dashboard 更灵活、更实用。