OpenTelemetry utilities for the River job queue.
See example_middleware_test.go for usage details.
The middleware supports these options:
middleware := otelriver.NewMiddleware(&MiddlewareConfig{
DurationUnit: "ms",
EnableSemanticMetrics: true,
EnableWorkSpanJobKindSuffix: true,
MeterProvider: meterProvider,
TracerProvider: tracerProvider,
})DurationUnit: The unit which durations are emitted as, either "ms" (milliseconds) or "s" (seconds). Defaults to seconds.EnableSemanticMetrics: Causes the middleware to emit metrics compliant with OpenTelemetry's "semantic conventions" for message clients. This has the effect of having all messaging systems share the same common metric names, with attributes differentiating them.EnableWorkSpanJobKindSuffix: Appends the job kind a suffix to work spans so they look likeriver.work/my_jobinstead ofriver.work.MeterProvider: Injected OpenTelemetry meter provider. The global meter provider is used by default.TracerProvider: Injected OpenTelemetry tracer provider. The global tracer provider is used by default.
See using the OpenTelemetry API with DataDog and the examples in datadogriver for how to configure a DataDog OpenTelemetry tracer provider.