tracing
Version 2, published
Usage
This relation interface describes the expected behavior of any charm claiming to be able to provide or consume a tempo-compliant tracing server.
Direction
Tracing is done in a push-based fashion. The receiving endpoint of the tracing backend, also referred to as a receiver, can support a number of different protocols, such as [otlp-grpc](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md
Behavior
Requirer
- Is expected to publish a list of one or more protocols it wishes to use to send traces.
- Is expected to await receiving from the provider a list of endpoints.
- Is expected to push traces to one or more of the provided endpoints using the corresponding encoding/protocol.
- Is expected to handle cases where none of the requested protocols is supported.
Provider
- Is expected to publish the url at which the server is reachable. (This will happen in any case and doubles down as an acknowledgement of receipt)
- Is expected to comply as good as possible with the requested protocols, activating the corresponding receivers.
- Is expected to run a server accepting trace submissions on all the supported and requested tracing protocols.
- Is expected to publish, for each protocol it accepts, the port at which the server is listening along with the name of the supported protocol.
Relation Data
Requirer
The requirer publishes a list of protocols it needs. For examples, see below.
Example
Provider
The provider exposes via its application databag a list of receivers.
A receiver consists of a url, a protocol object that consists of name, which is the telemetry protocol that the url accepts, and the type of the protocol used, such as http or grpc.
The full list of supported trace protocols can change. For a full list see https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver
Example
Charms implementing this interface
Providers
Requirers
Other charms using this interface
Providers
Requirers
- kafka
- kafka-k8s
- mysql
- traefik-k8s
- mysql-k8s
- vault-k8s
- parca-k8s
- mysql-router-k8s
- postgresql
- pgbouncer
- prometheus-k8s
- pgbouncer-k8s
- grafana-k8s
- postgresql-k8s
- loki-k8s
- alertmanager-k8s
- openfga-k8s
- anbox-cloud-dashboard
- kratos
- anbox-stream-gateway
- ams
- aar
- ams-lxd
- istio-k8s
- istio-ingress-k8s
- hydra
- grafana-agent-k8s
- anbox-stream-agent
- identity-platform-login-ui-operator
- mimir-coordinator-k8s
- blackbox-exporter-k8s
- tempo-coordinator-k8s
- istio-beacon-k8s
- bingo
- loki-coordinator-k8s
- canonical-livepatch-server-k8s
- self-signed-certificates
- catalogue-k8s
- manual-tls-certificates
- cos-configuration-k8s
- opentelemetry-collector-k8s
- opentelemetry-collector