diff --git a/Directory.Build.props b/Directory.Build.props
index cd3b7614..0b7c00ad 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -9,6 +9,7 @@
true
true
false
+ latest
en-US
$(NoWarn);NU5104
diff --git a/src/Grafana.OpenTelemetry.Base/ExporterSettings/GrafanaCloudConfigurationHelper.cs b/src/Grafana.OpenTelemetry.Base/ExporterSettings/GrafanaCloudConfigurationHelper.cs
index df8bd0d8..f5a7f4e7 100644
--- a/src/Grafana.OpenTelemetry.Base/ExporterSettings/GrafanaCloudConfigurationHelper.cs
+++ b/src/Grafana.OpenTelemetry.Base/ExporterSettings/GrafanaCloudConfigurationHelper.cs
@@ -10,7 +10,7 @@ namespace Grafana.OpenTelemetry
///
/// Helper class for Grafana Cloud configuration.
///
- internal class GrafanaCloudConfigurationHelper
+ internal sealed class GrafanaCloudConfigurationHelper
{
private const string PathExtensionTraces = "/v1/traces";
private const string PathExtensionMetrics = "/v1/metrics";
diff --git a/src/Grafana.OpenTelemetry.Base/Grafana.OpenTelemetry.Base.csproj b/src/Grafana.OpenTelemetry.Base/Grafana.OpenTelemetry.Base.csproj
index e752e097..8db98bde 100644
--- a/src/Grafana.OpenTelemetry.Base/Grafana.OpenTelemetry.Base.csproj
+++ b/src/Grafana.OpenTelemetry.Base/Grafana.OpenTelemetry.Base.csproj
@@ -47,4 +47,8 @@
+
+ true
+
+
diff --git a/src/Grafana.OpenTelemetry.Base/GrafanaOpenTelemetryResourceDetector.cs b/src/Grafana.OpenTelemetry.Base/GrafanaOpenTelemetryResourceDetector.cs
index 44870b9e..7f2ba9a9 100644
--- a/src/Grafana.OpenTelemetry.Base/GrafanaOpenTelemetryResourceDetector.cs
+++ b/src/Grafana.OpenTelemetry.Base/GrafanaOpenTelemetryResourceDetector.cs
@@ -9,7 +9,7 @@
namespace Grafana.OpenTelemetry
{
- internal class GrafanaOpenTelemetryResourceDetector : IResourceDetector
+ internal sealed class GrafanaOpenTelemetryResourceDetector : IResourceDetector
{
internal const string ResourceKey_DistroName = "telemetry.distro.name";
internal const string ResourceKey_DistroVersion = "telemetry.distro.version";
@@ -25,12 +25,12 @@ public GrafanaOpenTelemetryResourceDetector(GrafanaOpenTelemetrySettings setting
public Resource Detect()
{
- var attributes = new List>(new KeyValuePair[]
- {
+ var attributes = new List>(
+ [
new KeyValuePair(ResourceKey_DistroName, ResourceValue_DistroName),
new KeyValuePair(ResourceKey_DistroVersion, GetDistroVersion()),
new KeyValuePair(ResourceKey_DeploymentEnvironment, _settings.DeploymentEnvironment)
- });
+ ]);
attributes.AddRange(_settings.ResourceAttributes);
diff --git a/src/Grafana.OpenTelemetry.Base/GrafanaOpenTelemetrySettings.cs b/src/Grafana.OpenTelemetry.Base/GrafanaOpenTelemetrySettings.cs
index 721559e5..40f10187 100644
--- a/src/Grafana.OpenTelemetry.Base/GrafanaOpenTelemetrySettings.cs
+++ b/src/Grafana.OpenTelemetry.Base/GrafanaOpenTelemetrySettings.cs
@@ -119,7 +119,7 @@ internal GrafanaOpenTelemetrySettings(IConfiguration configuration)
Instrumentations.Remove(Instrumentation.AWSLambda);
var disableInstrumentations = configuration[DisableInstrumentationsEnvVarName];
- char[] separators = new char[] { ',', ':' };
+ char[] separators = [',', ':'];
if (!string.IsNullOrEmpty(disableInstrumentations))
{
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/AWSInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/AWSInitializer.cs
index f4383def..4743cd84 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/AWSInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/AWSInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class AWSInitializer : InstrumentationInitializer
+ internal sealed class AWSInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.AWS;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.AWS")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.AWS",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddAWSInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/AWSLambdaInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/AWSLambdaInitializer.cs
index 831c2ebd..bd2e1ad5 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/AWSLambdaInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/AWSLambdaInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class AWSLambdaInitializer : InstrumentationInitializer
+ internal sealed class AWSLambdaInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.AWSLambda;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Instrumentation.AWSLambda.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.AWSLambda")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.AWSLambda",
"OpenTelemetry.Instrumentation.AWSLambda.TracerProviderBuilderExtensions",
"AddAWSLambdaConfigurations",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/AspNetCoreInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/AspNetCoreInitializer.cs
index 3ad9c61c..c1f4e6be 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/AspNetCoreInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/AspNetCoreInitializer.cs
@@ -8,26 +8,34 @@
namespace Grafana.OpenTelemetry
{
- internal class AspNetCoreInitializer : InstrumentationInitializer
+ internal sealed class AspNetCoreInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.AspNetCore;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.AspNetCoreInstrumentationTracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.AspNetCore")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.AspNetCore",
"OpenTelemetry.Trace.AspNetCoreInstrumentationTracerProviderBuilderExtensions",
"AddAspNetCoreInstrumentation",
- new object[] { builder });
+ [builder]);
}
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Metrics.AspNetCoreInstrumentationMeterProviderBuilderExtensions", "OpenTelemetry.Instrumentation.AspNetCore")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeMetrics(MeterProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.AspNetCore",
"OpenTelemetry.Metrics.AspNetCoreInstrumentationMeterProviderBuilderExtensions",
"AddAspNetCoreInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/AspNetInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/AspNetInitializer.cs
index e8d5bb0e..95035ce9 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/AspNetInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/AspNetInitializer.cs
@@ -8,26 +8,34 @@
namespace Grafana.OpenTelemetry
{
- internal class AspNetInitializer : InstrumentationInitializer
+ internal sealed class AspNetInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.AspNet;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.AspNet")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.AspNet",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddAspNetInstrumentation",
- new object[] { builder });
+ [builder]);
}
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Metrics.MeterProviderBuilderExtensions", "OpenTelemetry.Instrumentation.AspNet")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeMetrics(MeterProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.AspNet",
"OpenTelemetry.Metrics.MeterProviderBuilderExtensions",
"AddAspNetInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/CassandraInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/CassandraInitializer.cs
index b4a030e6..eea2f248 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/CassandraInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/CassandraInitializer.cs
@@ -8,17 +8,21 @@
namespace Grafana.OpenTelemetry
{
- internal class CassandraInitializer : InstrumentationInitializer
+ internal sealed class CassandraInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.Cassandra;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Metrics.MeterProviderBuilderExtensions", "OpenTelemetry.Instrumentation.Cassandra")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeMetrics(MeterProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.Cassandra",
"OpenTelemetry.Metrics.MeterProviderBuilderExtensions",
"AddCassandraInstrumentation",
- new object[] { builder });
+ [builder]);
}
protected override void InitializeTracing(TracerProviderBuilder builder)
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/ElasticsearchClientInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/ElasticsearchClientInitializer.cs
index ef9bdf14..657624bb 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/ElasticsearchClientInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/ElasticsearchClientInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class ElasticsearchClientInitializer : InstrumentationInitializer
+ internal sealed class ElasticsearchClientInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.ElasticsearchClient;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.ElasticsearchClient")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.ElasticsearchClient",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddElasticsearchClientInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/EntityFrameworkCoreInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/EntityFrameworkCoreInitializer.cs
index 5b736aa5..e9648c5d 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/EntityFrameworkCoreInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/EntityFrameworkCoreInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class EntityFrameworkCoreInitializer : InstrumentationInitializer
+ internal sealed class EntityFrameworkCoreInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.EntityFrameworkCore;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.EntityFrameworkCore")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.EntityFrameworkCore",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddEntityFrameworkCoreInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/GrpcNetClientInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/GrpcNetClientInitializer.cs
index 35b68152..f27b11ac 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/GrpcNetClientInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/GrpcNetClientInitializer.cs
@@ -7,7 +7,7 @@
namespace Grafana.OpenTelemetry
{
- internal class GrpcNetClientInitializer : InstrumentationInitializer
+ internal sealed class GrpcNetClientInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.GrpcNetClient;
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/HangfireInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/HangfireInitializer.cs
index 4b631386..76156d6d 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/HangfireInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/HangfireInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class HangfireInitializer : InstrumentationInitializer
+ internal sealed class HangfireInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.Hangfire;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.Hangfire")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.Hangfire",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddHangfireInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/HttpClientInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/HttpClientInitializer.cs
index 7812f153..fb9bed9e 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/HttpClientInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/HttpClientInitializer.cs
@@ -8,7 +8,7 @@
namespace Grafana.OpenTelemetry
{
- internal class HttpClientInitializer : InstrumentationInitializer
+ internal sealed class HttpClientInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.HttpClient;
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/MySqlDataInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/MySqlDataInitializer.cs
index a66946de..749b88fc 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/MySqlDataInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/MySqlDataInitializer.cs
@@ -7,10 +7,15 @@
namespace Grafana.OpenTelemetry
{
- internal class MySqlDataInitializer : InstrumentationInitializer
+ internal sealed class MySqlDataInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.MySqlData;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "MySQL.Data.OpenTelemetry")]
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.MySqlData")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
// MySQL.Data.OpenTelemetry
@@ -18,14 +23,14 @@ protected override void InitializeTracing(TracerProviderBuilder builder)
"MySQL.Data.OpenTelemetry",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddConnectorNet",
- new object[] { builder });
+ [builder]);
// OpenTelemetry.Instrumentation.MySqlData
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.MySqlData",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddMySqlDataInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/NetRuntimeMetricsInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/NetRuntimeMetricsInitializer.cs
index 6d7e8465..049788c5 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/NetRuntimeMetricsInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/NetRuntimeMetricsInitializer.cs
@@ -7,7 +7,7 @@
namespace Grafana.OpenTelemetry
{
- internal class NetRuntimeMetricsInitializer : InstrumentationInitializer
+ internal sealed class NetRuntimeMetricsInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.NetRuntime;
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/OwinInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/OwinInitializer.cs
index c557c7a7..2885a502 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/OwinInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/OwinInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class OwinInitializer : InstrumentationInitializer
+ internal sealed class OwinInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.Owin;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.Owin")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.Owin",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddOwinInstrumentation",
- new object[] { builder, null });
+ [builder, null]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/ProcessMetricsInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/ProcessMetricsInitializer.cs
index 65614f58..a5b6c917 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/ProcessMetricsInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/ProcessMetricsInitializer.cs
@@ -7,7 +7,7 @@
namespace Grafana.OpenTelemetry
{
- internal class ProcessMetricsInitializer : InstrumentationInitializer
+ internal sealed class ProcessMetricsInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.Process;
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/QuartzInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/QuartzInitializer.cs
index 9403fcee..e94436ae 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/QuartzInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/QuartzInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class QuartzInitializer : InstrumentationInitializer
+ internal sealed class QuartzInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.Quartz;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TraceProviderBuilderExtensions", "OpenTelemetry.Instrumentation.Quartz")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.Quartz",
"OpenTelemetry.Trace.TraceProviderBuilderExtensions",
"AddQuartzInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/SqlClientInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/SqlClientInitializer.cs
index 501dfd3d..0ba8b0b3 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/SqlClientInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/SqlClientInitializer.cs
@@ -11,7 +11,7 @@ namespace Grafana.OpenTelemetry
#if NET
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Trimming is not yet supported with SqlClient instrumentation.")]
#endif
- internal class SqlClientInitializer : InstrumentationInitializer
+ internal sealed class SqlClientInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.SqlClient;
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/StackExchangeRedisInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/StackExchangeRedisInitializer.cs
index d98ee918..6a2c8e03 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/StackExchangeRedisInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/StackExchangeRedisInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class StackExchangeRedisInitializer : InstrumentationInitializer
+ internal sealed class StackExchangeRedisInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.StackExchangeRedis;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.StackExchangeRedis")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.StackExchangeRedis",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddRedisInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/Instrumentations/WcfInitializer.cs b/src/Grafana.OpenTelemetry.Base/Instrumentations/WcfInitializer.cs
index ddf5e14e..0cc47015 100644
--- a/src/Grafana.OpenTelemetry.Base/Instrumentations/WcfInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/Instrumentations/WcfInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class WcfInitializer : InstrumentationInitializer
+ internal sealed class WcfInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.Wcf;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Trace.TracerProviderBuilderExtensions", "OpenTelemetry.Instrumentation.Wcf")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override void InitializeTracing(TracerProviderBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Instrumentation.Wcf",
"OpenTelemetry.Trace.TracerProviderBuilderExtensions",
"AddWcfInstrumentation",
- new object[] { builder });
+ [builder]);
}
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/ReflectionHelper.cs b/src/Grafana.OpenTelemetry.Base/ReflectionHelper.cs
index ce4ac384..a39bd909 100644
--- a/src/Grafana.OpenTelemetry.Base/ReflectionHelper.cs
+++ b/src/Grafana.OpenTelemetry.Base/ReflectionHelper.cs
@@ -10,11 +10,14 @@ namespace Grafana.OpenTelemetry
{
internal static class ReflectionHelper
{
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")]
+#endif
internal static void CallStaticMethod(string assemblyName, string typeName, string methodName, object[] arguments)
{
var assembly = Assembly.Load(assemblyName);
var type = assembly.GetType(typeName);
- var method = type.GetMethod(methodName, arguments.Select(obj => obj is null ? null : obj.GetType()).ToArray());
+ var method = type.GetMethod(methodName, [.. arguments.Select(obj => obj?.GetType())]);
method.Invoke(null, arguments);
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEBSDetectorInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEBSDetectorInitializer.cs
index c8e9b122..7e8daf0d 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEBSDetectorInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEBSDetectorInitializer.cs
@@ -8,17 +8,21 @@
namespace Grafana.OpenTelemetry
{
- internal class AWSEBSDetectorInitializer : ResourceDetectorInitializer
+ internal sealed class AWSEBSDetectorInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.AWSEBS;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Resources.AWSResourceBuilderExtensions", "OpenTelemetry.Resources.AWS")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override ResourceBuilder InitializeResourceDetector(ResourceBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Resources.AWS",
"OpenTelemetry.Resources.AWSResourceBuilderExtensions",
"AddAWSEBSDetector",
- new object[] { builder });
+ [builder]);
return builder;
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEC2DetectorInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEC2DetectorInitializer.cs
index cfd1dd05..dd50df34 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEC2DetectorInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEC2DetectorInitializer.cs
@@ -8,17 +8,21 @@
namespace Grafana.OpenTelemetry
{
- internal class AWSEC2DetectorInitializer : ResourceDetectorInitializer
+ internal sealed class AWSEC2DetectorInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.AWSEC2;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Resources.AWSResourceBuilderExtensions", "OpenTelemetry.Resources.AWS")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override ResourceBuilder InitializeResourceDetector(ResourceBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Resources.AWS",
"OpenTelemetry.Resources.AWSResourceBuilderExtensions",
"AddAWSEC2Detector",
- new object[] { builder });
+ [builder]);
return builder;
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSECSDetectorInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSECSDetectorInitializer.cs
index 37ed56d6..2f1a5185 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSECSDetectorInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSECSDetectorInitializer.cs
@@ -8,17 +8,21 @@
namespace Grafana.OpenTelemetry
{
- internal class AWSECSDetectorInitializer : ResourceDetectorInitializer
+ internal sealed class AWSECSDetectorInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.AWSECS;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Resources.AWSResourceBuilderExtensions", "OpenTelemetry.Resources.AWS")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override ResourceBuilder InitializeResourceDetector(ResourceBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Resources.AWS",
"OpenTelemetry.Resources.AWSResourceBuilderExtensions",
"AddAWSECSDetector",
- new object[] { builder });
+ [builder]);
return builder;
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEKSDetectorInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEKSDetectorInitializer.cs
index 030192cc..1145f7b1 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEKSDetectorInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AWSEKSDetectorInitializer.cs
@@ -8,17 +8,21 @@
namespace Grafana.OpenTelemetry
{
- internal class AWSEKSDetectorInitializer : ResourceDetectorInitializer
+ internal sealed class AWSEKSDetectorInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.AWSEKS;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Resources.AWSResourceBuilderExtensions", "OpenTelemetry.Resources.AWS")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override ResourceBuilder InitializeResourceDetector(ResourceBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Resources.AWS",
"OpenTelemetry.Resources.AWSResourceBuilderExtensions",
"AddAWSEKSDetector",
- new object[] { builder });
+ [builder]);
return builder;
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureAppServiceDetectorInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureAppServiceDetectorInitializer.cs
index eaaffe1e..68f536c3 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureAppServiceDetectorInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureAppServiceDetectorInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class AzureAppServiceDetectorInitializer : ResourceDetectorInitializer
+ internal sealed class AzureAppServiceDetectorInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.AzureAppService;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Resources.AzureResourceBuilderExtensions", "OpenTelemetry.Resources.Azure")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override ResourceBuilder InitializeResourceDetector(ResourceBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Resources.Azure",
"OpenTelemetry.Resources.AzureResourceBuilderExtensions",
"AddAzureAppServiceDetector",
- new object[] { builder });
+ [builder]);
return builder;
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureContainerAppsDetectorInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureContainerAppsDetectorInitializer.cs
index e2beecc3..f006f6bb 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureContainerAppsDetectorInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureContainerAppsDetectorInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class AzureContainerAppsDetectorInitializer : ResourceDetectorInitializer
+ internal sealed class AzureContainerAppsDetectorInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.AzureContainerApps;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Resources.AzureResourceBuilderExtensions", "OpenTelemetry.Resources.Azure")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override ResourceBuilder InitializeResourceDetector(ResourceBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Resources.Azure",
"OpenTelemetry.Resources.AzureResourceBuilderExtensions",
"AddAzureContainerAppsDetector",
- new object[] { builder });
+ [builder]);
return builder;
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureVMDetectorInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureVMDetectorInitializer.cs
index dcff5ffd..eaa38e12 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureVMDetectorInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/AzureVMDetectorInitializer.cs
@@ -7,17 +7,21 @@
namespace Grafana.OpenTelemetry
{
- internal class AzureVMDetectorInitializer : ResourceDetectorInitializer
+ internal sealed class AzureVMDetectorInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.AzureVM;
+#if NET8_0_OR_GREATER
+ [System.Diagnostics.CodeAnalysis.DynamicDependency(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All, "OpenTelemetry.Resources.AzureResourceBuilderExtensions", "OpenTelemetry.Resources.Azure")]
+ [System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessage(TrimWarnings.Category, TrimWarnings.CheckId, Justification = TrimWarnings.Justification)]
+#endif
protected override ResourceBuilder InitializeResourceDetector(ResourceBuilder builder)
{
ReflectionHelper.CallStaticMethod(
"OpenTelemetry.Resources.Azure",
"OpenTelemetry.Resources.AzureResourceBuilderExtensions",
"AddAzureVMDetector",
- new object[] { builder });
+ [builder]);
return builder;
}
}
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ContainerResource.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ContainerResource.cs
index d61f9c99..c297a91e 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ContainerResource.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ContainerResource.cs
@@ -9,7 +9,7 @@
namespace Grafana.OpenTelemetry
{
- internal class ContainerResourceInitializer : ResourceDetectorInitializer
+ internal sealed class ContainerResourceInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.Container;
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/HostDetectorInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/HostDetectorInitializer.cs
index d8af6d70..767ba5d0 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/HostDetectorInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/HostDetectorInitializer.cs
@@ -9,7 +9,7 @@
namespace Grafana.OpenTelemetry
{
- internal class HostResourceInitializer : ResourceDetectorInitializer
+ internal sealed class HostResourceInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.Host;
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/OperatingSystemResourceInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/OperatingSystemResourceInitializer.cs
index 253a67d2..57f3098e 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/OperatingSystemResourceInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/OperatingSystemResourceInitializer.cs
@@ -9,7 +9,7 @@
namespace Grafana.OpenTelemetry
{
- internal class OperatingSystemResourceInitializer : ResourceDetectorInitializer
+ internal sealed class OperatingSystemResourceInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.OperatingSystem;
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ProcessResourceInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ProcessResourceInitializer.cs
index 3ecf8ea2..1b5181e7 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ProcessResourceInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ProcessResourceInitializer.cs
@@ -9,7 +9,7 @@
namespace Grafana.OpenTelemetry
{
- internal class ProcessResourceInitializer : ResourceDetectorInitializer
+ internal sealed class ProcessResourceInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.Process;
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ProcessRuntimeResource.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ProcessRuntimeResource.cs
index 9350352f..886fc0b2 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ProcessRuntimeResource.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ProcessRuntimeResource.cs
@@ -9,7 +9,7 @@
namespace Grafana.OpenTelemetry
{
- internal class ProcessRuntimeResourceInitializer : ResourceDetectorInitializer
+ internal sealed class ProcessRuntimeResourceInitializer : ResourceDetectorInitializer
{
public override ResourceDetector Id { get; } = ResourceDetector.ProcessRuntime;
diff --git a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ResourceDetectorInitializer.cs b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ResourceDetectorInitializer.cs
index fd7e27f8..6d40c502 100644
--- a/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ResourceDetectorInitializer.cs
+++ b/src/Grafana.OpenTelemetry.Base/ResourceDetectors/ResourceDetectorInitializer.cs
@@ -12,8 +12,8 @@ namespace Grafana.OpenTelemetry
{
internal abstract class ResourceDetectorInitializer
{
- public static readonly ResourceDetectorInitializer[] Initializers = new ResourceDetectorInitializer[]
- {
+ public static readonly ResourceDetectorInitializer[] Initializers =
+ [
#if !NETSTANDARD
new AWSEBSDetectorInitializer(),
new AWSEC2DetectorInitializer(),
@@ -34,7 +34,7 @@ internal abstract class ResourceDetectorInitializer
new ProcessResourceInitializer(),
new ProcessRuntimeResourceInitializer()
#endif
- };
+ ];
public abstract ResourceDetector Id { get; }
diff --git a/src/Grafana.OpenTelemetry.Base/TrimWarnings.cs b/src/Grafana.OpenTelemetry.Base/TrimWarnings.cs
new file mode 100644
index 00000000..7f8175b3
--- /dev/null
+++ b/src/Grafana.OpenTelemetry.Base/TrimWarnings.cs
@@ -0,0 +1,12 @@
+#if NET8_0_OR_GREATER
+
+namespace Grafana.OpenTelemetry;
+
+internal static class TrimWarnings
+{
+ internal const string Category = "ReflectionAnalysis";
+ internal const string CheckId = "IL2026:RequiresUnreferencedCode";
+ internal const string Justification = "[DynamicDependency] is used to preserve members.";
+}
+
+#endif
diff --git a/src/Grafana.OpenTelemetry/Grafana.OpenTelemetry.csproj b/src/Grafana.OpenTelemetry/Grafana.OpenTelemetry.csproj
index 8ad90f6b..6b97d06c 100644
--- a/src/Grafana.OpenTelemetry/Grafana.OpenTelemetry.csproj
+++ b/src/Grafana.OpenTelemetry/Grafana.OpenTelemetry.csproj
@@ -57,4 +57,8 @@
+
+ true
+
+
diff --git a/tests/Grafana.OpenTelemetry.Tests/ReflectionHelperTest.cs b/tests/Grafana.OpenTelemetry.Tests/ReflectionHelperTest.cs
index 5878e990..8b074212 100644
--- a/tests/Grafana.OpenTelemetry.Tests/ReflectionHelperTest.cs
+++ b/tests/Grafana.OpenTelemetry.Tests/ReflectionHelperTest.cs
@@ -26,7 +26,7 @@ public void CallStaticMethod()
typeof(ReflectionHelperTest).Assembly.GetName().Name,
"Grafana.OpenTelemetry.Tests.ReflectionHelperTest",
"Increment",
- new object[] { 4 });
+ [4]);
Assert.Equal(4, Counter);
}
@@ -40,7 +40,7 @@ public void CallStaticMethodThrow()
typeof(ReflectionHelperTest).Assembly.GetName().Name,
"Not-exist",
"Not-exist",
- new object[] { 4 });
+ [4]);
});
}
}