Skip to content

Latest commit

 

History

History

docker-otel

Example Construction of Opentelemetry and its Related Servers for Observability

Here is an example of docker containers for the observability of modoh-server, conjunctively configured with its container in ../docker/ directory.

Example for Observability

This example consists of the following containers:

  • opentelemetry-collector: Receives and aggregates OTLP gRPC messages from modoh-server. In this example, it is collocated with modoh-server in a virtual local network. You need to update ./otel-config.yml as your setting.
  • Jaeger: Receives trace information via OTLP gRPC from opentelemetry-collector, and visualize the trace on the web (http://localhost:16686). Currently Jaeger in our setting uses a non-persistent in-memory storage.
  • Grafana mimir: Receives metrics information via Prometheus Remote Write protocol from opentelemetry-collector. This is responsible to aggregate and store the metric information in a long-term storage like object storage services. Update ./mimir.yml and ./mimir-alertmanager-fallback.yml if needed.
  • Grafana: Retrieves Prometheus metrics from Grafana mimir and visualize the metrics information on the web (http://localhost:3000).
  • Rclone: Serves an S3 compatible object storage backed by a certain cloud storage service like Dropbox. This is connected from Grafana mimir to store the metrics data. rclone.conf requires to be configured. (See the Rclone docs)

For the detailed configurations for these containers, please refer to ./docker-compose.yml and its mounting configuration files. Of course, the ./docker-compose.yml itself should be updated according to your environment.