第 8 章 使用 exemplars 分析外部和错误


使用 exemplars 将指标连接到记录的 trace,以分析错误的根本原因或延迟。

指标通过多个事件进行聚合,并显示您的系统是否在定义的绑定内操作。它们非常适合监控错误率或尾部延迟,并设置警报或驱动性能优化。仍然,聚合会导致指标报告的延迟或错误很难找到 root。

通过启用追踪来查找错误和延迟的根原因。要将指标连接到记录的 trace,有 exemplars 概念。

设置 EXemplars 后,红帽构建的 Keycloak 报告带有最后记录的 trace 作为一个 exemplar。Grafana 等仪表板工具可以将指标仪表板中的 exemplar 链接到 trace 视图。

支持 exemplars 的指标有:

  • http_server_requests_seconds_count (包括直方图)
    请参阅章节 HTTP 指标 以了解此指标的详情。
  • keycloak_credentials_password_hashing_validations_total
    请参阅" 自助提供的指标 来获得这个指标的详细信息。
  • keycloak_user_events_total
    请参阅" 自助提供指标 "章节以了解此指标的详细信息。

如需了解在将鼠标悬停在 pink 指示符之一时显示延迟的热图视觉化截图,请参见下方。

图 8.1. 使用 exemplar 的 heatmap 图表

8.1. 设置 exemplars

要从 exemplars 中受益,请执行以下步骤:

  1. 启用红帽构建的 Keycloak 指标,如 Gaining insights with metrics 所述。
  2. 为红帽构建的 Keycloak 启用追踪,如 Root 导致使用追踪进行分析 中所述。
  3. 在监控系统中启用 exemplar 存储。

    对于 Prometheus ,这是您需要启用 的技术预览功能

  4. 使用 OpenMetricsText1.0.0 协议提取指标,该协议在 Prometheus 中不默认启用。

    如果您在 Kubernetes 环境中使用 PodMonitor 或类似的 PodMonitor,可以通过将其添加到自定义资源的 spec 来实现:

    apiVersion: monitoring.coreos.com/v1
    kind: PodMonitor
    metadata:
      ...
    spec:
      scrapeProtocols:
        - OpenMetricsText1.0.0
    Copy to Clipboard Toggle word wrap
  5. 配置指标数据源,在其中链接到 trace。

    使用 Grafana 和 Prometheus 时,这会为 Prometheus 数据源设置 exemplarTraceIdDestinations,然后指向由 Jaeger 或 Tempo 等工具提供的追踪数据源。

  6. 在仪表板中启用 exemplars。

    在您要显示 exemplars 的每个仪表板上,在每个查询中启用 Exemplars 切换。正确设置后,您会注意到仪表板中可以点击以查看 trace 的点或星形。

注意
  • 如果没有指定提取协议,Prometheus 默认不会在内容协商中发送它,Keycloak 将回退到 PrometheusText 协议,该协议不包含 exemplars。
  • 如果启用了追踪和指标,但请求抽样没有记录追踪,则公开的指标将不包含任何 exemplars。
  • 如果您使用浏览器访问指标端点,内容协商将导致返回 PrometheusText 格式,您将无法看到任何 exemplars。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat