This commit is contained in:
2026-03-20 22:28:32 +01:00
parent 8ce3e68b81
commit 285b93a9be
4 changed files with 30 additions and 2 deletions
@@ -12,7 +12,8 @@ namespace Musify.Infrastructure.Configuration
.AddValidatedConfiguration<DatabaseConfiguration>(configuration, DatabaseConfiguration.SectionName)
.AddValidatedConfiguration<KeycloakConfiguration>(configuration, KeycloakConfiguration.SectionName)
.AddValidatedConfiguration<InfrastructureStorageConfiguration>(configuration, InfrastructureStorageConfiguration.SectionName)
.AddValidatedConfiguration<MessagingConfiguration>(configuration, MessagingConfiguration.SectionName);
.AddValidatedConfiguration<MessagingConfiguration>(configuration, MessagingConfiguration.SectionName)
.AddValidatedConfiguration<OpenTelemetryConfiguration>(configuration, OpenTelemetryConfiguration.SectionName);
return serviceDescriptors;
}
@@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace Musify.Infrastructure.Configuration
{
public class OpenTelemetryConfiguration
{
public const string SectionName = "OpenTelemetry";
[Required]
[Url]
public required string OtlpEndpoint { get; set; }
}
}
+1
View File
@@ -22,6 +22,7 @@
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="10.0.5" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="6.0.1" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.1" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.0" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.15.0" />
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.12" />
</ItemGroup>
@@ -1,4 +1,8 @@
using Microsoft.Extensions.DependencyInjection;
using Musify.Infrastructure.Configuration;
using OpenTelemetry.Exporter;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
namespace Musify.Infrastructure.Observability
{
@@ -6,15 +10,24 @@ namespace Musify.Infrastructure.Observability
{
public static IServiceCollection AddInfrastructureOpenTelemetry(this IServiceCollection serviceDescriptors)
{
serviceDescriptors
.AddOptions<OtlpExporterOptions>()
.Configure<OpenTelemetryConfiguration>((exporterOptions, openTelemetryConfiguration) =>
{
exporterOptions.Endpoint = new Uri(openTelemetryConfiguration.OtlpEndpoint);
} );
serviceDescriptors
.AddOpenTelemetry()
.WithTracing(tracing =>
{
tracing.AddSource("MassTransit");
tracing.AddOtlpExporter();
} )
.WithMetrics(metrics =>
{
metrics.AddMeter("MassTransit");
metrics.AddOtlpExporter();
} );
return serviceDescriptors;