feat: add otel support #554
Open
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.
What kind of change does this PR introduce?
Feature, Enhancement
Description
This PR adds OpenTelemetry support
Usage
OTEL_EXPORTER_OTLP_ENDPOINT
:It is an OTLP endpoint that receives various trace data.
Please note that due to limitations in the current implementation of Deno Otel, only the HTTP protocol is supported.
An example of a valid value is
http://127.0.0.1:4318/
.OTEL_SERVICE_NAME
:It is the service name used to identify various trace data.
It is not required, but please note that it will be displayed as unknown_service in tools such as SigNoz.
In addition to these environment variables, two CLI flags have been added. These are separate from user workers (otel settings for user workers can be configured in the main script) and are related to Otel settings in main and event workers.
--enable-otel[=<worker kind>...]
:Enables Otel (not user worker).
Otel is disabled by default for main and event worker.
If only the flag is specified, Otel is enabled for both main and event worker.
In addition, if you only want to enable Otel for the event worker, use
--enable-otel=event
--otel-console[=<ignore, capture, replace>]
:Enables auto instrumentation for
console.*
in main and event workers.The default value is
ignore
.For more information about this value, see https://docs.deno.com/runtime/fundamentals/open_telemetry/#logs.
Enable Otel in the user worker:
When creating a user worker from the main worker, you can pass
otelConfig
as a parameter toEdgeRuntime.userWorkers.create()
.(Detailed options for otelConfig can be found in
types/global.d.ts
in PR.)Closes FUNC-254