diff --git a/Directory.Packages.props b/Directory.Packages.props index a33c0da98..e64fd3167 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -23,6 +23,8 @@ + + @@ -75,7 +77,6 @@ - diff --git a/src/api/Elastic.Documentation.Api.Lambda/Elastic.Documentation.Api.Lambda.csproj b/src/api/Elastic.Documentation.Api.Lambda/Elastic.Documentation.Api.Lambda.csproj index 3c9a5b990..62326f3ff 100644 --- a/src/api/Elastic.Documentation.Api.Lambda/Elastic.Documentation.Api.Lambda.csproj +++ b/src/api/Elastic.Documentation.Api.Lambda/Elastic.Documentation.Api.Lambda.csproj @@ -28,6 +28,8 @@ + + diff --git a/src/api/Elastic.Documentation.Api.Lambda/Program.cs b/src/api/Elastic.Documentation.Api.Lambda/Program.cs index 873aa435b..39380c1ed 100644 --- a/src/api/Elastic.Documentation.Api.Lambda/Program.cs +++ b/src/api/Elastic.Documentation.Api.Lambda/Program.cs @@ -9,6 +9,9 @@ using Elastic.Documentation.Api.Core.Search; using Elastic.Documentation.Api.Infrastructure; using Elastic.Documentation.ServiceDefaults; +using OpenTelemetry; +using OpenTelemetry.Metrics; +using OpenTelemetry.Trace; try { @@ -23,6 +26,29 @@ process.Refresh(); Console.WriteLine($"Documentation service defaults added. Memory: {process.WorkingSet64 / 1024 / 1024} MB"); + _ = builder.AddElasticOpenTelemetry(edotBuilder => + { + _ = edotBuilder + .WithElasticTracing(tracing => + { + _ = tracing + .AddAspNetCoreInstrumentation() + .AddHttpClientInstrumentation(); + }) + .WithElasticLogging() + .WithElasticMetrics(metrics => + { + _ = metrics + .AddAspNetCoreInstrumentation() + .AddHttpClientInstrumentation() + .AddProcessInstrumentation() + .AddRuntimeInstrumentation(); + }); + }); + + process.Refresh(); + Console.WriteLine($"Elastic OTel configured. Memory: {process.WorkingSet64 / 1024 / 1024} MB"); + _ = builder.Services.AddAWSLambdaHosting(LambdaEventSource.RestApi, new SourceGeneratorLambdaJsonSerializer()); process.Refresh(); Console.WriteLine($"AWS Lambda hosting configured. Memory: {process.WorkingSet64 / 1024 / 1024} MB"); diff --git a/src/api/Elastic.Documentation.Api.Lambda/appsettings.Development.json b/src/api/Elastic.Documentation.Api.Lambda/appsettings.development.json similarity index 100% rename from src/api/Elastic.Documentation.Api.Lambda/appsettings.Development.json rename to src/api/Elastic.Documentation.Api.Lambda/appsettings.development.json diff --git a/src/api/Elastic.Documentation.Api.Lambda/appsettings.edge.json b/src/api/Elastic.Documentation.Api.Lambda/appsettings.edge.json new file mode 100644 index 000000000..2486dffdf --- /dev/null +++ b/src/api/Elastic.Documentation.Api.Lambda/appsettings.edge.json @@ -0,0 +1,15 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "Elastic": { + "OpenTelemetry": { + "LogLevel": "Debug", + "LogTargets": "stdout", + "SkipInstrumentationAssemblyScanning": true + } + } +}