Skip to content

Commit a9de355

Browse files
Addressed OpenTelemetry trim warnings
1 parent a49791c commit a9de355

File tree

4 files changed

+33
-6
lines changed

4 files changed

+33
-6
lines changed

src/Sentry.OpenTelemetry/Sentry.OpenTelemetry.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="OpenTelemetry" Version="1.5.0" />
19+
<!-- Version 1.6.0 is the minimum version that does not have trim warnings -->
20+
<PackageReference Include="OpenTelemetry" Version="1.6.0" />
2021
</ItemGroup>
2122

2223
<ItemGroup>

src/Sentry.OpenTelemetry/SentrySpanProcessor.cs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -463,9 +463,12 @@ private void GenerateSentryErrorsFromOtelSpan(Activity activity, IDictionary<str
463463
Exception exception;
464464
try
465465
{
466-
var type = Type.GetType(exceptionType)!;
467-
exception = (Exception)Activator.CreateInstance(type, message)!;
468-
exception.SetSentryMechanism("SentrySpanProcessor.ErrorSpan");
466+
if (CreatePoorMansException(exceptionType, message) is not {} poorMansException)
467+
{
468+
_options?.DiagnosticLogger?.LogWarning($"Unable to create poor man's exception with trimming enabled : {exceptionType}");
469+
continue;
470+
}
471+
exception = poorMansException;
469472
}
470473
catch
471474
{
@@ -491,4 +494,18 @@ private void GenerateSentryErrorsFromOtelSpan(Activity activity, IDictionary<str
491494
});
492495
}
493496
}
497+
498+
[UnconditionalSuppressMessage("Trimming", "IL2057", Justification = AotHelper.AvoidAtRuntime)]
499+
private static Exception? CreatePoorMansException(string exceptionType, string message)
500+
{
501+
if (AotHelper.IsTrimmed)
502+
{
503+
return null;
504+
}
505+
506+
var type = Type.GetType(exceptionType)!;
507+
var exception = (Exception)Activator.CreateInstance(type, message)!;
508+
exception.SetSentryMechanism("SentrySpanProcessor.ErrorSpan");
509+
return exception;
510+
}
494511
}

test/Sentry.OpenTelemetry.Tests/Sentry.OpenTelemetry.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="OpenTelemetry" Version="1.5.0" />
9-
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.5.0" />
8+
<PackageReference Include="OpenTelemetry" Version="1.6.0" />
9+
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.6.0" />
1010
</ItemGroup>
1111

1212
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">

test/Sentry.TrimTest/Sentry.TrimTest.csproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,22 @@
99
<!-- See https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/prepare-libraries-for-trimming#show-all-warnings-with-test-app -->
1010
<PublishTrimmed>true</PublishTrimmed>
1111
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
12+
<TrimmerSingleWarn>false</TrimmerSingleWarn>
1213
</PropertyGroup>
1314

1415
<ItemGroup>
1516
<ProjectReference Include="..\..\src\Sentry\Sentry.csproj" />
17+
<ProjectReference Include="..\..\src\Sentry.DiagnosticSource\Sentry.DiagnosticSource.csproj" />
18+
<ProjectReference Include="..\..\src\Sentry.Extensions.Logging\Sentry.Extensions.Logging.csproj" />
1619
<ProjectReference Include="..\..\src\Sentry.Maui\Sentry.Maui.csproj" />
20+
<ProjectReference Include="..\..\src\Sentry.OpenTelemetry\Sentry.OpenTelemetry.csproj" />
21+
<ProjectReference Include="..\..\src\Sentry.Serilog\Sentry.Serilog.csproj" />
1722
<TrimmerRootAssembly Include="Sentry" />
23+
<TrimmerRootAssembly Include="Sentry.DiagnosticSource" />
24+
<TrimmerRootAssembly Include="Sentry.Extensions.Logging" />
1825
<TrimmerRootAssembly Include="Sentry.Maui" />
26+
<TrimmerRootAssembly Include="Sentry.OpenTelemetry" />
27+
<TrimmerRootAssembly Include="Sentry.Serilog" />
1928
</ItemGroup>
2029

2130
</Project>

0 commit comments

Comments
 (0)