namespace BuildingBlocks.OpenTelemetryCollector; public class ObservabilityOptions { public string InstrumentationName { get; set; } = default!; public string? ServiceName { get; set; } public bool MetricsEnabled { get; set; } = true; public bool TracingEnabled { get; set; } = true; public bool LoggingEnabled { get; set; } = true; public bool UsePrometheusExporter { get; set; } = true; public bool UseOTLPExporter { get; set; } = true; public bool UseAspireOTLPExporter { get; set; } = true; public bool UseGrafanaExporter { get; set; } public bool UseConsoleExporter { get; set; } public bool UseJaegerExporter { get; set; } public bool UseZipkinExporter { get; set; } public ZipkinOptions ZipkinOptions { get; set; } = default!; public JaegerOptions JaegerOptions { get; set; } = default!; public OTLPOptions OTLPOptions { get; set; } = default!; public AspireDashboardOTLPOptions AspireDashboardOTLPOptions { get; set; } = default!; } // https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Exporter.Zipkin/README.md public class ZipkinOptions { /// /// Gets or sets endpoint address to receive telemetry /// public string HttpExporterEndpoint { get; set; } = "http://localhost:9411/api/v2/spans"; } public class JaegerOptions { public string OTLPGrpcExporterEndpoint { get; set; } = "http://localhost:14317"; public string HttpExporterEndpoint { get; set; } = "http://localhost:14268/api/traces"; } public class OTLPOptions { public string OTLPGrpcExporterEndpoint { get; set; } = "http://localhost:4317"; public string OTLPHttpExporterEndpoint { get; set; } = "http://localhost:4318"; } public class AspireDashboardOTLPOptions { public string OTLPGrpcExporterEndpoint { get; set; } = "http://localhost:4319"; }