Skip to content

Commit 616f135

Browse files
authored
Merge pull request #65 from dotnet-presentations/update-servicedefaults
Updated Service Defaults extensions to 9.0 template
2 parents 39ac854 + 9b2b07d commit 616f135

File tree

1 file changed

+21
-19
lines changed

1 file changed

+21
-19
lines changed

complete/ServiceDefaults/Extensions.cs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Microsoft.Extensions.DependencyInjection;
44
using Microsoft.Extensions.Diagnostics.HealthChecks;
55
using Microsoft.Extensions.Logging;
6+
using Microsoft.Extensions.ServiceDiscovery;
67
using OpenTelemetry;
78
using OpenTelemetry.Metrics;
89
using OpenTelemetry.Trace;
@@ -14,7 +15,7 @@ namespace Microsoft.Extensions.Hosting;
1415
// To learn more about using this project, see https://aka.ms/dotnet/aspire/service-defaults
1516
public static class Extensions
1617
{
17-
public static IHostApplicationBuilder AddServiceDefaults(this IHostApplicationBuilder builder)
18+
public static TBuilder AddServiceDefaults<TBuilder>(this TBuilder builder) where TBuilder : IHostApplicationBuilder
1819
{
1920
builder.ConfigureOpenTelemetry();
2021

@@ -40,7 +41,7 @@ public static IHostApplicationBuilder AddServiceDefaults(this IHostApplicationBu
4041
return builder;
4142
}
4243

43-
public static IHostApplicationBuilder ConfigureOpenTelemetry(this IHostApplicationBuilder builder)
44+
public static TBuilder ConfigureOpenTelemetry<TBuilder>(this TBuilder builder) where TBuilder : IHostApplicationBuilder
4445
{
4546
builder.Logging.AddOpenTelemetry(logging =>
4647
{
@@ -49,26 +50,27 @@ public static IHostApplicationBuilder ConfigureOpenTelemetry(this IHostApplicati
4950
});
5051

5152
builder.Services.AddOpenTelemetry()
52-
.WithMetrics(metrics =>
53-
{
54-
metrics.AddAspNetCoreInstrumentation()
55-
.AddHttpClientInstrumentation()
56-
.AddRuntimeInstrumentation();
57-
})
58-
.WithTracing(tracing =>
59-
{
60-
tracing.AddAspNetCoreInstrumentation()
61-
// Uncomment the following line to enable gRPC instrumentation (requires the OpenTelemetry.Instrumentation.GrpcNetClient package)
62-
//.AddGrpcClientInstrumentation()
63-
.AddHttpClientInstrumentation();
64-
});
53+
.WithMetrics(metrics =>
54+
{
55+
metrics.AddAspNetCoreInstrumentation()
56+
.AddHttpClientInstrumentation()
57+
.AddRuntimeInstrumentation();
58+
})
59+
.WithTracing(tracing =>
60+
{
61+
tracing.AddSource(builder.Environment.ApplicationName)
62+
.AddAspNetCoreInstrumentation()
63+
// Uncomment the following line to enable gRPC instrumentation (requires the OpenTelemetry.Instrumentation.GrpcNetClient package)
64+
//.AddGrpcClientInstrumentation()
65+
.AddHttpClientInstrumentation();
66+
});
6567

6668
builder.AddOpenTelemetryExporters();
6769

6870
return builder;
6971
}
7072

71-
private static IHostApplicationBuilder AddOpenTelemetryExporters(this IHostApplicationBuilder builder)
73+
private static TBuilder AddOpenTelemetryExporters<TBuilder>(this TBuilder builder) where TBuilder : IHostApplicationBuilder
7274
{
7375
var useOtlpExporter = !string.IsNullOrWhiteSpace(builder.Configuration["OTEL_EXPORTER_OTLP_ENDPOINT"]);
7476

@@ -87,11 +89,11 @@ private static IHostApplicationBuilder AddOpenTelemetryExporters(this IHostAppli
8789
return builder;
8890
}
8991

90-
public static IHostApplicationBuilder AddDefaultHealthChecks(this IHostApplicationBuilder builder)
92+
public static TBuilder AddDefaultHealthChecks<TBuilder>(this TBuilder builder) where TBuilder : IHostApplicationBuilder
9193
{
9294
builder.Services.AddHealthChecks()
93-
// Add a default liveness check to ensure app is responsive
94-
.AddCheck("self", () => HealthCheckResult.Healthy(), ["live"]);
95+
// Add a default liveness check to ensure app is responsive
96+
.AddCheck("self", () => HealthCheckResult.Healthy(), ["live"]);
9597

9698
return builder;
9799
}

0 commit comments

Comments
 (0)