使用 OpenTelemetry 进行跟踪和额外指标
在开发和性能运行期间使用 OpenTelemetry 收集跟踪和额外指标。
关于 OpenTelemetry
OpenTelemetry 提供高质量、无处不在且可移植的遥测数据,以实现有效的可观测性。
该项目使用它来收集来自 Keycloak 的跟踪数据。
-
跟踪数据可以洞察 Keycloak 并将请求分解为内部调用和数据库调用的树。
这使用 Keycloak 26 及更高版本中提供的内置 OpenTelemetry 功能。
访问 OpenTelemetry 网站 获取有关该工具的更多信息,以及有关如何访问和使用此信息的以下部分。
设置 OpenTelemetry
OpenTelemetry 默认情况下处于禁用状态。需要通过自定义设置 KC_OTEL
来启用它。
根据设置 KC_OTEL_SAMPLING_PERCENTAGE
,出于性能原因,可能只记录一定比例的跟踪数据。
与其他设置相反,这没有使用 OpenTelemetry 收集器,而是将跟踪数据直接发送到 Jaeger。 |
访问 OpenTelemetry 跟踪数据
Grafana 和 Jaeger 可用于访问跟踪数据,两者默认情况下都已部署。
假设命令 minikube ip
返回 192.168.39.39
,则 Grafana 可在 http://grafana.192.168.39.39.nip.io 上访问,Jaeger 可在 http://jaeger.192.168.39.39.nip.io 上访问。
使用浏览器通过 Jaeger 数据源在 Grafana 中搜索跟踪数据,或直接使用 Jaeger UI。
在 Grafana 中搜索跟踪数据时,至少选择 keycloak
服务以查看跟踪数据。可以使用跟踪的运算符和标签进一步限制结果。
Jaeger UI 类似。与 Grafana UI 一样,在搜索之前选择 Keycloak 服务。
要了解更多有关该工具的信息,请访问 Jaeger 主页。
在 Jaeger UI 中运行搜索后,搜索时间戳将被固定并编码到 URL 中。因此,重新运行搜索或设置不同的过滤选项将不会找到在运行第一次搜索后创建的跟踪数据。若要从最新的时间戳开始搜索,请单击菜单工具栏中的 **搜索**。 |