跳转至

数据联动分析之链接

前言

在当下,想要保障业务系统的稳定越来越依赖于数据,在收集这些数据观测整个系统时,首先第一点需要有统一的入口去查询数据信息,并且可以基于这些数据提取重点关注的有用信息搭建可视化仪表板和监控器,用来观测和告警。如果这些功能模块相互独立,单独使用时不会出现问题,但想要进行问题排查时就会很不方便,需要反复切换、搜索、查看。

针对以上问题,观测云提供【仪表板】【 查看器】【监控器】三大功能,帮助您高效的完成数据查询、监控与分析。此外,还提供链接功能,让你平滑跳转各个模块,实现数据联动分析、系统全面可观测。

开始

本文主要围绕【查看器】【仪表板】【监控器】三大功能介绍如何配置链接实现数据联动分析:

  • 【查看器】:查看器会记录所有采集上来的数据,在这你可以追踪溯源,基于标签过滤数据,查看数据详情;
  • 【仪表板】:由一个个可视化图表组成,用于直观展示关键性能指标;
  • 【监控器】:用于监控数据异常,满足监控触发条件则产生告警事件并发送通知。

准备工作

若您还没有注册tree-node-{"name":"datakit-daemonset.md","path":"/zh/best-practices/insight/datakit-daemonset.md","type":"file","repo":"guance集成","birthtime":1700705887402.8657,"mtime":1700705887402.8657,"level":5,"marked":false}账号或工作空间没有数据,可跟随以下步骤完成数据采集:

  1. 登录观测云控制台(还未有账号,点击注册);
  2. 安装 DataKit 采集器
  3. 前往控制台【集成】页面开启相应的数据采集器。

场景一:仪表板 & 查看器的关联分析

用户场景示例

在仪表板中添加图表统计 Web 应用的错误数,后续发现某段时间产生了多条错误,希望可以以最快速度找到这些错误进行排查。

1、在图表中配置链接

1)在仪表板中创建统计图表,先配置查询语句:

R::`error`:(COUNT(`error_source`) AS `错误数`) { `app_id` = '#{appid}' and `env` = '#{env}' and `version` = '#{version}' }

2)点击链接 > 添加链接,然后配置需要跳转的 URL 以及对应的参数。以上述 DQL 为例,发现错误后我们要跳转到查看器中过滤出错误数据,那就需要把 app_idenvversion 的值传送到查看器中进行筛选。

Warning

如果不知道如何输入目标页面的链接和参数格式,可以对目标页面对应的 URL 复制粘贴,再进行调整!

另外,复制的链接中若存在 URLEncode 编码,粘贴时会自动帮你进行解码,让 URL 可读性更高。

链接配置完成后,保存图表即可。

链接配置说明

平台内置了一些链接,支持用户快速添加,只需要点击地址输入框即可查看。这部分链接只保留了目标页面的基础 URL,无 time、query 等参数,你可以根据实际需求手动添加。

参数的添加方式

现支持两种方式配置链接的参数:

1)直接在输入框内的 URL 后面手写追加参数;

2)点击【添加参数】进行配置,配置的参数会自动追加到上面的 URL 中,上下参数始终会保持一致;

- 配置参数时,系统预设了一部分常用 key 可以直接选择,每个 key 都有对应的说明和示例。除了系统预设的参数外,支持手动输入任意 key/value 来配置链接。

使用模板变量传递参数值

链接中支持使用模板变量来传递数据信息,我们会自动将当前可用的模板变量显示出来,用户可以直接复制使用。

什么是模板变量?

<模板变量> 用于传递动态的参数值。例如:折线图查询中 by host ,当每点击一条线,其实就是选中了某一台 host,所以 host 的值不是固定的,链接中要动态地去传参。这时就需要使用模板变量,模板变量会根据当时选中的 host 去传递对应的值。

现支持 3 种模板变量,分别为【时间变量】【标签变量】和【视图变量】。

变量类型 变量 说明
时间变量 #{TR} 当前图表查询的时间范围。假设当前查询时间是 最近1小时 ,则:
模板变量:&time=#{TR} 等同为 &time=1h
标签变量 #{T} 当前图表查询的所有分组标签集合。假设当前图表查询为:
M::'datakit':(LAST('cpu_usage')) BY 'host','os'
查询结果为:host=abc、os=linux,则:
模板变量:&query=#{T}等同为 &query=host:abc os:linux
#{T.name} 当前图表查询中某一个标签的值,name 可替换为查询中的任意tagKey。
假设当前图表查询为:
M::'datakit':(LAST('cpu_usage')) BY 'host', 'os'
查询结果为:host=abc、os=linux,则:
-模板变量 #{T.host} = abc
- &query=hostname:#{T.host} 等同为 &query=hostname:abc
视图变量 #{V} 当前仪表板中所有视图变量的集合
假设当前仪表板的视图变量为:
version=V1.7.0 和 region=cn-hangzhou
模板变量&query=#{V}等同为 &query=version:V1.7.0 region:cn-hangzhou
#{V.name} 当前仪表板中某一个视图变量的值,name 可替换为任意变量名。
假设当前仪表板的视图变量 version=V1.7.0,则:
- 模板变量 #{V.version} = V1.7.0
- &query=version:{V.version} 等同为 &query=version:V1.7.0

链接的打开方式

配置的链接支持三种打开方式,分别是【新页面打开】【当前页面打开】【侧滑页面打开】。

2、关联数据分析

接下来以【Web 应用概览】仪表板为例,为大家演示如何通过图表链接进行数据关联查询。

如下图所示,视图变量中选择了某个 应用环境,发现共有 2 条错误数据,接下来我们找到这 2 条错误:

点击图表唤起下拉菜单 ,选择 链接 > 跳转到 Error 查看器。这时会打开对应的查看器页面,并将查询的时间范围和所有筛选条件带过去,找到这 2 条错误记录。这样我们就实现了一键关联查询,接下来可以查看这些错误的详情,寻找错误原因。

场景二,监控器 & 查看器的关联分析

用户场景示例

创建一个监控器用来监测服务是否发生 5xx 错误,只要发现错误立即产生告警通知,并以最快速度找到这些错误进行排查。

1、在监控器中配置链接

1)创建应用性能指标检测监控器,先配置好 检测指标 以及 触发条件

2)在事件内容中插入需要跳转的链接,此处输入的文本内容要使用 Markdown 语法。根据上述用户场景,统计当某个服务发生 5xx 错误时触发告警,所以我们插入的链接就是跳转到【链路查看器】并过滤出错误链路。

  • 首先需要把 servicehttp_status_code 这些参数配置到链接中,这样就可以将筛选带入到查看器。

  • 因为监控配置的检测区间是【最近 15 分钟】,所以跳到查看器中查询的时间范围也应该是一样的(即事件通知的时间作为结束时间,向前 15 分钟作为开始时间)

一切配置完成后,保存监控器即可。

链接配置说明

事件内容中可以插入任意链接,例如:查看器、仪表板、外部链接等等,根据使用场景进行配置即可。

例如:检测区间为【15分钟】,检测指标的查询为:

T::RE(`.*`):(COUNT_DISTINCT(`trace_id`)) {`http_status_code` >= '500'}  BY `service`

则添加的链接会自动带上如下两个参数:

1)过滤条件参数:&query=http_status_code:>=500 service:{{service}} (by 后面的分组会作为模板变量填入)

2)时间参数:以事件产生的时间为结束时间,向前 15 分钟为开始时间,示例:&time={{ date * 1000 - 900000}},{{date * 1000}}(此处运用了模板变量的运算)

模板变量说明

事件内容中支持使用模板变量来传递数据信息,系统会自动将当前可用的模板变量显示出来,只需要点击 {{ 按钮或直接手动输入 {{ 即可唤起变量列表。

什么是模板变量 ?

<模板变量> 用于传递动态的参数值,在配置监控器的事件标题和事件内容时,除了自己撰写的固定文案外,支持使用事件中的字段实现文案的渲染。监控中的模板变量分为两种:

1)固定的属性变量:例如,
{{df_status}}(事件的状态)、{{df_monitor_checker_name}}(监控器名称)、{{df_workspace_name}}(工作空间名称)、{{Result}}(产生本事件时,检测到的值)等等。

2)检测维度变量:例如,检测指标的查询中 by 'host','service' ,那么就可以使用模板变量 {{host}}、{{service}} 用来渲染检测对象。

更多说明请点击查看监控器模板变量

2、关联数据分析

接下来以【应用性能指标检测】的监控器为例,演示通过在监控器中配置链接实现数据关联查询。

承接上一步中的监控器配置,触发的告警事件中会显示配置的通知内容,其中包含【跳转链接】,点击即可查看对应的错误链路数据。接下来我们可以结合链路详情、关联的日志、网络情况等多维度分析错误发生原因。

文档评价

文档内容是否对您有帮助? ×