Skip to content

Commit b187787

Browse files
committed
Added OTLP
1 parent d582916 commit b187787

6 files changed

Lines changed: 44 additions & 10 deletions

File tree

.vscode/launch.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"preLaunchTask": "build",
99
"program": "${workspaceFolder}/src/ConsoleApp/bin/Debug/net9.0/ConsoleApp.dll",
1010
"args": [],
11-
"cwd": "${workspaceFolder}/src",
11+
"cwd": "${workspaceFolder}/src/ConsoleApp",
1212
"stopAtEntry": false,
1313
"console": "internalConsole"
1414
}

src/ConsoleApp/ConsoleApp.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" />
1212
<PackageReference Include="Microsoft.Identity.Client.Extensions.Msal" />
1313
<PackageReference Include="Microsoft.Extensions.Http" />
14+
<PackageReference Include="OpenTelemetry.Exporter.Console" />
15+
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />
16+
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
17+
<PackageReference Include="OpenTelemetry.Instrumentation.Http" />
1418
<PackageReference Include="Serilog" />
1519
<PackageReference Include="Serilog.Extensions.Hosting" />
1620
<PackageReference Include="Serilog.Settings.Configuration" />

src/ConsoleApp/Program.cs

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
// See https://aka.ms/new-console-template for more information
2-
1+
using OpenTelemetry.Resources;
2+
using OpenTelemetry.Trace;
33
using ConsoleApp;
44
using ConsoleApp.Models.Configuration;
55
using ConsoleApp.Services;
@@ -8,8 +8,16 @@
88
using Microsoft.Extensions.Hosting;
99
using Microsoft.Identity.Client;
1010
using Serilog;
11+
using OpenTelemetry.Logs;
1112

1213
var builder = Host.CreateDefaultBuilder(args)
14+
.ConfigureAppConfiguration((hostContext, configBuilder) =>
15+
{
16+
configBuilder.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
17+
configBuilder.AddUserSecrets<Program>();
18+
configBuilder.AddEnvironmentVariables();
19+
configBuilder.AddCommandLine(args);
20+
})
1321
.ConfigureServices((hostContext, services) =>
1422
{
1523
services.AddHostedService<WorkerService>();
@@ -21,10 +29,23 @@
2129
{
2230
httpClient.BaseAddress = new Uri("https://graph.microsoft.com/");
2331
});
24-
})
25-
.ConfigureAppConfiguration((hostContext, configBuilder) =>
26-
{
27-
configBuilder.AddUserSecrets<Program>();
32+
33+
var otlpEndpoint = hostContext.Configuration.GetValue<string>("OpenTelemetry:OtlpEndpoint");
34+
35+
services.AddOpenTelemetry()
36+
.WithTracing(builder =>
37+
{
38+
builder
39+
.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(nameof(ConsoleApp)))
40+
.AddOtlpExporter(options =>
41+
{
42+
options.Endpoint = new Uri(otlpEndpoint);
43+
});
44+
})
45+
.WithLogging(builder =>
46+
{
47+
builder.AddConsoleExporter();
48+
});
2849
})
2950
.UseSerilog((context, configuration) =>
3051
{

src/ConsoleApp/Services/ClientCredentialService.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@ internal class ClientCredentialService(ILogger<ClientCredentialService> logger,
1515
{
1616
private readonly ILogger<ClientCredentialService> _logger = logger;
1717
private readonly IConfidentialClientApplication? _confidentialClientApplication =
18-
ConfidentialClientApplicationBuilder
19-
.CreateWithApplicationOptions(confidentialClientApplicationOptions.Value)
20-
.Build();
18+
confidentialClientApplicationOptions?.Value?.ClientId is not null
19+
? ConfidentialClientApplicationBuilder
20+
.CreateWithApplicationOptions(confidentialClientApplicationOptions.Value)
21+
.Build()
22+
: null;
2123

2224
public async Task<string> GetAccessToken(IEnumerable<string>? scopes = null)
2325
{

src/ConsoleApp/appsettings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,8 @@
3232
"ConsoleAppSettings": {
3333
"EntraEnabled": false,
3434
"WelcomeMessage": "Hello there from appsettings.json!"
35+
},
36+
"OpenTelemetry": {
37+
"OtlpEndpoint": "http://localhost:4317"
3538
}
3639
}

src/Directory.Packages.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.0-rc.2.24473.5" />
66
<PackageVersion Include="Microsoft.Identity.Client.Extensions.Msal" Version="4.66.1" />
77
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.0-rc.2.24473.5" />
8+
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.9.0" />
9+
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.9.0" />
10+
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.9.0" />
11+
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.9.0" />
812
<PackageVersion Include="Serilog" Version="4.1.0" />
913
<PackageVersion Include="Serilog.Extensions.Hosting" Version="8.0.0" />
1014
<PackageVersion Include="Serilog.Settings.Configuration" Version="8.0.4" />

0 commit comments

Comments
 (0)