第 8 章 使用 exemplars 分析外部和错误
使用 exemplars 将指标连接到记录的 trace,以分析错误的根本原因或延迟。
指标通过多个事件进行聚合,并显示您的系统是否在定义的绑定内操作。它们非常适合监控错误率或尾部延迟,并设置警报或驱动性能优化。仍然,聚合会导致指标报告的延迟或错误很难找到 root。
通过启用追踪来查找错误和延迟的根原因。要将指标连接到记录的 trace,有 exemplars 概念。
设置 EXemplars 后,红帽构建的 Keycloak 报告带有最后记录的 trace 作为一个 exemplar。Grafana 等仪表板工具可以将指标仪表板中的 exemplar 链接到 trace 视图。
支持 exemplars 的指标有:
如需了解在将鼠标悬停在 pink 指示符之一时显示延迟的热图视觉化截图,请参见下方。
图 8.1. 使用 exemplar 的 heatmap 图表
8.1. 设置 exemplars 复制链接链接已复制到粘贴板!
要从 exemplars 中受益,请执行以下步骤:
- 启用红帽构建的 Keycloak 指标,如 Gaining insights with metrics 所述。
- 为红帽构建的 Keycloak 启用追踪,如 Root 导致使用追踪进行分析 中所述。
在监控系统中启用 exemplar 存储。
对于 Prometheus ,这是您需要启用 的技术预览功能。
使用
OpenMetricsText1.0.0
协议提取指标,该协议在 Prometheus 中不默认启用。如果您在 Kubernetes 环境中使用
PodMonitor
或类似的 PodMonitor,可以通过将其添加到自定义资源的 spec 来实现:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置指标数据源,在其中链接到 trace。
使用 Grafana 和 Prometheus 时,这会为 Prometheus 数据源设置
exemplarTraceIdDestinations
,然后指向由 Jaeger 或 Tempo 等工具提供的追踪数据源。在仪表板中启用 exemplars。
在您要显示 exemplars 的每个仪表板上,在每个查询中启用 Exemplars 切换。正确设置后,您会注意到仪表板中可以点击以查看 trace 的点或星形。
- 如果没有指定提取协议,Prometheus 默认不会在内容协商中发送它,Keycloak 将回退到 PrometheusText 协议,该协议不包含 exemplars。
- 如果启用了追踪和指标,但请求抽样没有记录追踪,则公开的指标将不包含任何 exemplars。
- 如果您使用浏览器访问指标端点,内容协商将导致返回 PrometheusText 格式,您将无法看到任何 exemplars。