Open
Description
openedon Jan 11, 2022
open-telemetry/opentelemetry-dotnet#2417
https://github.com/open-telemetry/opentelemetry-specification/pull/1666/files
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
private static ActivitySource s_source = new ActivitySource("MyLibrary.MyFeature", "2.0", "https://opentelemetry.io/schemas/1.2.0");
private static Meter s_meter = new Meter("MyLibrary.MyFeature", "2.0", "https://opentelemetry.io/schemas/1.2.0");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment