Skip to content

Conversation

@saibatizoku
Copy link
Contributor

Description

Adds software dependencies to enable opentelemetry traces.

Closes #3682 .

Description of Changes

Provides a demonstration of how to enable opentelemetry traces in the existing cat-gateway.

Please confirm the following checks

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream module

@saibatizoku saibatizoku self-assigned this Dec 8, 2025
@saibatizoku saibatizoku added the rr: gatekeepers Required review by gatekeepers team label Dec 8, 2025
@saibatizoku saibatizoku moved this from New to 🏗 In progress in Catalyst Dec 8, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2025

📚 Docs Preview

The docs for this PR can be previewed at the following URL:

https://docs.dev.projectcatalyst.io/voices/feat/enable-otel

@saibatizoku saibatizoku added the squad: gatekeepers Catalyst App Backend, System Development & Integration Team label Dec 9, 2025
// Returns optional guard for telemetry providers.
// We must hold this guard while the main process runs.
// No need to do anything else.
let _guard = Settings::init(settings)?;
Copy link
Contributor

Choose a reason for hiding this comment

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

What do you think to make this telemetry guard as s static variable and manage it just inside the telemetry module ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We could make it a static variable, but we would need to call the shutdown functions in the OTEL providers before the main program exits explicitly. In my consideration, there is no need to store this as a static variable (i.e. there is no need to reference the guard at any other point during the execution of the program).

Copy link
Contributor

Choose a reason for hiding this comment

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

Nitpicking.
What do you think just extend the original catalyst-gateway/README.md with how to run telemetry stuff and extend the catalyst-gateway/docker-compose.yml file with the necessary "telemetry" services ?
The main reason is to keep everything in one place, so it would be easier to maintain

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This can be done, I just wanted to keep things separate such that review of the telemetry stuff can be done cleanly. We still have to cleanup the docker-compose in the demo/ path, so that the prometheus container can scrape from the cat-gateway and jaeger containers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rr: gatekeepers Required review by gatekeepers team squad: gatekeepers Catalyst App Backend, System Development & Integration Team

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

Better telemetry gathering for cat-gateway

3 participants