[Otlp] Bump Google.Protobuf to 3.22.0 and remove reflection emit code (#4201)
This commit is contained in:
parent
a3ec494c4a
commit
f7f535866b
|
|
@ -33,7 +33,7 @@
|
||||||
<BenchmarkDotNetPkgVer>[0.13.3,0.14)</BenchmarkDotNetPkgVer>
|
<BenchmarkDotNetPkgVer>[0.13.3,0.14)</BenchmarkDotNetPkgVer>
|
||||||
<CommandLineParserPkgVer>[2.9.1,3.0)</CommandLineParserPkgVer>
|
<CommandLineParserPkgVer>[2.9.1,3.0)</CommandLineParserPkgVer>
|
||||||
<DotNetXUnitCliVer>[2.3.1,3.0)</DotNetXUnitCliVer>
|
<DotNetXUnitCliVer>[2.3.1,3.0)</DotNetXUnitCliVer>
|
||||||
<GoogleProtobufPkgVer>[3.19.4,4.0)</GoogleProtobufPkgVer>
|
<GoogleProtobufPkgVer>[3.22.0,4.0)</GoogleProtobufPkgVer>
|
||||||
<GrpcAspNetCorePkgVer>[2.50.0,3.0)</GrpcAspNetCorePkgVer>
|
<GrpcAspNetCorePkgVer>[2.50.0,3.0)</GrpcAspNetCorePkgVer>
|
||||||
<GrpcAspNetCoreServerPkgVer>[2.48.0, 3.0)</GrpcAspNetCoreServerPkgVer>
|
<GrpcAspNetCoreServerPkgVer>[2.48.0, 3.0)</GrpcAspNetCoreServerPkgVer>
|
||||||
<GrpcToolsPkgVer>[2.48.0,3.0)</GrpcToolsPkgVer>
|
<GrpcToolsPkgVer>[2.48.0,3.0)</GrpcToolsPkgVer>
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
Refer to https://docs.microsoft.com/nuget/concepts/package-versioning for semver syntax.
|
Refer to https://docs.microsoft.com/nuget/concepts/package-versioning for semver syntax.
|
||||||
-->
|
-->
|
||||||
<MinVerPkgVer>[4.2.0,5.0)</MinVerPkgVer>
|
<MinVerPkgVer>[4.2.0,5.0)</MinVerPkgVer>
|
||||||
<GoogleProtobufPkgVer>[3.19.4,4.0)</GoogleProtobufPkgVer>
|
<GoogleProtobufPkgVer>[3.22.0,4.0)</GoogleProtobufPkgVer>
|
||||||
<GrpcPkgVer>[2.44.0,3.0)</GrpcPkgVer>
|
<GrpcPkgVer>[2.44.0,3.0)</GrpcPkgVer>
|
||||||
<GrpcNetClientPkgVer>[2.43.0,3.0)</GrpcNetClientPkgVer>
|
<GrpcNetClientPkgVer>[2.43.0,3.0)</GrpcNetClientPkgVer>
|
||||||
<GrpcToolsPkgVer>[2.44.0,3.0)</GrpcToolsPkgVer>
|
<GrpcToolsPkgVer>[2.44.0,3.0)</GrpcToolsPkgVer>
|
||||||
|
|
@ -49,7 +49,6 @@
|
||||||
<StyleCopAnalyzersPkgVer>[1.2.0-beta.435,2.0)</StyleCopAnalyzersPkgVer>
|
<StyleCopAnalyzersPkgVer>[1.2.0-beta.435,2.0)</StyleCopAnalyzersPkgVer>
|
||||||
<SystemCollectionsImmutablePkgVer>1.4.0</SystemCollectionsImmutablePkgVer>
|
<SystemCollectionsImmutablePkgVer>1.4.0</SystemCollectionsImmutablePkgVer>
|
||||||
<SystemDiagnosticSourcePkgVer>7.0.0</SystemDiagnosticSourcePkgVer>
|
<SystemDiagnosticSourcePkgVer>7.0.0</SystemDiagnosticSourcePkgVer>
|
||||||
<SystemReflectionEmitLightweightPkgVer>4.7.0</SystemReflectionEmitLightweightPkgVer>
|
|
||||||
<SystemTextJsonPkgVer>4.7.2</SystemTextJsonPkgVer>
|
<SystemTextJsonPkgVer>4.7.2</SystemTextJsonPkgVer>
|
||||||
<SystemThreadingTasksExtensionsPkgVer>4.5.4</SystemThreadingTasksExtensionsPkgVer>
|
<SystemThreadingTasksExtensionsPkgVer>4.5.4</SystemThreadingTasksExtensionsPkgVer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,11 @@
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
* Bumped the version of `Google.Protobuf` used by the project to `3.22.0` so
|
||||||
|
that a new performance feature can be used instead of reflection. Removed the
|
||||||
|
dependency on `System.Reflection.Emit.Lightweight`.
|
||||||
|
([#4201](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4201))
|
||||||
|
|
||||||
## 1.4.0
|
## 1.4.0
|
||||||
|
|
||||||
Released 2023-Feb-24
|
Released 2023-Feb-24
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,8 @@
|
||||||
|
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Reflection;
|
|
||||||
using System.Reflection.Emit;
|
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using Google.Protobuf;
|
using Google.Protobuf;
|
||||||
using Google.Protobuf.Collections;
|
|
||||||
using OpenTelemetry.Internal;
|
using OpenTelemetry.Internal;
|
||||||
using OpenTelemetry.Proto.Collector.Trace.V1;
|
using OpenTelemetry.Proto.Collector.Trace.V1;
|
||||||
using OpenTelemetry.Proto.Common.V1;
|
using OpenTelemetry.Proto.Common.V1;
|
||||||
|
|
@ -34,7 +31,6 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
|
||||||
internal static class ActivityExtensions
|
internal static class ActivityExtensions
|
||||||
{
|
{
|
||||||
private static readonly ConcurrentBag<ScopeSpans> SpanListPool = new();
|
private static readonly ConcurrentBag<ScopeSpans> SpanListPool = new();
|
||||||
private static readonly Action<RepeatedField<Span>, int> RepeatedFieldOfSpanSetCountAction = CreateRepeatedFieldOfSpanSetCountAction();
|
|
||||||
|
|
||||||
internal static void AddBatch(
|
internal static void AddBatch(
|
||||||
this ExportTraceServiceRequest request,
|
this ExportTraceServiceRequest request,
|
||||||
|
|
@ -84,7 +80,7 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
|
||||||
|
|
||||||
foreach (var scope in resourceSpans.ScopeSpans)
|
foreach (var scope in resourceSpans.ScopeSpans)
|
||||||
{
|
{
|
||||||
RepeatedFieldOfSpanSetCountAction(scope.Spans, 0);
|
scope.Spans.Clear();
|
||||||
SpanListPool.Add(scope);
|
SpanListPool.Add(scope);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -297,27 +293,6 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
|
||||||
return otlpEvent;
|
return otlpEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Action<RepeatedField<Span>, int> CreateRepeatedFieldOfSpanSetCountAction()
|
|
||||||
{
|
|
||||||
FieldInfo repeatedFieldOfSpanCountField = typeof(RepeatedField<Span>).GetField("count", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
||||||
|
|
||||||
DynamicMethod dynamicMethod = new DynamicMethod(
|
|
||||||
"CreateSetCountAction",
|
|
||||||
null,
|
|
||||||
new[] { typeof(RepeatedField<Span>), typeof(int) },
|
|
||||||
typeof(ActivityExtensions).Module,
|
|
||||||
skipVisibility: true);
|
|
||||||
|
|
||||||
var generator = dynamicMethod.GetILGenerator();
|
|
||||||
|
|
||||||
generator.Emit(OpCodes.Ldarg_0);
|
|
||||||
generator.Emit(OpCodes.Ldarg_1);
|
|
||||||
generator.Emit(OpCodes.Stfld, repeatedFieldOfSpanCountField);
|
|
||||||
generator.Emit(OpCodes.Ret);
|
|
||||||
|
|
||||||
return (Action<RepeatedField<Span>, int>)dynamicMethod.CreateDelegate(typeof(Action<RepeatedField<Span>, int>));
|
|
||||||
}
|
|
||||||
|
|
||||||
private struct TagEnumerationState : PeerServiceResolver.IPeerServiceState
|
private struct TagEnumerationState : PeerServiceResolver.IPeerServiceState
|
||||||
{
|
{
|
||||||
public SdkLimitOptions SdkLimitOptions;
|
public SdkLimitOptions SdkLimitOptions;
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,6 @@
|
||||||
// </copyright>
|
// </copyright>
|
||||||
|
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using System.Reflection;
|
|
||||||
using System.Reflection.Emit;
|
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using Google.Protobuf.Collections;
|
using Google.Protobuf.Collections;
|
||||||
using OpenTelemetry.Metrics;
|
using OpenTelemetry.Metrics;
|
||||||
|
|
@ -30,7 +28,6 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
|
||||||
internal static class MetricItemExtensions
|
internal static class MetricItemExtensions
|
||||||
{
|
{
|
||||||
private static readonly ConcurrentBag<OtlpMetrics.ScopeMetrics> MetricListPool = new();
|
private static readonly ConcurrentBag<OtlpMetrics.ScopeMetrics> MetricListPool = new();
|
||||||
private static readonly Action<RepeatedField<OtlpMetrics.Metric>, int> RepeatedFieldOfMetricSetCountAction = CreateRepeatedFieldOfMetricSetCountAction();
|
|
||||||
|
|
||||||
internal static void AddMetrics(
|
internal static void AddMetrics(
|
||||||
this OtlpCollector.ExportMetricsServiceRequest request,
|
this OtlpCollector.ExportMetricsServiceRequest request,
|
||||||
|
|
@ -81,7 +78,7 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
|
||||||
|
|
||||||
foreach (var scope in resourceMetrics.ScopeMetrics)
|
foreach (var scope in resourceMetrics.ScopeMetrics)
|
||||||
{
|
{
|
||||||
RepeatedFieldOfMetricSetCountAction(scope.Metrics, 0);
|
scope.Metrics.Clear();
|
||||||
MetricListPool.Add(scope);
|
MetricListPool.Add(scope);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -338,26 +335,5 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation
|
||||||
return otlpExemplar;
|
return otlpExemplar;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private static Action<RepeatedField<OtlpMetrics.Metric>, int> CreateRepeatedFieldOfMetricSetCountAction()
|
|
||||||
{
|
|
||||||
FieldInfo repeatedFieldOfMetricCountField = typeof(RepeatedField<OtlpMetrics.Metric>).GetField("count", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
||||||
|
|
||||||
DynamicMethod dynamicMethod = new DynamicMethod(
|
|
||||||
"CreateSetCountAction",
|
|
||||||
null,
|
|
||||||
new[] { typeof(RepeatedField<OtlpMetrics.Metric>), typeof(int) },
|
|
||||||
typeof(MetricItemExtensions).Module,
|
|
||||||
skipVisibility: true);
|
|
||||||
|
|
||||||
var generator = dynamicMethod.GetILGenerator();
|
|
||||||
|
|
||||||
generator.Emit(OpCodes.Ldarg_0);
|
|
||||||
generator.Emit(OpCodes.Ldarg_1);
|
|
||||||
generator.Emit(OpCodes.Stfld, repeatedFieldOfMetricCountField);
|
|
||||||
generator.Emit(OpCodes.Ret);
|
|
||||||
|
|
||||||
return (Action<RepeatedField<OtlpMetrics.Metric>, int>)dynamicMethod.CreateDelegate(typeof(Action<RepeatedField<OtlpMetrics.Metric>, int>));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@
|
||||||
<PackageReference Include="Grpc" Version="$(GrpcPkgVer)" Condition="'$(TargetFramework)' == 'netstandard2.0' OR '$(TargetFramework)' == 'net462'" />
|
<PackageReference Include="Grpc" Version="$(GrpcPkgVer)" Condition="'$(TargetFramework)' == 'netstandard2.0' OR '$(TargetFramework)' == 'net462'" />
|
||||||
<PackageReference Include="Google.Protobuf" Version="$(GoogleProtobufPkgVer)" />
|
<PackageReference Include="Google.Protobuf" Version="$(GoogleProtobufPkgVer)" />
|
||||||
<PackageReference Include="Grpc.Tools" Version="$(GrpcToolsPkgVer)" PrivateAssets="all" />
|
<PackageReference Include="Grpc.Tools" Version="$(GrpcToolsPkgVer)" PrivateAssets="all" />
|
||||||
<PackageReference Include="System.Reflection.Emit.Lightweight" Version="$(SystemReflectionEmitLightweightPkgVer)" Condition="'$(TargetFramework)' != 'net6.0'" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue