Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<Deterministic>true</Deterministic>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<GenerateDocumentationFile>false</GenerateDocumentationFile>
<LangVersion>latest</LangVersion>
<NeutralLanguage>en-US</NeutralLanguage>
<!-- Disable warning about stable packages depending on prerelease packages until all OpenTelemetry dependencies are stable -->
<NoWarn>$(NoWarn);NU5104</NoWarn>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace Grafana.OpenTelemetry
/// <summary>
/// Helper class for Grafana Cloud configuration.
/// </summary>
internal class GrafanaCloudConfigurationHelper
internal sealed class GrafanaCloudConfigurationHelper
{
private const string PathExtensionTraces = "/v1/traces";
private const string PathExtensionMetrics = "/v1/metrics";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,8 @@
</AssemblyAttribute>
</ItemGroup>

<PropertyGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
<IsAotCompatible>true</IsAotCompatible>
</PropertyGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand All @@ -25,12 +25,12 @@ public GrafanaOpenTelemetryResourceDetector(GrafanaOpenTelemetrySettings setting

public Resource Detect()
{
var attributes = new List<KeyValuePair<string, object>>(new KeyValuePair<string, object>[]
{
var attributes = new List<KeyValuePair<string, object>>(
[
new KeyValuePair<string, object>(ResourceKey_DistroName, ResourceValue_DistroName),
new KeyValuePair<string, object>(ResourceKey_DistroVersion, GetDistroVersion()),
new KeyValuePair<string, object>(ResourceKey_DeploymentEnvironment, _settings.DeploymentEnvironment)
});
]);

attributes.AddRange(_settings.ResourceAttributes);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace Grafana.OpenTelemetry
{
internal class GrpcNetClientInitializer : InstrumentationInitializer
internal sealed class GrpcNetClientInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.GrpcNetClient;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace Grafana.OpenTelemetry
{
internal class HttpClientInitializer : InstrumentationInitializer
internal sealed class HttpClientInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.HttpClient;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,30 @@

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
ReflectionHelper.CallStaticMethod(
"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]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace Grafana.OpenTelemetry
{
internal class NetRuntimeMetricsInitializer : InstrumentationInitializer
internal sealed class NetRuntimeMetricsInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.NetRuntime;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace Grafana.OpenTelemetry
{
internal class ProcessMetricsInitializer : InstrumentationInitializer
internal sealed class ProcessMetricsInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.Process;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
}
}
}
Loading