tracing
Charms
Requiring tracing
- mysql
- traefik-k8s
- mysql-k8s
- vault-k8s
- mysql-router-k8s
- postgresql
- pgbouncer
- prometheus-k8s
- pgbouncer-k8s
- grafana-k8s
- postgresql-k8s
- loki-k8s
- alertmanager-k8s
- anbox-cloud-dashboard
- kratos
- anbox-stream-gateway
- ams
- aar
- ams-lxd
- hydra
- oathkeeper
- grafana-agent-k8s
- anbox-stream-agent
- identity-platform-login-ui-operator
- self-signed-certificates
- manual-tls-certificates
Developer documentation
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