Skip to content

[DX-2789] Observability stack updated#2401

Open
Tofel wants to merge 2 commits intomainfrom
dx-2789-cre-profiling
Open

[DX-2789] Observability stack updated#2401
Tofel wants to merge 2 commits intomainfrom
dx-2789-cre-profiling

Conversation

@Tofel
Copy link
Contributor

@Tofel Tofel commented Feb 13, 2026

  • update Tempo version to latest
  • enable traces-to-profiles
  • run Pyroscope with bigger and higher resolution profiles

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.md
    • Added a file to document the update to the observability stack, including the update of Tempo version and the enabling of traces-to-profiles. Also mentions running Pyroscope with bigger and higher resolution profiles.
  • framework/components/blockchain/anvil.go
    • Modified the default container name for Anvil to include the ChainID, ensuring unique names for instances based on their ChainID.
  • framework/observability/compose/conf/provisioning/datasources/loki.yaml
    • Updated datasources configuration: added UIDs to Tempo, Loki, Prometheus, and Pyroscope, and configured new features for Tempo, such as traces-to-logs and traces-to-profiles. Also, increased the maxLines for Loki and added derivedFields for linking logs to traces.
  • framework/observability/compose/docker-compose.yaml
    • Updated the Tempo service to version 2.7.1, specified user permissions, and set memory limits. Added new commands and configurations for Prometheus to enable remote write receiver and exemplar storage. Updated the Pyroscope service to include a configuration file for advanced settings.
  • framework/observability/compose/pyroscope-config.yaml
    • Introduced a new configuration file for Pyroscope to enhance its capabilities, including increased ingestion rates, max profile stacktrace samples and depth, flame graph nodes, and profile size limits.
  • framework/observability/compose/tempo.yaml
    • Expanded Tempo's configuration to include endpoint settings for gRPC and HTTP, query frontend for TraceQL metrics, querier configuration for search preferences, and metrics generator for Grafana Drilldown. Also, added overrides for max traces per user and configurations for metrics generator processors.

@Tofel Tofel requested a review from a team as a code owner February 13, 2026 14:34
Copilot AI review requested due to automatic review settings February 13, 2026 14:34
@github-actions
Copy link

👋 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!

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.yaml with 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
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
in.ContainerName = "anvil-" + in.ChainID
in.ContainerName = framework.DefaultTCName("anvil-" + in.ChainID)

Copilot uses AI. Check for mistakes.
Comment on lines 96 to 104
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
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
@Tofel Tofel force-pushed the dx-2789-cre-profiling branch from 370bece to 9c837f8 Compare February 13, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant