Add ILogger and OTEL

This commit is contained in:
Matt Parker
2025-10-24 19:13:54 +10:00
parent 1f2d770c5a
commit 5ec788c305
6 changed files with 35 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
using OpenTelemetry;
using Microsoft.Extensions.DependencyInjection;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
namespace Microsoft.Extensions.Hosting;
@@ -17,12 +17,9 @@ public static class GodotServiceDefaults
Console.WriteLine("OTEL_EXPORTER_OTLP_ENDPOINT is not set, skipping OpenTelemetry setup.");
return;
}
var endpointUri = new Uri(endpoint!);
var resource = ResourceBuilder.CreateDefault()
.AddService("sharpide-godot");
var endpointUri = new Uri(endpoint);
_tracerProvider = Sdk.CreateTracerProviderBuilder()
.SetResourceBuilder(resource)
.AddSource("SharpIde")
.AddOtlpExporter(options =>
{
@@ -32,7 +29,6 @@ public static class GodotServiceDefaults
.Build();
_meterProvider = Sdk.CreateMeterProviderBuilder()
.SetResourceBuilder(resource)
.AddMeter("SharpIde")
.AddRuntimeInstrumentation()
.AddOtlpExporter(options =>
@@ -42,4 +38,19 @@ public static class GodotServiceDefaults
})
.Build();
}
public static void AddGodotOpenTelemetry(this IServiceCollection services)
{
services.AddOpenTelemetry();
services.AddOpenTelemetryExporters();
}
private static void AddOpenTelemetryExporters(this IServiceCollection services)
{
var useOtlpExporter = !string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("OTEL_EXPORTER_OTLP_ENDPOINT"));
if (useOtlpExporter)
{
services.AddOpenTelemetry().UseOtlpExporter();
}
}
}