diff --git a/Directory.Packages.props b/Directory.Packages.props index 3e2ba3e..d315af6 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -26,6 +26,7 @@ + @@ -58,4 +59,4 @@ - + \ No newline at end of file diff --git a/SharpIDE.Photino.sln b/SharpIDE.Photino.sln index 0a5977f..e08dfab 100644 --- a/SharpIDE.Photino.sln +++ b/SharpIDE.Photino.sln @@ -15,6 +15,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Directory.Packages.props = Directory.Packages.props NotesToUsers.md = NotesToUsers.md .globalconfig = .globalconfig + nuget.config = nuget.config EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpIDE.Photino", "src\SharpIDE.Photino\SharpIDE.Photino.csproj", "{E35167E1-0FF4-4194-97A8-CC95EDA224CD}" diff --git a/nuget.config b/nuget.config index 19975b5..db21009 100644 --- a/nuget.config +++ b/nuget.config @@ -8,7 +8,7 @@ - + diff --git a/src/SharpIDE.Godot/DiAutoload.cs b/src/SharpIDE.Godot/DiAutoload.cs index 1ae0b25..c7789d3 100644 --- a/src/SharpIDE.Godot/DiAutoload.cs +++ b/src/SharpIDE.Godot/DiAutoload.cs @@ -1,6 +1,8 @@ using Godot; using System.Reflection; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; using SharpIDE.Application.Features.Analysis; using SharpIDE.Application.Features.Build; using SharpIDE.Application.Features.FilePersistence; @@ -33,6 +35,16 @@ public partial class DiAutoload : Node services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddLogging(builder => + { + builder.AddConsole(); + builder.AddOpenTelemetry(logging => + { + logging.IncludeFormattedMessage = true; + logging.IncludeScopes = true; + }); + }); + services.AddGodotOpenTelemetry(); _serviceProvider = services.BuildServiceProvider(); GetTree().NodeAdded += OnNodeAdded; diff --git a/src/SharpIDE.Godot/SharpIDE.Godot.csproj b/src/SharpIDE.Godot/SharpIDE.Godot.csproj index c86f6d9..2da594c 100644 --- a/src/SharpIDE.Godot/SharpIDE.Godot.csproj +++ b/src/SharpIDE.Godot/SharpIDE.Godot.csproj @@ -10,6 +10,7 @@ + diff --git a/tools/AspNetCoreServiceDefaults/GodotServiceDefaults.cs b/tools/AspNetCoreServiceDefaults/GodotServiceDefaults.cs index a61d577..b203b03 100644 --- a/tools/AspNetCoreServiceDefaults/GodotServiceDefaults.cs +++ b/tools/AspNetCoreServiceDefaults/GodotServiceDefaults.cs @@ -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(); + } + } }