监控 Tempo 实例和 Operator
您可以将 Tempo Operator 配置为监控 TempoStack 实例(包括所有 Tempo 组件,如分发器)。此外,Operator 可以暴露关于其自身的指标(例如,成功和失败的升级次数等)。
监控 TempoStack 实例
Tempo Operator 支持对每个 Tempo 组件(分发器、接收器等)进行监控和警报。要启用指标和警报,必须在集群中安装和配置 Prometheus Operator 或其他能够发现 ServiceMonitor
和 PrometheusRule
对象的类似解决方案。
用于监控 TempoStack
实例的配置在 CR 中公开
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
spec:
observability:
metrics:
createServiceMonitors: true
createPrometheusRules: true
tracing:
sampling_fraction: 1.0
jaeger_agent_endpoint: localhost:6831
配置操作数分布式追踪
所有 Tempo 组件以及 Tempo Gateway 都支持以 thrift_compact
格式导出追踪。
部署 OpenTelemetry collector Sidecar
要部署 OpenTelemetry collector,请按照以下步骤操作
- 在集群中安装 OpenTelemetry Operator。
- 创建一个
OpenTelemetryCollector
CR,该 CR 以 Jaeger Thrift 格式接收追踪数据,并通过 OTLP 将数据导出到所需的追踪后端。 - 可选:部署追踪后端以存储追踪数据。
apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
name: sidecar-for-tempo
spec:
mode: sidecar
config: |
receivers:
jaeger:
protocols:
thrift_compact:
exporters:
otlp:
endpoint: <otlp-endpoint>:4317
tls:
insecure: true
service:
pipelines:
traces:
receivers: [jaeger]
exporters: [otlp]
将追踪数据发送到 OpenTelemetry Sidecar
最后,创建一个 TempoStack
实例,将 jaeger_agent_endpoint
设置为向 localhost
报告追踪数据。Tempo Operator 会为所有 TempoStack
Pod 设置 OpenTelemetry 注入注解 sidecar.opentelemetry.io/inject": "true
。OpenTelemetry Operator 将识别该注解,并将 Sidecar 注入所有 TempoStack
Pod。
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: simple-stack
spec:
template:
queryFrontend:
jaegerQuery:
enabled:
storage:
secret:
type: s3
name: minio-test
storageSize: 200M
observability:
tracing:
sampling_fraction: "1.0"
jaeger_agent_endpoint: localhost:6831
监控 Operator
Tempo Operator 可以暴露关于 Operator 本身升级和其他操作的指标,并可以基于这些指标创建警报。例如,Operator 处理 Tempo 升级,并暴露诸如“成功升级 Tempo 的次数”、“失败升级 Tempo 的次数”等指标。Operator 还会创建警报,以便在 Tempo 升级失败时通知系统管理员。
其他指标是 Operator 内部的,例如,协调循环迭代的持续时间。这个 Operator 特定组件不断尝试将 TempoStack 自定义资源中描述的预期状态与实际集群状态进行匹配。例如,如果在集群中删除了由 Operator 管理的对象,Operator 会再次重新创建该对象,以匹配集群的预期状态。
可以使用与 Operator 位于同一命名空间中的 ConfigMap tempo-operator-manager-config
配置 Operator。以下摘录显示了用于启用创建 ServiceMonitor
(用于抓取指标)和 PrometheusRule
(用于创建警报)对象的配置选项
apiVersion: v1
kind: ConfigMap
data:
controller_manager_config.yaml: |
featureGates:
observability:
metrics:
createServiceMonitors: true
createPrometheusRules: true