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<DatabaseConfiguration>(configuration, DatabaseConfiguration.SectionName)
.AddValidatedConfiguration<KeycloakConfiguration>(configuration, KeycloakConfiguration.SectionName) .AddValidatedConfiguration<KeycloakConfiguration>(configuration, KeycloakConfiguration.SectionName)
.AddValidatedConfiguration<InfrastructureStorageConfiguration>(configuration, InfrastructureStorageConfiguration.SectionName) .AddValidatedConfiguration<InfrastructureStorageConfiguration>(configuration, InfrastructureStorageConfiguration.SectionName)
.AddValidatedConfiguration<MessagingConfiguration>(configuration, MessagingConfiguration.SectionName); .AddValidatedConfiguration<MessagingConfiguration>(configuration, MessagingConfiguration.SectionName)
.AddValidatedConfiguration<OpenTelemetryConfiguration>(configuration, OpenTelemetryConfiguration.SectionName);
return serviceDescriptors; 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.Json" Version="10.0.5" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="6.0.1" /> <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="6.0.1" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.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="OpenTelemetry.Extensions.Hosting" Version="1.15.0" />
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.12" /> <PackageReference Include="SixLabors.ImageSharp" Version="3.1.12" />
</ItemGroup> </ItemGroup>
@@ -1,4 +1,8 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Musify.Infrastructure.Configuration;
using OpenTelemetry.Exporter;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
namespace Musify.Infrastructure.Observability namespace Musify.Infrastructure.Observability
{ {
@@ -6,15 +10,24 @@ namespace Musify.Infrastructure.Observability
{ {
public static IServiceCollection AddInfrastructureOpenTelemetry(this IServiceCollection serviceDescriptors) public static IServiceCollection AddInfrastructureOpenTelemetry(this IServiceCollection serviceDescriptors)
{ {
serviceDescriptors
.AddOptions<OtlpExporterOptions>()
.Configure<OpenTelemetryConfiguration>((exporterOptions, openTelemetryConfiguration) =>
{
exporterOptions.Endpoint = new Uri(openTelemetryConfiguration.OtlpEndpoint);
} );
serviceDescriptors serviceDescriptors
.AddOpenTelemetry() .AddOpenTelemetry()
.WithTracing(tracing => .WithTracing(tracing =>
{ {
tracing.AddSource("MassTransit"); tracing.AddSource("MassTransit");
tracing.AddOtlpExporter();
} ) } )
.WithMetrics(metrics => .WithMetrics(metrics =>
{ {
metrics.AddMeter("MassTransit"); metrics.AddMeter("MassTransit");
metrics.AddOtlpExporter();
} ); } );
return serviceDescriptors; return serviceDescriptors;