Replace use of TestExporter with InMemoryExporter (#2562)
This commit is contained in:
parent
4f930d5074
commit
c085504462
|
|
@ -19,6 +19,7 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc.Testing;
|
||||
using OpenTelemetry.Exporter;
|
||||
using OpenTelemetry.Metrics;
|
||||
using OpenTelemetry.Tests;
|
||||
using OpenTelemetry.Trace;
|
||||
|
|
@ -57,15 +58,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
|
|||
public async Task RequestMetricIsCaptured()
|
||||
{
|
||||
var metricItems = new List<Metric>();
|
||||
var metricExporter = new TestExporter<Metric>(ProcessExport);
|
||||
|
||||
void ProcessExport(Batch<Metric> batch)
|
||||
{
|
||||
foreach (var metricItem in batch)
|
||||
{
|
||||
metricItems.Add(metricItem);
|
||||
}
|
||||
}
|
||||
var metricExporter = new InMemoryExporter<Metric>(metricItems);
|
||||
|
||||
var metricReader = new BaseExportingMetricReader(metricExporter)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -16,11 +16,15 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="$(RepoRoot)\src\OpenTelemetry.Exporter.InMemory\OpenTelemetry.Exporter.InMemory.csproj" />
|
||||
<ProjectReference Include="$(RepoRoot)\src\OpenTelemetry.Instrumentation.AspNetCore\OpenTelemetry.Instrumentation.AspNetCore.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(RepoRoot)\test\OpenTelemetry.Tests\Shared\EventSourceTestHelper.cs" Link="EventSourceTestHelper.cs" />
|
||||
<Compile Include="$(RepoRoot)\test\OpenTelemetry.Tests\Shared\InMemoryEventListener.cs" Link="InMemoryEventListener.cs" />
|
||||
<Compile Include="$(RepoRoot)\test\OpenTelemetry.Tests\Shared\TestEventListener.cs" Link="TestEventListener.cs" />
|
||||
<Compile Include="$(RepoRoot)\test\OpenTelemetry.Tests\Shared\TestExporter.cs" Link="TestExporter.cs" />
|
||||
<Compile Include="$(RepoRoot)\test\OpenTelemetry.Tests\Shared\InMemoryEventListener.cs" Link="InMemoryEventListener.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ using System.Reflection;
|
|||
using System.Threading.Tasks;
|
||||
using Moq;
|
||||
using Newtonsoft.Json;
|
||||
using OpenTelemetry.Exporter;
|
||||
using OpenTelemetry.Metrics;
|
||||
using OpenTelemetry.Tests;
|
||||
using OpenTelemetry.Trace;
|
||||
|
|
@ -55,15 +56,7 @@ namespace OpenTelemetry.Instrumentation.Http.Tests
|
|||
tc.Url = HttpTestData.NormalizeValues(tc.Url, host, port);
|
||||
|
||||
var metricItems = new List<Metric>();
|
||||
var metricExporter = new TestExporter<Metric>(ProcessExport);
|
||||
|
||||
void ProcessExport(Batch<Metric> batch)
|
||||
{
|
||||
foreach (var metricItem in batch)
|
||||
{
|
||||
metricItems.Add(metricItem);
|
||||
}
|
||||
}
|
||||
var metricExporter = new InMemoryExporter<Metric>(metricItems);
|
||||
|
||||
var metricReader = new BaseExportingMetricReader(metricExporter)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="$(RepoRoot)\src\OpenTelemetry.Instrumentation.Http\OpenTelemetry.Instrumentation.Http.csproj" />
|
||||
<ProjectReference Include="$(RepoRoot)\src\OpenTelemetry.Exporter.InMemory\OpenTelemetry.Exporter.InMemory.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ using System.Collections.Generic;
|
|||
using System.Diagnostics;
|
||||
using System.Diagnostics.Metrics;
|
||||
using System.Threading;
|
||||
using OpenTelemetry.Exporter;
|
||||
using OpenTelemetry.Tests;
|
||||
using Xunit;
|
||||
using Xunit.Abstractions;
|
||||
|
|
@ -117,16 +118,7 @@ namespace OpenTelemetry.Metrics.Tests
|
|||
public void StreamNamesDuplicatesAreNotAllowedTest(AggregationTemporality temporality)
|
||||
{
|
||||
var metricItems = new List<Metric>();
|
||||
int metricCount = 0;
|
||||
var metricExporter = new TestExporter<Metric>(ProcessExport);
|
||||
|
||||
void ProcessExport(Batch<Metric> batch)
|
||||
{
|
||||
foreach (var metric in batch)
|
||||
{
|
||||
metricCount++;
|
||||
}
|
||||
}
|
||||
var metricExporter = new InMemoryExporter<Metric>(metricItems);
|
||||
|
||||
var metricReader = new BaseExportingMetricReader(metricExporter)
|
||||
{
|
||||
|
|
@ -144,25 +136,25 @@ namespace OpenTelemetry.Metrics.Tests
|
|||
var counterLong = meter1.CreateCounter<long>("name1");
|
||||
counterLong.Add(10);
|
||||
metricReader.Collect();
|
||||
Assert.Equal(1, metricCount);
|
||||
Assert.Single(metricItems);
|
||||
|
||||
// The following will be ignored as
|
||||
// metric of same name exists.
|
||||
// Metric stream will remain one.
|
||||
var anotherCounterSameName = meter1.CreateCounter<long>("name1");
|
||||
anotherCounterSameName.Add(10);
|
||||
metricCount = 0;
|
||||
metricItems.Clear();
|
||||
metricReader.Collect();
|
||||
Assert.Equal(1, metricCount);
|
||||
Assert.Single(metricItems);
|
||||
|
||||
// The following will also be ignored
|
||||
// as the name is same.
|
||||
// (the Meter name is not part of stream name)
|
||||
var anotherCounterSameNameDiffMeter = meter2.CreateCounter<long>("name1");
|
||||
anotherCounterSameNameDiffMeter.Add(10);
|
||||
metricCount = 0;
|
||||
metricItems.Clear();
|
||||
metricReader.Collect();
|
||||
Assert.Equal(1, metricCount);
|
||||
Assert.Single(metricItems);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
|
|
@ -267,15 +259,7 @@ namespace OpenTelemetry.Metrics.Tests
|
|||
public void CounterAggregationTest(bool exportDelta)
|
||||
{
|
||||
var metricItems = new List<Metric>();
|
||||
var metricExporter = new TestExporter<Metric>(ProcessExport);
|
||||
|
||||
void ProcessExport(Batch<Metric> batch)
|
||||
{
|
||||
foreach (var metricItem in batch)
|
||||
{
|
||||
metricItems.Add(metricItem);
|
||||
}
|
||||
}
|
||||
var metricExporter = new InMemoryExporter<Metric>(metricItems);
|
||||
|
||||
var metricReader = new BaseExportingMetricReader(metricExporter)
|
||||
{
|
||||
|
|
@ -343,15 +327,7 @@ namespace OpenTelemetry.Metrics.Tests
|
|||
{
|
||||
var meterName = "TestMeter" + exportDelta;
|
||||
var metricItems = new List<Metric>();
|
||||
var metricExporter = new TestExporter<Metric>(ProcessExport);
|
||||
|
||||
void ProcessExport(Batch<Metric> batch)
|
||||
{
|
||||
foreach (var metricItem in batch)
|
||||
{
|
||||
metricItems.Add(metricItem);
|
||||
}
|
||||
}
|
||||
var metricExporter = new InMemoryExporter<Metric>(metricItems);
|
||||
|
||||
var metricReader = new BaseExportingMetricReader(metricExporter)
|
||||
{
|
||||
|
|
@ -409,18 +385,21 @@ namespace OpenTelemetry.Metrics.Tests
|
|||
public void TestMetricPointCap(AggregationTemporality temporality)
|
||||
{
|
||||
var metricItems = new List<Metric>();
|
||||
int metricPointCount = 0;
|
||||
var metricExporter = new TestExporter<Metric>(ProcessExport);
|
||||
var metricExporter = new InMemoryExporter<Metric>(metricItems);
|
||||
|
||||
void ProcessExport(Batch<Metric> batch)
|
||||
int MetricPointCount()
|
||||
{
|
||||
foreach (var metric in batch)
|
||||
var count = 0;
|
||||
|
||||
foreach (var metric in metricItems)
|
||||
{
|
||||
foreach (ref var metricPoint in metric.GetMetricPoints())
|
||||
{
|
||||
metricPointCount++;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
var metricReader = new BaseExportingMetricReader(metricExporter)
|
||||
|
|
@ -445,34 +424,26 @@ namespace OpenTelemetry.Metrics.Tests
|
|||
}
|
||||
|
||||
metricReader.Collect();
|
||||
Assert.Equal(AggregatorStore.MaxMetricPoints, metricPointCount);
|
||||
Assert.Equal(AggregatorStore.MaxMetricPoints, MetricPointCount());
|
||||
|
||||
metricPointCount = 0;
|
||||
metricItems.Clear();
|
||||
metricReader.Collect();
|
||||
Assert.Equal(AggregatorStore.MaxMetricPoints, metricPointCount);
|
||||
Assert.Equal(AggregatorStore.MaxMetricPoints, MetricPointCount());
|
||||
|
||||
// These updates would be dropped.
|
||||
counterLong.Add(10, new KeyValuePair<string, object>("key", "valueA"));
|
||||
counterLong.Add(10, new KeyValuePair<string, object>("key", "valueB"));
|
||||
counterLong.Add(10, new KeyValuePair<string, object>("key", "valueC"));
|
||||
metricPointCount = 0;
|
||||
metricItems.Clear();
|
||||
metricReader.Collect();
|
||||
Assert.Equal(AggregatorStore.MaxMetricPoints, metricPointCount);
|
||||
Assert.Equal(AggregatorStore.MaxMetricPoints, MetricPointCount());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MultithreadedLongCounterTest()
|
||||
{
|
||||
var metricItems = new List<Metric>();
|
||||
var metricExporter = new TestExporter<Metric>(ProcessExport);
|
||||
|
||||
void ProcessExport(Batch<Metric> batch)
|
||||
{
|
||||
foreach (var metricItem in batch)
|
||||
{
|
||||
metricItems.Add(metricItem);
|
||||
}
|
||||
}
|
||||
var metricExporter = new InMemoryExporter<Metric>(metricItems);
|
||||
|
||||
var metricReader = new BaseExportingMetricReader(metricExporter)
|
||||
{
|
||||
|
|
@ -533,15 +504,7 @@ namespace OpenTelemetry.Metrics.Tests
|
|||
public void MultithreadedDoubleCounterTest()
|
||||
{
|
||||
var metricItems = new List<Metric>();
|
||||
var metricExporter = new TestExporter<Metric>(ProcessExport);
|
||||
|
||||
void ProcessExport(Batch<Metric> batch)
|
||||
{
|
||||
foreach (var metricItem in batch)
|
||||
{
|
||||
metricItems.Add(metricItem);
|
||||
}
|
||||
}
|
||||
var metricExporter = new InMemoryExporter<Metric>(metricItems);
|
||||
|
||||
var metricReader = new BaseExportingMetricReader(metricExporter)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@
|
|||
// limitations under the License.
|
||||
// </copyright>
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using OpenTelemetry.Exporter;
|
||||
using OpenTelemetry.Tests;
|
||||
using Xunit;
|
||||
|
||||
|
|
@ -28,7 +30,8 @@ namespace OpenTelemetry.Trace.Tests
|
|||
public void ExportProcessorIgnoresActivityWhenDropped()
|
||||
{
|
||||
var sampler = new AlwaysOffSampler();
|
||||
var processor = new TestActivityExportProcessor(new TestExporter<Activity>(_ => { }));
|
||||
var exportedItems = new List<Activity>();
|
||||
var processor = new TestActivityExportProcessor(new InMemoryExporter<Activity>(exportedItems));
|
||||
using var activitySource = new ActivitySource(ActivitySourceName);
|
||||
using var sdk = Sdk.CreateTracerProviderBuilder()
|
||||
.AddSource(ActivitySourceName)
|
||||
|
|
@ -49,7 +52,8 @@ namespace OpenTelemetry.Trace.Tests
|
|||
public void ExportProcessorIgnoresActivityMarkedAsRecordOnly()
|
||||
{
|
||||
var sampler = new RecordOnlySampler();
|
||||
var processor = new TestActivityExportProcessor(new TestExporter<Activity>(_ => { }));
|
||||
var exportedItems = new List<Activity>();
|
||||
var processor = new TestActivityExportProcessor(new InMemoryExporter<Activity>(exportedItems));
|
||||
using var activitySource = new ActivitySource(ActivitySourceName);
|
||||
using var sdk = Sdk.CreateTracerProviderBuilder()
|
||||
.AddSource(ActivitySourceName)
|
||||
|
|
@ -70,7 +74,8 @@ namespace OpenTelemetry.Trace.Tests
|
|||
public void ExportProcessorExportsActivityMarkedAsRecordAndSample()
|
||||
{
|
||||
var sampler = new AlwaysOnSampler();
|
||||
var processor = new TestActivityExportProcessor(new TestExporter<Activity>(_ => { }));
|
||||
var exportedItems = new List<Activity>();
|
||||
var processor = new TestActivityExportProcessor(new InMemoryExporter<Activity>(exportedItems));
|
||||
using var activitySource = new ActivitySource(ActivitySourceName);
|
||||
using var sdk = Sdk.CreateTracerProviderBuilder()
|
||||
.AddSource(ActivitySourceName)
|
||||
|
|
|
|||
Loading…
Reference in New Issue