4.2. 配置和部署分布式追踪平台(Tempo)
Tempo Operator 使用自定义资源定义(CRD)文件来定义创建和部署分布式追踪平台(Tempo)资源时要使用的架构和配置设置。您可以安装默认配置或修改该文件。
4.2.1. 自定义部署
有关配置后端存储的详情,请参考 了解持久性存储 以及您选择的存储选项的适当配置主题。
4.2.1.1. 分布式追踪默认配置选项
Tempo 自定义资源(CR)定义创建分布式追踪平台(Tempo)资源时要使用的架构和设置。您可以修改这些参数以根据您的业务需求自定义分布式追踪平台(Tempo)实现。
通用 Tempo YAML 文件示例
apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: name spec: storage: {} resources: {} storageSize: 200M replicationFactor: 1 retention: {} template: distributor:{} ingester: {} compactor: {} querier: {} queryFrontend: {} gateway: {}
表 4.3. Tempo 参数
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
| 创建对象时要使用的 API 版本。 |
|
|
| 定义要创建的 Kubernetes 对象的种类。 |
| |
|
唯一标识对象的数据,包括 |
OpenShift Container Platform 会自动生成 | |
| 对象的名称。 | TempoStack 实例的名称。 |
|
| 要创建的对象的规格。 |
包含 TempoStack 实例的所有配置参数。当需要所有 Tempo 组件的通用定义时,会在 | N/A |
| 分配给 TempoStack 的资源。 | ||
| ingester PVC 的存储大小。 | ||
| 复制因素的配置。 | ||
| 保留 trace 的配置选项。 | ||
|
定义存储的配置选项。所有与存储相关的选项都必须放在 | ||
|
Tempo | ||
|
Tempo | ||
|
Tempo | ||
|
Tempo | ||
|
Tempo | ||
|
Tempo |
最低要求配置
以下是使用默认设置创建分布式追踪平台(Tempo)部署所需的最小值:
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: simplest
spec:
storage: 1
secret:
name: minio
type: s3
resources:
total:
limits:
memory: 2Gi
cpu: 2000m
template:
queryFrontend:
jaegerQuery:
enabled: true
ingress:
type: route
- 1
- 本节指定部署的对象存储后端,它需要一个含有凭据的 secret 才能访问对象存储。
4.2.1.2. 分布式追踪平台(Tempo)存储配置
您可以在 spec.storage
下的 TempoStack
自定义资源中为分布式追踪平台(Tempo)配置对象存储。您可以从支持的多个存储供应商中选择。
表 4.4. Tempo Operator 用来定义分布式追踪存储的一般存储参数
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
spec: storage: secret type: | 要在部署中使用的存储类型。 |
|
|
storage: secretname: | 包含设置对象类型凭证的 secret 名称。 | N/A | |
storage: tls: caName: |
CA 是包含 CA 证书的 |
表 4.5. 所需的 secret 参数
存储供应商 |
---|
Secret 参数 |
|
MinIO |
请参阅 MinIO Operator。
|
Amazon S3 |
|
Microsoft Azure Blob Storage |
|
Google Cloud Storage on Google Cloud Platform (GCP) |
|
4.2.1.3. 查询配置选项
Query 是一个从存储中检索 trace 并托管用户界面来显示它们的服务。
表 4.6. Tempo Operator 用来定义 Query 的参数
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
spec: query: replicas: | 指定要创建的 Query 副本数。 | 正整数 |
表 4.7. 传递给 Query 的配置参数
参数 | 描述 | 值 | 默认值 |
---|---|---|---|
spec: query: options: {} | 定义 Query 服务的配置选项。 | ||
options: log-level: | Query 的日志记录级别。 |
| |
options: query: base-path: |
您可以将所有 tempo-query HTTP 路由的基本路径设置为非 root 值:例如, |
|
示例 Query 配置
apiVersion: tempotracing.io/v1 kind: "Tempo" metadata: name: "my-tempo" spec: strategy: allInOne allInOne: options: log-level: debug query: base-path: /tempo
4.2.2. 为分布式追踪平台设置监控(Tempo)
Tempo Operator 支持每个 TempoStack 组件的监控和警报,如经销商、ingester 等,并公开有关 Operator 本身的升级和操作指标。
4.2.2.1. 配置 TempoStack 指标和警报
您可以启用 TempoStack 实例的指标和警报。
先决条件
- 在集群中启用对用户定义的项目的监控。请参阅为用户定义的项目启用监控。
流程
要启用 TempoStack 实例的指标,请将
spec.observability.metrics.createServiceMonitors
字段设置为true
:apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: <name> spec: observability: metrics: createServiceMonitors: true
要为 TempoStack 实例启用警报,请将
spec.observability.metrics.createPrometheusRules
字段设置为true
:apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: <name> spec: observability: metrics: createPrometheusRules: true
验证
您可以使用 Web 控制台的 Administrator 视图来验证配置是否成功:
-
进入 Observe → Targets,过滤 Source: User, 检查 ServiceMonitors(格式为
tempo-<instance_name>-<component>
)的状态为 Up。 - 要验证警报是否已正确设置,请转至 Observe → Alerting → Alerting rules,过滤 Source: User,并检查 TempoStack 实例组件的 Alert 规则 是否可用。
4.2.2.2. 配置 Tempo Operator 指标和警报
从 web 控制台安装 Tempo Operator 时,您可以选择 Enable Operator recommended cluster monitoring on this Namespace 复选框,它允许创建 Tempo Operator 的指标和警报。
如果在安装过程中没有选择复选框,您可以在安装 Tempo Operator 后手动启用指标和警报。
流程
-
在安装了 Tempo Operator 的项目中添加
openshift.io/cluster-monitoring: "true"
标签,默认为openshift-tempo-operator
。
验证
您可以使用 Web 控制台的 Administrator 视图来验证配置是否成功:
-
进入 Observe → Targets,过滤 Source: Platform,并搜索
tempo-operator
,它必须具有 Up 状态。 - 要验证警报是否已正确设置,请转至 Observe → Alerting → Alerting rules,过滤 Source: Platform,再找到 Tempo Operator 的 Alert 规则。