Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenTelemetry epic #26852

Open
11 of 24 tasks
lucacasonato opened this issue Nov 13, 2024 · 0 comments
Open
11 of 24 tasks

OpenTelemetry epic #26852

lucacasonato opened this issue Nov 13, 2024 · 0 comments
Labels
feat new feature (which has been agreed to/accepted)

Comments

@lucacasonato
Copy link
Member

lucacasonato commented Nov 13, 2024

  • Land initial support for user created traces + exporting with OTLP
  • Land initial support for exporting console.log with OTLP (with associated traces)
  • Land initial support for user created metrics + exporting with OTLP
  • Configure trace sampling through OTEL_TRACES_SAMPLER
  • Respect OTEL_SDK_DISABLED
  • Respect OTEL_PROPAGATORS
  • Ensure telemetry is flushed in all cases:
    • console.log("foo"); // Program naturally exits here
    • console.log("foo"); Deno.exit(0);
    • console.log("foo"); throw new Error("uncaught");
      • Ensure that "uncaught" is also collected by logging
    • Web worker logs something and immediate calls self.close()
    • Web worker logs something and calls Deno.exit() (self.close() alias in workers?)
    • Web worker logs something and the main worker immediately calls worker.terminate()
    • Web worker logs something and throws an exception.

Then there is a bunch of work to auto instrument built in APIs. A very basic initial list that will be expanded:

  • Deno.serve / node:http (server)
    • Create traces for incoming requests
      • Ensure that users can set http.route attribute on the automatic span
    • Propagation of trace ID from incoming headers
    • Metrics for latency
  • fetch / node:http (client)
    • Create traces for outbound requests
    • Propagation of trace ID into outgoing headers
    • Metrics for latency
    • Metrics for connection pool
@lucacasonato lucacasonato added the feat new feature (which has been agreed to/accepted) label Nov 13, 2024
devsnek added a commit that referenced this issue Nov 14, 2024
Improving the breadth of collected data, and ensuring that the collected
data is more likely to be successfully reported.

- Use `log` crate in more places
- Hook up `log` crate to otel
- Switch to process-wide otel processors
- Handle places that use `process::exit`

Also adds a more robust testing framework, with a deterministic tracing
setting.

Refs: #26852
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat new feature (which has been agreed to/accepted)
Projects
None yet
Development

No branches or pull requests

1 participant