-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Is your feature request related to a problem? Please describe.
As of kube-1.22 and etcd 3.5, exporting OpenTelemetry trace data is experimental
- Etcd: https://etcd.io/docs/v3.5/op-guide/monitoring/#distributed-tracing
- APIServer: https://kubernetes.io/blog/2021/09/03/api-server-tracing/
And CRI-O also has opentelemetry tracing support:
Describe the solution you'd like
Enabling tracing in CRI-O, APIServer and Etcd will benefit the K8s and OpenTelemetry communities:
- Document and automate the enabling of OpenTelemetry tracing in etcd and APIServer.
- Calculate performance overhead of exporting OpenTelemetry traces.
- Document the collection and visualization of trace data with various tracing backends. OpenTelemetry Collector and Jaeger are available through OperatorHub.
- Demonstrate how tracing can improve the performance and debugging of K8s, weighed against the performance overhead of exporting traces.
- Investigate how instrumented applications running on K8s interact with the instrumented core components (etcd, apiserver)?
Enabling tracing will provide valuable data for research:
- Would like to deploy varied workflows & collect traces from the platform as well as the applications running on it.
- Does the tracing instrumentation make sense for K8s architecture? For what use-cases?
Describe alternatives you've considered
Setup to enable tracing in a pseudo environment (kubeam single node): https://github.com/sallyom/otel-kubeadm
Additional context
Etcd, APIServer, and CRI-O tracing is experimental upstream, not enabled by default. In order to enable in Operate First I will be investigating what, if any, modifications to OpenShift operators are required. Kubelet tracing may be added in a follow-up issue, instrumentation is in progress upstream.