Skip to content

Release v7.10.4

Choose a tag to compare

@github-actions github-actions released this 26 May 16:31
830e2f8

Summary

Adds named observability DI extensions for keyed meters and activity sources, with typed resolution through IMeter<T> / IActivitySource<T>, and documents named registration in the metrics and traces sections.

Added

  • Public AddNamedMeter(string name) extension to register a keyed System.Diagnostics.Metrics.Meter and keyed open-generic IMeter<T>.
  • Public AddNamedActivitySource(string name) extension to register a keyed System.Diagnostics.ActivitySource and keyed open-generic IActivitySource<T>.
  • Focused DI specs for named diagnostics resolution under for_DiagnosticsServiceCollectionExtensions.
  • New observability docs pages for named registration:
    • Documentation/csharp/metrics/named-registration.md
    • Documentation/csharp/traces/named-registration.md

Changed

  • Named meter registration now reuses existing Meter<T> instead of a separate NamedMeter<T> implementation.
  • Named activity source registration now reuses existing ActivitySource<T> instead of a separate NamedActivitySource<T> implementation.
  • Meter<T> and ActivitySource<T> now support keyed resolution via [FromKeyedServices] while preserving non-keyed fallback behavior.
  • Named diagnostics registrations use keyed factory-based singleton registration for underlying Meter / ActivitySource, preserving container-managed lifetime/disposal.
  • Documentation was reorganized so named/keyed observability registration guidance lives under metrics and traces, not dependency injection:
    • Updated Documentation/csharp/metrics/index.md and Documentation/csharp/traces/index.md to link to named registration pages.
    • Updated Documentation/csharp/metrics/toc.yml and Documentation/csharp/traces/toc.yml to include named registration pages.
    • Removed named observability registration guidance from Documentation/csharp/dependency_injection.md.

Fixed

  • IMeter<T> and IActivitySource<T> keyed resolutions bind to the correct named underlying Meter / ActivitySource instance instead of defaulting to type-name instances.

Removed

  • Removed NamedMeter<T> in favor of the existing Meter<T> implementation.
  • Removed NamedActivitySource<T> in favor of the existing ActivitySource<T> implementation.

Security

  • No security behavior change.

Deprecated

  • None.