1.2. 红帽构建的 OpenTelemetry 3.0
红帽构建的 OpenTelemetry 3.0 基于 OpenTelemetry 0.89.0。
1.2.1. 新功能及功能增强
这个版本引进了以下改进:
- OpenShift distributed tracing data collection Operator 被重命名为 红帽构建的OpenTelemetry Operator。
- 支持 ARM 架构。
- 支持指标集合的 Prometheus 接收器。
- 支持 Kafka 接收器和导出器,将 trace 和 metrics 发送到 Kafka。
- 支持集群范围的代理环境。
-
如果启用了 Prometheus exporter,Red Hat build of OpenTelemetry Operator 会创建 Prometheus
ServiceMonitor
自定义资源。 -
Operator 启用
Instrumentation
自定义资源,允许注入上游 OpenTelemetry 自动检测库。
1.2.2. 删除通知
- 在红帽构建的 OpenTelemetry 3.0 中,Jaeger exporter 已被删除。程序错误修复和支持仅在 2.9 生命周期结束时提供。作为将数据发送到 Jaeger 收集器的 Jaeger exporter 的替代选择,您可以使用 OTLP exporter。
1.2.3. 程序错误修复
在这个版本中引进了以下程序错误修复:
-
修复了在使用
oc adm catalog mirror
CLI 命令时对断开连接的环境的支持。
1.2.4. 已知问题
因此,因为一个程序错误(TRACING-3761),红帽构建的 OpenTelemetry Operator 的集群监控会被禁用。这个程序错误可防止集群监控因为集群监控和服务监控对象缺少标签 openshift.io/cluster-monitoring=true
,所以从红帽构建的 OpenTelemetry Operator 中提取指标。
临时解决方案
您可以启用集群监控,如下所示:
-
在 Operator 命名空间中添加以下标签:
oc label namespace openshift-opentelemetry-operator openshift.io/cluster-monitoring=true
创建服务监控器、角色和角色绑定:
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: opentelemetry-operator-controller-manager-metrics-service namespace: openshift-opentelemetry-operator spec: endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token path: /metrics port: https scheme: https tlsConfig: insecureSkipVerify: true selector: matchLabels: app.kubernetes.io/name: opentelemetry-operator control-plane: controller-manager --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: otel-operator-prometheus namespace: openshift-opentelemetry-operator annotations: include.release.openshift.io/self-managed-high-availability: "true" include.release.openshift.io/single-node-developer: "true" rules: - apiGroups: - "" resources: - services - endpoints - pods verbs: - get - list - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: otel-operator-prometheus namespace: openshift-opentelemetry-operator annotations: include.release.openshift.io/self-managed-high-availability: "true" include.release.openshift.io/single-node-developer: "true" roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: otel-operator-prometheus subjects: - kind: ServiceAccount name: prometheus-k8s namespace: openshift-monitoring