Conversation
|
👋 Tofel, thanks for creating this pull request! To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team. Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks! |
There was a problem hiding this comment.
Pull request overview
Updates the local observability docker-compose stack to support newer Tempo features (TraceQL metrics, metrics-generator remote_write, traces-to-profiles) and increases Pyroscope retention/limits for higher-resolution profiling. Also adjusts Anvil’s default container naming.
Changes:
- Bump Tempo image version and extend
tempo.yamlwith query-frontend + metrics-generator configuration. - Add a Pyroscope server config with much higher ingestion/profile limits and wire it into docker-compose + Grafana provisioning.
- Change Anvil’s default container name to include chain ID.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| framework/observability/compose/tempo.yaml | Adds OTLP endpoints plus query_frontend/querier/metrics_generator configuration for trace-derived metrics. |
| framework/observability/compose/pyroscope-config.yaml | Introduces Pyroscope limit overrides to keep larger/higher-resolution profiles. |
| framework/observability/compose/docker-compose.yaml | Bumps Tempo image, enables Prometheus remote-write receiver/exemplars, and changes Pyroscope startup/config wiring. |
| framework/observability/compose/conf/provisioning/datasources/loki.yaml | Adds datasource UIDs and configures traces→logs + traces→profiles + node graph/service map integration. |
| framework/components/blockchain/anvil.go | Changes default Anvil container naming scheme. |
| framework/.changeset/v0.14.1.md | Documents the observability stack update. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| } | ||
| if in.ContainerName == "" { | ||
| in.ContainerName = "anvil" | ||
| in.ContainerName = "anvil-" + in.ChainID |
There was a problem hiding this comment.
Default Anvil ContainerName is now derived only from ChainID (e.g., anvil-31337). This still collides whenever multiple Anvil instances use the same chain ID (common in tests) and also bypasses the repo’s framework.DefaultTCName(...) random suffix convention used elsewhere to avoid name conflicts. Consider using framework.DefaultTCName("anvil-"+in.ChainID) (or including the port) as the default, while still allowing explicit ContainerName overrides.
| in.ContainerName = "anvil-" + in.ChainID | |
| in.ContainerName = framework.DefaultTCName("anvil-" + in.ChainID) |
| pyroscope: | ||
| image: 'grafana/pyroscope:1.14.1' | ||
| ports: | ||
| - '4040:4040' | ||
| command: | ||
| - 'server' | ||
| - '-config.file=/etc/pyroscope/config.yaml' | ||
| volumes: | ||
| - ./pyroscope-config.yaml:/etc/pyroscope/config.yaml | ||
| - pyroscope-storage:/var/lib/pyroscope |
There was a problem hiding this comment.
pyroscope service command now only passes -config.file=... but no longer includes the server subcommand. In this repo, Pyroscope is started with server (see wasp/compose/pyroscope-compose.yaml), and running the binary without a subcommand typically prints help and exits. Add server back (and keep the config flag) so the container reliably starts.
…-profiles, run Pyroscope with bigger and higher resolution profiles
370bece to
9c837f8
Compare
Below is a summarization created by an LLM (gpt-4-0125-preview). Be mindful of hallucinations and verify accuracy.
Why
The changes aim to enhance the observability stack by updating the Tempo version, enabling new features such as traces-to-profiles, and configuring Pyroscope for better performance and data resolution. Additionally, improvements to the blockchain component ensure that Anvil containers are uniquely named based on the ChainID, promoting better organization and management of containers.
What
framework/.changeset/v0.14.1.mdframework/components/blockchain/anvil.goframework/observability/compose/conf/provisioning/datasources/loki.yamlframework/observability/compose/docker-compose.yamlframework/observability/compose/pyroscope-config.yamlframework/observability/compose/tempo.yaml