feat: docker compose observability stack#8917
Merged
fatih-acar merged 8 commits intostablefrom Apr 24, 2026
Merged
Conversation
Signed-off-by: Fatih Acar <fatih@opsmill.com>
Signed-off-by: Fatih Acar <fatih@opsmill.com>
230b761 to
ccaef9b
Compare
Migrate from promtail to alloy Stick image versions Signed-off-by: Fatih Acar <fatih@opsmill.com>
Signed-off-by: Fatih Acar <fatih@opsmill.com>
ccaef9b to
9331137
Compare
Signed-off-by: Fatih Acar <fatih@opsmill.com>
Contributor
There was a problem hiding this comment.
2 issues found across 9 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="development/alloy/config.alloy">
<violation number="1" location="development/alloy/config.alloy:179">
P1: `source = "tmp_msg"` references an extracted field that is never populated by any prior stage in the pipeline. Per the Alloy docs, when `source` is set, it parses that previously extracted value — since `tmp_msg` never exists, this entire `stage.logfmt` block is a no-op and the `app`, `request_id`, `branch`, and `trace_id` fields will never be extracted from non-JSON logs.
If the intent is to parse the raw log line, remove the `source` parameter (empty/missing means "parse the log line itself"). If the intent is to parse a specific extracted field, a prior stage needs to populate `tmp_msg`.</violation>
<violation number="2" location="development/alloy/config.alloy:380">
P2: `job_name = "task-worker"` is misleading for a scrape targeting `prefect-server:4200/api/metrics`. This likely should be `"prefect"` or `"prefect-server"` to match the actual target. The current name would cause confusion in dashboards and alerting since it doesn't describe the Prefect server being scraped.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
BaptisteGi
reviewed
Apr 20, 2026
BaptisteGi
reviewed
Apr 20, 2026
Signed-off-by: Fatih Acar <fatih@opsmill.com>
…hub-" - Drop no-op `source = "tmp_msg"` so stage.logfmt parses the raw log line - Rename Prefect scrapes: `task-manager` for the server, `task-manager-exporter` for the exporter sidecar - Prefix all observability services with `infrahub-` to avoid DNS collisions with user-run `prometheus`, `grafana`, etc. - Rewrite tracing tip to explain what request tracing does, and move the `--force-recreate` upgrade warning to the upgrade guide Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2224d07 to
d30972e
Compare
- Use "data source" (two words) in the tracing tip - Expand "config" to "configuration" in the upgrade warning Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
BeArchiTek
approved these changes
Apr 24, 2026
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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 updates the observability stack shipped in the
development/folder (should we move stuff out of this folder?) - drops Prometheus for scraping and Promtail, replaced by Grafana Alloy.PR also includes a script that embeds all the file based configs within docker-compose
configsso it can be launched in through a self contained docker compose file.This is INFP-466
Summary by cubic
Replaces Promtail and manual Prometheus scrapes with
grafana/alloy, and adds a single-file observability Docker Compose for easy local deployment. Pins image versions, adds a CI check to keep the standalone file in sync, and updates docs for enabling observability and tracing (INFP-466).New Features
grafana/alloyto collect logs and scrape metrics; logs go to Loki and metrics are remote-written to Prometheus. Filters containers byCOMPOSE_PROJECT_NAMEand exposes self-metrics on port 12345.convert_compose_standalone.pyto embed configs and generatedocker-compose-observability-standalone.yml; CI regenerates and validates it’s up to date.?observability=true, tracing env vars, and a--force-recreatenote for config changes.Dependencies
grafana/promtailwithgrafana/alloy:v1.15.0; bumpedgrafana/lokito3.7.1,grafana/tempoto2.10.3,prom/prometheustov3.11.0,prom/node-exportertov1.10.2,gcr.io/cadvisor/cadvisortov0.52.1,prefecthq/prometheus-prefect-exporterto3.3.0.development/prometheus/config.ymlanddevelopment/promtail/config.yml; Prometheus now runs with an empty config and only receives remote write.Written for commit 2224d07. Summary will update on new commits.