拓冰建站拓冰建站
首页 / 资讯中心 / 正文

highlight.io 与 Grafana 集成:使用查询编辑器构建会话、错误、日志与链路追踪指标看板

可观测性后端【免费下载链接】highlighthighlight.io: The open source, full-stack monitoring platform. Error monitoring, session replay, logging, distributed tracing, and more.项目地址https://gitcode.com/gh_mirrors/hi/highlight点击查看免费下载本篇技术指南围绕 highlight.io 开源全栈可观测性平台提供的Grafana 数据源插件展开聚焦如何在其查询编辑器Query Editor中编写聚合查询把来自 sessions会话、errors错误、logs日志与 traces链路追踪四类资源的指标可视化到 Grafana 看板上。读完本文你将掌握数据源查询编辑器的全部字段语义Resource、Function、Filter、Group by、Limit、Bucket by能够复现高频 HTTP 请求最慢 HTTP 请求按版本统计错误频率三类典型看板查询并理解这些查询从 Grafana 前端到 GraphQL 后端再到 ClickHouse 的完整执行链路。前置条件安装并配置 highlight.io 数据源创建可视化之前请先完成数据源的安装与配置。你可以从 Grafana 插件目录安装 highlight.io 数据源插件并在 Grafana 中新增一个数据源填入以下字段详见 集成配置指南配置字段说明Highlight Backend URL用于查询 highlight.io 数据的后端地址云托管环境填写https://pri.highlight.ioOAuth Token URL用于获取 OAuth 访问令牌的地址云托管环境填写https://pri.highlight.io/oauth/tokenProject IDhighlight.io 项目 ID即项目 URL slug如https://app.highlight.io/{project_id}/演示项目填1344多项目可配置多个数据源Client ID/Client Secret云托管环境使用 OAuth 客户端凭据自托管环境需按 自托管 OAuth 配置 自行创建从插件源码看配置字段在 datasource.ts 中定义为projectID、clientID、backendURL、tokenURL其中clientSecret属于安全字段HighlightSecureJsonData不会通过 HTTP 发送到前端。填写完成后点击Save test会触发一次健康检查——后端插件通过 CheckHealth 调用 GraphQL 的traces_metrics查询验证数据源能否正常返回数据。在任意看板上添加可视化并选择数据源数据源配置完成后打开任意 Grafana 看板Add → Visualization新建一个可视化面板并在数据源下拉框中选中你之前创建的 highlight.io 数据源。查询编辑器字段详解选中 highlight.io 数据源后面板下方会出现查询编辑器。前端实现位于 QueryEditor.tsx可配置字段如下字段说明Resource被查询的 highlight.io 资源traces、logs、sessions或errorsFunction组内与桶内的聚合方法如count、avg、p50作用于数值指标时会从关联项目的数据中给出数值字段建议Filter高亮过滤表达式仅保留匹配的资源遵循 highlight.io 搜索语法Group by一个或多个用于分组结果的分组维度会给出关联项目数据中的分类字段建议Limit N选中group by后结果组限制为前 N 个Limit by function选中group by后用于在返回前 N 之前对分组进行排序的聚合方法Bucket by数据分桶维度支持按时间戳分桶或不分桶结合前端源码字段联动规则如下Resource 选项traces、logs、errors、sessions四选一定义于 datasource.ts 的tableOptions。Function 选项Count、CountDistinct、Min、Avg、P50、P90、P95、P99、Max、Sum、None定义于metricOptions且每种聚合对资源有不同支持范围如Min/Avg/分位数/Sum均支持 traces、logs、sessionsCountDistinct与Count则四类资源全支持。选择None时编辑器隐藏全部聚合配置。数值字段与分组字段的搜索建议编辑器通过datasource.getResource(${table}-keys, ...)异步加载字段且区分类型——数值字段type: Numeric用于 Function 的列选择字符串字段type: String用于 Group by 下拉建议。Bucket by默认Timestamp按时间分桶可选None不分桶。Buckets仅在按时间戳分桶时出现默认 50即返回的分桶数量默认查询配置见 getDefaultQuery。示例查询高频 HTTP 请求highlight.io 前端 SDK 捕获的所有网络活动都以 trace 形式存储且span_name字段被设置为请求 URL。要可视化前端在时间维度上发出的每种 HTTP 请求数量可以按如下方式配置ResourcetracesFunctionCountFilterspan_name(GET * OR POST *)Group byspan_nameLimit10Limit byCountlimit 10 by count子句表示在可视化的时间范围内按总数取前 10 个匹配结果。该查询实际会生成对 GraphQLmetrics接口的调用将metric_types设为Count、group_by设为span_name、limit与limit_aggregator分别设为10与Count对应后端 queryMetrics 的实现。示例查询最慢 HTTP 请求在上一示例基础上把聚合函数与排序子句改为分位数即可得到最慢请求ResourcetracesFunctionP95(duration)Filterspan_name(GET * OR POST *)Group byspan_nameLimit10Limit byP95(duration)该查询绘制duration单位为纳秒的 P95 值并在可视化的时间范围内只展示前 10 条最慢的 trace。从 datasource.ts 可见duration是插件内置的列选项而P95是metricOptions中针对 traces/logs/sessions 提供的分位聚合。需要注意的是时间序列结果中每个时间桶返回的是该桶内的 P95 值若需在整个时间范围内取单个 P95可参考告警场景关闭分桶。示例查询按版本统计错误频率如果你想监控错误数量随时间的变化判断新发布是否引入了新类型的错误可以这样配置ResourceerrorsFunctionCountGroup byservice_version该查询绘制错误计数并按service_version分组从而直观对比不同服务版本产生的错误量。这里的service_version属于 highlight.io 为应用自动捕获的服务版本属性errors资源对应的分组字段同样由前端通过errors-keys资源接口动态加载。查询执行链路从 Grafana 面板到 ClickHouse理解编辑器的每个字段如何变成真正的数据查询有助于排查问题。整条链路可以概括为前端组装查询QueryEditor.tsx 将上述字段打包为HighlightQuery结构定义于 types.tstable、metric、column、groupBy、queryText、bucketBy、bucketCount、limit、limitAggregator、limitColumn。后端分发Grafana 插件后端在 datasource.go 的query()中解析请求将table映射为ProductTypeTraces/Logs/Errors/Sessions并判断Metric是否为NoneMetric None时走queryLogLines调用 GraphQL 的log_lines接口返回带FrameTypeLogLines元数据的日志帧适用于日志浏览类可视化否则走queryMetrics调用 GraphQLmetrics接口把metric_types、group_by、bucket_by、bucket_count、limit、limit_aggregator、limit_column一并传入。分桶与字段映射queryMetrics依据BucketBy生成数据帧——Timestamp时按时间均匀生成time字段自定义分桶键时生成xMin/xMax字段适合直方图可视化None时返回单一聚合值。随后按metric_type与分组组合展开为P95.span_name形式的字段列。数据落地highlight.io 侧 GraphQL 后端将指标查询翻译为对 ClickHouse 的聚合 SQLhighlight.io 的指标后端即构建于 ClickHouse 之上最终以MetricsBuckets桶 ID、桶区间、分组、指标类型与数值的形式返回给插件。进阶变量与模板化查询插件支持 Grafana 模板变量。DataSource.applyTemplateVariables使用getTemplateSrv().replace对queryText做插值因此你可以在 Filter 中使用$var形式的 Grafana 变量多值变量的取值会用OR连接并包裹成括号见 datasource.ts 的variableFormatter。此外插件还提供了变量查询支持VariableQueryEditor与metricFindQuery你可以选择table与key插件会调用${table}-values资源接口返回该字段在最近一天内的取值列表从而让看板下拉变量动态跟随数据变化。继续深入想了解数据源的完整安装与 OAuth 配置请阅读 Setup 指南想在指标越界时收到通知请阅读 Grafana 告警集成其中强调告警场景下建议将Bucket by设为None以获取时间范围内的单一值而非时间序列插件完整源码位于 sdk/highlightinc-highlight-datasource含查询编辑器前端、Grafana 插件 SDK 后端、健康检查实现与测试用例 datasource_test.go并附带了 示例看板 JSON 可直接导入 Grafana 体验。赞分享可观测性后端【免费下载链接】highlighthighlight.io: The open source, full-stack monitoring platform. Error monitoring, session replay, logging, distributed tracing, and more.项目地址https://gitcode.com/gh_mirrors/hi/highlight点击查看免费下载相关推荐highlight.io 指标看板Metrics APM用单一面板查询会话、错误、日志与性能指标highlight.io 指标看板Metrics APM用单一面板查询会话、错误、日志与性能指标 导读 本文基于 highlight.io 开放 La可观测性后端highlight.io 搜索查询语法完全指南统一检索日志、追踪、会话与错误highlight.io 搜索查询语法完全指南统一检索日志、追踪、会话与错误 本指南以 highlight.io 开源全栈监控平台Error Monitor可观测性后端highlight.io SQL 编辑器完全指南用自定义 ClickHouse SELECT 查询聚合日志、会话与追踪数据highlight.io SQL 编辑器完全指南用自定义 ClickHouse SELECT 查询聚合日志、会话与追踪数据 SQL 编辑器是 highligh可观测性后端上一篇Paperless-ngx 实战指南10 分钟把扫描文档变成可搜索的数字档案下一篇免费Steam创意工坊下载工具教程不登录5步下完模组创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门