Skip to content

Commit e119e84

Browse files
Merge pull request #7575 from Particular/samples-open-telemetry-logging-net10
Upgrade Open-Telemetry Logging Sample to .NET 10
2 parents 7a98247 + 510be54 commit e119e84

File tree

7 files changed

+125
-0
lines changed

7 files changed

+125
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<Project Sdk="Microsoft.NET.Sdk.Worker">
2+
<PropertyGroup>
3+
<OutputType>Exe</OutputType>
4+
<TargetFramework>net10.0</TargetFramework>
5+
<LangVersion>preview</LangVersion>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
</PropertyGroup>
8+
<ItemGroup>
9+
<PackageReference Include="NServiceBus" Version="10.0.0-alpha.1" />
10+
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="4.0.0-alpha.1" />
11+
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.*" />
12+
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.*" />
13+
</ItemGroup>
14+
</Project>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class MessageGenerator(IMessageSession messageSession) : BackgroundService
2+
{
3+
protected override async Task ExecuteAsync(CancellationToken cancellationToken)
4+
{
5+
try
6+
{
7+
var number = 0;
8+
while (!cancellationToken.IsCancellationRequested)
9+
{
10+
await messageSession.SendLocal(new MyMessage { Number = number++ }, cancellationToken);
11+
12+
await Task.Delay(1000, cancellationToken);
13+
}
14+
}
15+
catch (OperationCanceledException)
16+
{
17+
// graceful shutdown
18+
}
19+
}
20+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
public class MyMessage : ICommand
2+
{
3+
public int Number { get; set; }
4+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
public class MyMessageHandler(ILogger<MyMessageHandler> logger) : IHandleMessages<MyMessage>
2+
{
3+
public Task Handle(MyMessage message, IMessageHandlerContext context)
4+
{
5+
#region log-statement
6+
7+
logger.LogInformation("Received message #{Number}", message.Number);
8+
9+
#endregion
10+
11+
return Task.CompletedTask;
12+
}
13+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
using OpenTelemetry.Logs;
2+
using OpenTelemetry.Resources;
3+
using OpenTelemetry.Trace;
4+
5+
var endpointName = "Samples.OpenTelemetry.MyEndpoint";
6+
7+
var builder = Host.CreateApplicationBuilder(args);
8+
9+
#region otel-config
10+
11+
builder.Services.AddOpenTelemetry()
12+
.ConfigureResource(resourceBuilder => resourceBuilder.AddService(endpointName))
13+
.WithTracing(traceBuilder =>
14+
{
15+
traceBuilder.AddSource("NServiceBus.*");
16+
traceBuilder.AddConsoleExporter();
17+
});
18+
19+
#endregion
20+
21+
#region otel-logging
22+
23+
builder.Logging.AddOpenTelemetry(loggingOptions =>
24+
{
25+
loggingOptions.IncludeFormattedMessage = true;
26+
loggingOptions.IncludeScopes = true;
27+
loggingOptions.ParseStateValues = true;
28+
loggingOptions.AddConsoleExporter();
29+
});
30+
31+
#endregion
32+
33+
#region otel-nsb-config
34+
35+
var endpointConfiguration = new EndpointConfiguration(endpointName);
36+
37+
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
38+
endpointConfiguration.UseTransport(new LearningTransport());
39+
40+
endpointConfiguration.EnableOpenTelemetry();
41+
42+
builder.UseNServiceBus(endpointConfiguration);
43+
44+
#endregion
45+
46+
builder.Services.AddHostedService<MessageGenerator>();
47+
48+
var host = builder.Build();
49+
50+
await host.RunAsync();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Microsoft Visual Studio Solution File, Format Version 12.00
2+
# Visual Studio Version 16
3+
VisualStudioVersion = 15.0.26124.0
4+
MinimumVisualStudioVersion = 15.0.26730.12
5+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GenericHost", "GenericHost\GenericHost.csproj", "{374C998C-DE36-4F61-89AB-C11BF65633A2}"
6+
EndProject
7+
Global
8+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
9+
Debug|Any CPU = Debug|Any CPU
10+
Debug|x64 = Debug|x64
11+
Debug|x86 = Debug|x86
12+
EndGlobalSection
13+
GlobalSection(SolutionProperties) = preSolution
14+
HideSolutionNode = FALSE
15+
EndGlobalSection
16+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
17+
{374C998C-DE36-4F61-89AB-C11BF65633A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
18+
{374C998C-DE36-4F61-89AB-C11BF65633A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
19+
{374C998C-DE36-4F61-89AB-C11BF65633A2}.Debug|x64.ActiveCfg = Debug|Any CPU
20+
{374C998C-DE36-4F61-89AB-C11BF65633A2}.Debug|x64.Build.0 = Debug|Any CPU
21+
{374C998C-DE36-4F61-89AB-C11BF65633A2}.Debug|x86.ActiveCfg = Debug|Any CPU
22+
{374C998C-DE36-4F61-89AB-C11BF65633A2}.Debug|x86.Build.0 = Debug|Any CPU
23+
EndGlobalSection
24+
EndGlobal

samples/open-telemetry/logging/Core_10/prerelease.txt

Whitespace-only changes.

0 commit comments

Comments
 (0)