Skip to content

Metrics / instrument to export request durations via OpenTelemetry  #3262

@deinok

Description

@deinok

The OPC UA implementation should define its own telemetry metrics similar to the approach used in OpenTelemetry for HTTP clients:
https://opentelemetry.io/docs/specs/semconv/http/http-metrics/#http-client

For reference, here’s an example of how DNS resolution metrics are handled in .NET:
https://github.com/dotnet/runtime/blob/main/src/libraries/System.Net.NameResolution/src/System/Net/NameResolutionMetrics.cs

These counters are exposed automatically without requiring explicit user configuration.

After reviewing ITelemetryContext, it appears overly complex for tracking basic request-related information. A simplified, purpose-built telemetry model for OPC UA would improve clarity and maintainability.

Proposed action:

  • Define a minimal, self-contained set of OPC UA telemetry metrics (e.g., request histogram).
  • Align metric naming and semantics with OpenTelemetry conventions.
  • Simplify the integration layer to avoid unnecessary coupling with ITelemetryContext.
  • Add this Metrics to the Semantic Conventions of OTel

I'm open to give a minimum viable product that can track durations for requests

Metadata

Metadata

Assignees

Labels

enhancementAPI or feature enhancement

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions