Skip to content

Enable OpenTelemetry Tracing in CRI-O, Etcd, Kube APIServer #401

@sallyom

Description

@sallyom

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

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.

@durandom

Metadata

Metadata

Assignees

Labels

blockedkind/featureCategorizes issue or PR as related to a new feature.lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions