-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Add schema URL support #63651
Copy link
Copy link
Closed
Labels
api-approvedAPI was approved in API review, it can be implementedAPI was approved in API review, it can be implementedarea-System.Diagnostics.Activityfeature-requestin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is merged
Milestone
Metadata
Metadata
Assignees
Labels
api-approvedAPI was approved in API review, it can be implementedAPI was approved in API review, it can be implementedarea-System.Diagnostics.Activityfeature-requestin-prThere is an active PR which will close this issue when it is mergedThere is an active PR which will close this issue when it is merged
Type
Fields
Give feedbackNo fields configured for issues without a type.
https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/schemas
Telemetry sources such as instrumented applications and consumers of telemetry such as observability backends sometimes make implicit assumptions about the emitted telemetry. They assume that the telemetry will contain certain attributes or otherwise have a certain shape and composition of data. Essentially there is a coupling between 3 parties: OpenTelemetry semantic conventions, telemetry sources and telemetry consumers. The coupling complicates the independent evolution of these 3 parties. The 3 parties should be able to evolve independently over time and Telemetry Schemas are central to how we make this possible.
Proposal
namespace System.Diagnostics { public sealed class ActivitySource : IDisposable { public ActivitySource(string name, string? version = "") { ... } + public ActivitySource(string name, string? version, string? telemetrySchemaUrl) { ... } + public string? TelemetrySchemaUrl { get; } } } namespace System.Diagnostics.Metrics { public class Meter : IDisposable { public Meter(string name) { } public Meter(string name, string? version) { } + public Meter(string name, string? version, string? telemetrySchemaUrl) { } + public string? TelemetrySchemaUrl { get; } } }Usage