This repository was archived by the owner on Jul 28, 2026. It is now read-only.
Clean up the docker compose example environment - #1456
Merged
Conversation
The various docker-compose.*.yaml files have been replaced with a single docker-compose.yaml file. By default, this file will spawn and expose ports for Loki, Grafana, Tempo, and Cortex so telemetry data can be stored and visualized. This allows developers to bring up dependencies needed for testing a local Grafana Agent process, useful for validating code changes. Version 3 of Docker Compose is used for profile support, allowing docker-compose.yaml to optionally run extra services: * The `agent` profile will also run a Grafana Agent that collects metrics from itself and sends them to Cortex. * The `integrations` profile will run example services that integrations can target, such as MySQL and Consul. Each of these `integrations` services can also be enabled independently by using the profile name matching the relevant integration name (i.e., the `mysqld_exporter` profile enables the MySQL service). All integration services will expose their ports for a local agent to connect to.
Contributor
Author
|
At some point I suggested that we might want to replace Docker Compose completely with k3d, but I'm starting to question whether that's the right idea. Sometimes I want to quickly spin up just Loki/Cortex/Tempo/Grafana for testing things, which would be pretty hard to do with k3d, but is pretty simple with Docker Compose 3 and its profiles support. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR replaces the various docker-compose.*.yaml files with a single docker-compose.yaml file.
By default, this file will spawn and expose ports for Loki, Grafana, Tempo, and Cortex so telemetry data can be stored and visualized. This allows developers to bring up dependencies needed for testing a local Grafana Agent process, useful for validating code changes.
Version 3 of Docker Compose is used for profile support, allowing docker-compose.yaml to optionally run extra services:
The
agentprofile will also run a Grafana Agent that collects metrics from itself and sends them to Cortex.The
integrationsprofile will run example services that integrations can target, such as MySQL and Consul. Each of theseintegrationsservices can also be enabled independently by using the profile name matching the relevant integration name (i.e., themysqld_exporterprofile enables the MySQL service). All integration services will expose their ports for a local agent to connect to.You can pass a comma-delimited list of profiles to Docker Compose at the command line:
docker compose --profile=agent,mysqld_exporter,consul_exporter up -d