diff --git a/.vsts/ci-build.yml b/.vsts/ci-build.yml
index da41cd560..c64e4d936 100644
--- a/.vsts/ci-build.yml
+++ b/.vsts/ci-build.yml
@@ -1,7 +1,7 @@
# CI build. No publioshing of artifacts
variables:
- DotNetVersion: "2.2.101"
+ DotNetVersion: "3.1.100"
# A pipeline with no CI trigger
trigger: none
diff --git a/.vsts/ci-myget-update.yml b/.vsts/ci-myget-update.yml
index af84cf803..6fc36d780 100644
--- a/.vsts/ci-myget-update.yml
+++ b/.vsts/ci-myget-update.yml
@@ -1,7 +1,7 @@
# CI build with the upload to MyGet
variables:
- DotNetVersion: "2.2.101"
+ DotNetVersion: "3.1.100"
trigger:
branches:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index fa40149b3..641b05c1c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -49,7 +49,7 @@ You can contribute to this project from a Windows, macOS or Linux machine. Requi
In all platforms, the requirements are:
* Git client and command line tools. You may use Visual Studio to clone the repo, but we use [SourceLink](https://github.com/dotnet/sourcelink) to build and it needs git.
-* .NET Core 2.1+
+* .NET Core 3.1+
#### Windows
@@ -67,7 +67,7 @@ This is because unit tests targeting .NET Framework (i.e: `net46`) are disabled
Open `OpenTelemetry.sln` in your IDE of choice and follow normal development process.
-To build from the command line you need `dotnet` version `2.1+`.
+To build from the command line you need `dotnet` version `3.1+`.
``` sh
dotnet build OpenTelemetry.sln
@@ -79,7 +79,7 @@ You can use any of the IDEs mentioned above to test your contribution. Open root
folder or `OpenTelemetry.sln` in your editor and follow normal development
process.
-To test from command line you need `dotnet` version `2.0+`.
+To test from command line you need `dotnet` version `3.1+`.
``` sh
dotnet test OpenTelemetry.sln
diff --git a/OpenTelemetry.proj b/OpenTelemetry.proj
index acb97f30b..db609573f 100644
--- a/OpenTelemetry.proj
+++ b/OpenTelemetry.proj
@@ -1,5 +1,5 @@
-
+
diff --git a/OpenTelemetry.sln b/OpenTelemetry.sln
index bfd65b6ee..04bb5132b 100644
--- a/OpenTelemetry.sln
+++ b/OpenTelemetry.sln
@@ -54,7 +54,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Collector.Asp
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testdata", "testdata", "{77C7929A-2EED-4AA6-8705-B5C443C8AA0F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestApp.AspNetCore.2.0", "test\TestApp.AspNetCore.2.0\TestApp.AspNetCore.2.0.csproj", "{F2F81E76-6A0E-466B-B673-EBBF1A9ED075}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestApp.AspNetCore.3.0", "test\TestApp.AspNetCore.3.0\TestApp.AspNetCore.3.0.csproj", "{F2F81E76-6A0E-466B-B673-EBBF1A9ED075}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Exporter.Stackdriver.Tests", "test\OpenTelemetry.Exporter.Stackdriver.Tests\OpenTelemetry.Exporter.Stackdriver.Tests.csproj", "{6875032B-DFDC-4CDE-A283-37CA7F99926A}"
EndProject
@@ -105,7 +105,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Hosting.Tests
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Exporter.OpenTelemetryProtocol", "src\OpenTelemetry.Exporter.OpenTelemetryProtocol\OpenTelemetry.Exporter.OpenTelemetryProtocol.csproj", "{A38AC295-2745-4B85-8B6B-DCA864CEDD5B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTelemetry.Exporter.Prometheus.Tests", "test\OpenTelemetry.Exporter.Prometheus.Tests\OpenTelemetry.Exporter.Prometheus.Tests.csproj", "{393128EC-454D-45E8-A204-EC54904E5B3F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Exporter.Prometheus.Tests", "test\OpenTelemetry.Exporter.Prometheus.Tests\OpenTelemetry.Exporter.Prometheus.Tests.csproj", "{393128EC-454D-45E8-A204-EC54904E5B3F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/benchmarks/Benchmarks.csproj b/benchmarks/Benchmarks.csproj
index cd5cff410..742a3170e 100644
--- a/benchmarks/Benchmarks.csproj
+++ b/benchmarks/Benchmarks.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.2;net462
+ netcoreapp3.1;net462
false
diff --git a/build/Common.prod.props b/build/Common.prod.props
index ba4d13cf7..d3bf6d613 100644
--- a/build/Common.prod.props
+++ b/build/Common.prod.props
@@ -2,7 +2,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/samples/Exporters/Exporters.csproj b/samples/Exporters/Exporters.csproj
index 717bcc0b2..f1d5316df 100644
--- a/samples/Exporters/Exporters.csproj
+++ b/samples/Exporters/Exporters.csproj
@@ -3,7 +3,7 @@
Exe
- netcoreapp2.1
+ netcoreapp3.0
false
@@ -27,5 +27,4 @@
-
diff --git a/src/OpenTelemetry.Api/OpenTelemetry.Api.csproj b/src/OpenTelemetry.Api/OpenTelemetry.Api.csproj
index 37d1a08db..60e396a09 100644
--- a/src/OpenTelemetry.Api/OpenTelemetry.Api.csproj
+++ b/src/OpenTelemetry.Api/OpenTelemetry.Api.csproj
@@ -21,4 +21,5 @@
+
\ No newline at end of file
diff --git a/src/OpenTelemetry.Collector.AspNetCore/AspNetCoreCollector.cs b/src/OpenTelemetry.Collector.AspNetCore/AspNetCoreCollector.cs
index a291e3f76..73fdd5c90 100644
--- a/src/OpenTelemetry.Collector.AspNetCore/AspNetCoreCollector.cs
+++ b/src/OpenTelemetry.Collector.AspNetCore/AspNetCoreCollector.cs
@@ -42,7 +42,7 @@ namespace OpenTelemetry.Collector.AspNetCore
/// Configuration options for dependencies collector.
public AspNetCoreCollector(Tracer tracer, AspNetCoreCollectorOptions options)
{
- this.diagnosticSourceSubscriber = new DiagnosticSourceSubscriber(new HttpInListener("Microsoft.AspNetCore", tracer), options.EventFilter);
+ this.diagnosticSourceSubscriber = new DiagnosticSourceSubscriber(new HttpInListener("Microsoft.AspNetCore", tracer, options.RequestFilter), null);
this.diagnosticSourceSubscriber.Subscribe();
}
diff --git a/src/OpenTelemetry.Collector.AspNetCore/AspNetCoreCollectorOptions.cs b/src/OpenTelemetry.Collector.AspNetCore/AspNetCoreCollectorOptions.cs
index ae4a3feae..c1e420b5c 100644
--- a/src/OpenTelemetry.Collector.AspNetCore/AspNetCoreCollectorOptions.cs
+++ b/src/OpenTelemetry.Collector.AspNetCore/AspNetCoreCollectorOptions.cs
@@ -13,7 +13,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.
//
+
using System;
+using Microsoft.AspNetCore.Http;
namespace OpenTelemetry.Collector.AspNetCore
{
@@ -25,9 +27,9 @@ namespace OpenTelemetry.Collector.AspNetCore
///
/// Gets or sets a hook to exclude calls based on domain or other per-request criterion.
///
- internal Func EventFilter { get; set; } = DefaultFilter;
+ internal Predicate RequestFilter { get; set; } = DefaultFilter;
- private static bool DefaultFilter(string activityName, object arg1, object unused)
+ private static bool DefaultFilter(HttpContext httpContext)
{
return true;
}
diff --git a/src/OpenTelemetry.Collector.AspNetCore/Implementation/HttpInListener.cs b/src/OpenTelemetry.Collector.AspNetCore/Implementation/HttpInListener.cs
index 97e390a12..7e427f1cd 100644
--- a/src/OpenTelemetry.Collector.AspNetCore/Implementation/HttpInListener.cs
+++ b/src/OpenTelemetry.Collector.AspNetCore/Implementation/HttpInListener.cs
@@ -14,6 +14,7 @@
// limitations under the License.
//
+using System;
using System.Diagnostics;
using System.Linq;
using System.Text;
@@ -32,11 +33,13 @@ namespace OpenTelemetry.Collector.AspNetCore.Implementation
private readonly PropertyFetcher beforeActionAttributeRouteInfoFetcher = new PropertyFetcher("AttributeRouteInfo");
private readonly PropertyFetcher beforeActionTemplateFetcher = new PropertyFetcher("Template");
private readonly bool hostingSupportsW3C = false;
+ private readonly Predicate requestFilter;
- public HttpInListener(string name, Tracer tracer)
+ public HttpInListener(string name, Tracer tracer, Predicate requestFilter)
: base(name, tracer)
{
this.hostingSupportsW3C = typeof(HttpRequest).Assembly.GetName().Version.Major >= 3;
+ this.requestFilter = requestFilter;
}
public override void OnStartActivity(Activity activity, object payload)
@@ -50,6 +53,12 @@ namespace OpenTelemetry.Collector.AspNetCore.Implementation
return;
}
+ if (this.requestFilter != null && !this.requestFilter(context))
+ {
+ CollectorEventSource.Log.RequestIsFilteredOut(activity.OperationName);
+ return;
+ }
+
var request = context.Request;
// see the spec https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/data-semantic-conventions.md
diff --git a/src/OpenTelemetry.Collector.AspNetCore/OpenTelemetry.Collector.AspNetCore.csproj b/src/OpenTelemetry.Collector.AspNetCore/OpenTelemetry.Collector.AspNetCore.csproj
index 4d32f6594..63eaf9a1f 100644
--- a/src/OpenTelemetry.Collector.AspNetCore/OpenTelemetry.Collector.AspNetCore.csproj
+++ b/src/OpenTelemetry.Collector.AspNetCore/OpenTelemetry.Collector.AspNetCore.csproj
@@ -10,4 +10,11 @@
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
diff --git a/src/OpenTelemetry.Collector.Dependencies/OpenTelemetry.Collector.Dependencies.csproj b/src/OpenTelemetry.Collector.Dependencies/OpenTelemetry.Collector.Dependencies.csproj
index d3d643b88..73f88fd35 100644
--- a/src/OpenTelemetry.Collector.Dependencies/OpenTelemetry.Collector.Dependencies.csproj
+++ b/src/OpenTelemetry.Collector.Dependencies/OpenTelemetry.Collector.Dependencies.csproj
@@ -12,4 +12,5 @@
+
diff --git a/src/OpenTelemetry.Collector.StackExchangeRedis/OpenTelemetry.Collector.StackExchangeRedis.csproj b/src/OpenTelemetry.Collector.StackExchangeRedis/OpenTelemetry.Collector.StackExchangeRedis.csproj
index 054a5bf87..47999325c 100644
--- a/src/OpenTelemetry.Collector.StackExchangeRedis/OpenTelemetry.Collector.StackExchangeRedis.csproj
+++ b/src/OpenTelemetry.Collector.StackExchangeRedis/OpenTelemetry.Collector.StackExchangeRedis.csproj
@@ -9,4 +9,5 @@
+
diff --git a/src/OpenTelemetry.Exporter.ApplicationInsights/OpenTelemetry.Exporter.ApplicationInsights.csproj b/src/OpenTelemetry.Exporter.ApplicationInsights/OpenTelemetry.Exporter.ApplicationInsights.csproj
index 8e2c64a1e..a090ab0fe 100644
--- a/src/OpenTelemetry.Exporter.ApplicationInsights/OpenTelemetry.Exporter.ApplicationInsights.csproj
+++ b/src/OpenTelemetry.Exporter.ApplicationInsights/OpenTelemetry.Exporter.ApplicationInsights.csproj
@@ -13,4 +13,5 @@
+
diff --git a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OpenTelemetry.Exporter.OpenTelemetryProtocol.csproj b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OpenTelemetry.Exporter.OpenTelemetryProtocol.csproj
index 6c8242185..5a684171e 100644
--- a/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OpenTelemetry.Exporter.OpenTelemetryProtocol.csproj
+++ b/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/OpenTelemetry.Exporter.OpenTelemetryProtocol.csproj
@@ -17,4 +17,5 @@
Implementation
+
diff --git a/src/OpenTelemetry.Exporter.Prometheus/OpenTelemetry.Exporter.Prometheus.csproj b/src/OpenTelemetry.Exporter.Prometheus/OpenTelemetry.Exporter.Prometheus.csproj
index 46c1e64fb..bc28c0bff 100644
--- a/src/OpenTelemetry.Exporter.Prometheus/OpenTelemetry.Exporter.Prometheus.csproj
+++ b/src/OpenTelemetry.Exporter.Prometheus/OpenTelemetry.Exporter.Prometheus.csproj
@@ -8,4 +8,5 @@
+
diff --git a/src/OpenTelemetry.Exporter.Stackdriver/OpenTelemetry.Exporter.Stackdriver.csproj b/src/OpenTelemetry.Exporter.Stackdriver/OpenTelemetry.Exporter.Stackdriver.csproj
index c9d7cf978..72641de1f 100644
--- a/src/OpenTelemetry.Exporter.Stackdriver/OpenTelemetry.Exporter.Stackdriver.csproj
+++ b/src/OpenTelemetry.Exporter.Stackdriver/OpenTelemetry.Exporter.Stackdriver.csproj
@@ -18,4 +18,5 @@
+
diff --git a/src/OpenTelemetry.Exporter.Zipkin/OpenTelemetry.Exporter.Zipkin.csproj b/src/OpenTelemetry.Exporter.Zipkin/OpenTelemetry.Exporter.Zipkin.csproj
index 906ca8be2..e53935a68 100644
--- a/src/OpenTelemetry.Exporter.Zipkin/OpenTelemetry.Exporter.Zipkin.csproj
+++ b/src/OpenTelemetry.Exporter.Zipkin/OpenTelemetry.Exporter.Zipkin.csproj
@@ -13,4 +13,5 @@
+
diff --git a/src/OpenTelemetry.Hosting/OpenTelemetry.Hosting.csproj b/src/OpenTelemetry.Hosting/OpenTelemetry.Hosting.csproj
index c9117876c..c2243c1b1 100644
--- a/src/OpenTelemetry.Hosting/OpenTelemetry.Hosting.csproj
+++ b/src/OpenTelemetry.Hosting/OpenTelemetry.Hosting.csproj
@@ -9,4 +9,5 @@
+
\ No newline at end of file
diff --git a/src/OpenTelemetry.Shims.OpenTracing/OpenTelemetry.Shims.OpenTracing.csproj b/src/OpenTelemetry.Shims.OpenTracing/OpenTelemetry.Shims.OpenTracing.csproj
index 9085a6600..949bc805e 100644
--- a/src/OpenTelemetry.Shims.OpenTracing/OpenTelemetry.Shims.OpenTracing.csproj
+++ b/src/OpenTelemetry.Shims.OpenTracing/OpenTelemetry.Shims.OpenTracing.csproj
@@ -20,4 +20,5 @@
+
diff --git a/src/OpenTelemetry/Collector/CollectorEventSource.cs b/src/OpenTelemetry/Collector/CollectorEventSource.cs
index f97e3fceb..0b4f688c2 100644
--- a/src/OpenTelemetry/Collector/CollectorEventSource.cs
+++ b/src/OpenTelemetry/Collector/CollectorEventSource.cs
@@ -1,4 +1,4 @@
-//
+//
// Copyright 2018, OpenTelemetry Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
@@ -79,6 +79,12 @@ namespace OpenTelemetry.Collector
this.WriteEvent(5, eventName);
}
+ [Event(6, Message = "Request is filtered out.", Level = EventLevel.Verbose)]
+ public void RequestIsFilteredOut(string eventName)
+ {
+ this.WriteEvent(6, eventName);
+ }
+
///
/// Returns a culture-independent string representation of the given object,
/// appropriate for diagnostics tracing.
diff --git a/src/OpenTelemetry/Collector/ListenerHandler.cs b/src/OpenTelemetry/Collector/ListenerHandler.cs
index 47e04ce81..88ba199e7 100644
--- a/src/OpenTelemetry/Collector/ListenerHandler.cs
+++ b/src/OpenTelemetry/Collector/ListenerHandler.cs
@@ -50,9 +50,6 @@ namespace OpenTelemetry.Collector
public virtual void OnException(Activity activity, object payload)
{
- var span = this.Tracer.CurrentSpan;
-
- // TODO: gather exception information
}
public virtual void OnCustom(string name, Activity activity, object payload)
diff --git a/test/OpenTelemetry.Collector.AspNetCore.Tests/BasicTests.cs b/test/OpenTelemetry.Collector.AspNetCore.Tests/BasicTests.cs
index bdb87282a..d42df0f86 100644
--- a/test/OpenTelemetry.Collector.AspNetCore.Tests/BasicTests.cs
+++ b/test/OpenTelemetry.Collector.AspNetCore.Tests/BasicTests.cs
@@ -17,7 +17,6 @@
using OpenTelemetry.Trace.Configuration;
using Xunit;
using Microsoft.AspNetCore.Mvc.Testing;
-using TestApp.AspNetCore._2._0;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using OpenTelemetry.Trace;
@@ -26,11 +25,10 @@ using Moq;
using Microsoft.AspNetCore.TestHost;
using System;
using System.Threading;
-using OpenTelemetry.Context.Propagation;
-using Microsoft.AspNetCore.Http;
-using System.Collections.Generic;
using System.Diagnostics;
+using System.Net.Http;
using OpenTelemetry.Trace.Samplers;
+using TestApp.AspNetCore._3._0;
namespace OpenTelemetry.Collector.AspNetCore.Tests
{
@@ -98,13 +96,6 @@ namespace OpenTelemetry.Collector.AspNetCore.Tests
var expectedTraceId = ActivityTraceId.CreateRandom();
var expectedSpanId = ActivitySpanId.CreateRandom();
- var tf = new Mock();
- tf.Setup(m => m.Extract(It.IsAny(), It.IsAny>>())).Returns(new SpanContext(
- expectedTraceId,
- expectedSpanId,
- ActivityTraceFlags.Recorded,
- true));
-
// Arrange
using (var testFactory = this.factory
.WithWebHostBuilder(builder =>
@@ -112,15 +103,16 @@ namespace OpenTelemetry.Collector.AspNetCore.Tests
{
services.AddSingleton(_ =>
TracerFactory.Create(b => b
- .SetSampler(new AlwaysSampleSampler())
- .SetTextFormat(tf.Object)
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))
.AddRequestCollector()));
})))
using (var client = testFactory.CreateClient())
{
+ var request = new HttpRequestMessage(HttpMethod.Get, "/api/values/2");
+ request.Headers.Add("traceparent", $"00-{expectedTraceId}-{expectedSpanId}-01");
+
// Act
- var response = await client.GetAsync("/api/values/2");
+ var response = await client.SendAsync(request);
// Assert
response.EnsureSuccessStatusCode(); // Status Code 200-299
@@ -142,27 +134,14 @@ namespace OpenTelemetry.Collector.AspNetCore.Tests
[Fact]
public async Task FilterOutRequest()
{
- bool Filter(string eventName, object arg1, object _)
- {
- if (eventName == "Microsoft.AspNetCore.Hosting.HttpRequestIn" &&
- arg1 is HttpContext context &&
- context.Request.Path == "/api/values/2")
- {
- return false;
- }
-
- return true;
- }
-
var spanProcessor = new Mock();
void ConfigureTestServices(IServiceCollection services)
{
services.AddSingleton(_ =>
TracerFactory.Create(b => b
- .SetSampler(new AlwaysSampleSampler())
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))
- .AddRequestCollector(o => o.EventFilter = Filter)));
+ .AddRequestCollector(o => o.RequestFilter = (httpContext) => httpContext.Request.Path != "/api/values/2")));
}
// Arrange
diff --git a/test/OpenTelemetry.Collector.AspNetCore.Tests/IncomingRequestsCollectionsIsAccordingToTheSpecTests.cs b/test/OpenTelemetry.Collector.AspNetCore.Tests/IncomingRequestsCollectionsIsAccordingToTheSpecTests.cs
index fbcacf4ec..dbbd85e5f 100644
--- a/test/OpenTelemetry.Collector.AspNetCore.Tests/IncomingRequestsCollectionsIsAccordingToTheSpecTests.cs
+++ b/test/OpenTelemetry.Collector.AspNetCore.Tests/IncomingRequestsCollectionsIsAccordingToTheSpecTests.cs
@@ -17,7 +17,6 @@
using OpenTelemetry.Trace.Configuration;
using Xunit;
using Microsoft.AspNetCore.Mvc.Testing;
-using TestApp.AspNetCore._2._0;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using OpenTelemetry.Trace;
@@ -26,7 +25,7 @@ using Moq;
using Microsoft.AspNetCore.TestHost;
using System;
using Microsoft.AspNetCore.Http;
-using OpenTelemetry.Trace.Samplers;
+using TestApp.AspNetCore._3._0;
namespace OpenTelemetry.Collector.AspNetCore.Tests
{
@@ -65,7 +64,6 @@ namespace OpenTelemetry.Collector.AspNetCore.Tests
services.AddSingleton(new TestCallbackMiddlewareImpl());
services.AddSingleton(_ =>
TracerFactory.Create(b => b
- .SetSampler(new AlwaysSampleSampler())
.AddProcessorPipeline(p => p.AddProcessor(e => spanProcessor.Object))
.AddRequestCollector()));
}))
diff --git a/test/OpenTelemetry.Collector.AspNetCore.Tests/OpenTelemetry.Collector.AspNetCore.Tests.csproj b/test/OpenTelemetry.Collector.AspNetCore.Tests/OpenTelemetry.Collector.AspNetCore.Tests.csproj
index ac64a261c..4a29a710f 100644
--- a/test/OpenTelemetry.Collector.AspNetCore.Tests/OpenTelemetry.Collector.AspNetCore.Tests.csproj
+++ b/test/OpenTelemetry.Collector.AspNetCore.Tests/OpenTelemetry.Collector.AspNetCore.Tests.csproj
@@ -1,7 +1,7 @@
Unit test project for OpenTelemetry
- netcoreapp2.1
+ netcoreapp3.0
@@ -28,9 +28,8 @@
-
-
-
+
+
diff --git a/test/OpenTelemetry.Collector.Dependencies.Tests/HttpClientTests.cs b/test/OpenTelemetry.Collector.Dependencies.Tests/HttpClientTests.cs
index aeaa8fa9c..52700076c 100644
--- a/test/OpenTelemetry.Collector.Dependencies.Tests/HttpClientTests.cs
+++ b/test/OpenTelemetry.Collector.Dependencies.Tests/HttpClientTests.cs
@@ -110,6 +110,7 @@ namespace OpenTelemetry.Collector.Dependencies.Tests
{
RequestUri = new Uri(tc.Url),
Method = new HttpMethod(tc.Method),
+ Version = new Version(2, 0),
};
if (tc.Headers != null)
diff --git a/test/OpenTelemetry.Collector.Dependencies.Tests/OpenTelemetry.Collector.Dependencies.Tests.csproj b/test/OpenTelemetry.Collector.Dependencies.Tests/OpenTelemetry.Collector.Dependencies.Tests.csproj
index 8430ce654..444b7e068 100644
--- a/test/OpenTelemetry.Collector.Dependencies.Tests/OpenTelemetry.Collector.Dependencies.Tests.csproj
+++ b/test/OpenTelemetry.Collector.Dependencies.Tests/OpenTelemetry.Collector.Dependencies.Tests.csproj
@@ -1,7 +1,7 @@
Unit test project for OpenTelemetry
- netcoreapp2.1
+ netcoreapp3.1
diff --git a/test/OpenTelemetry.Collector.StackExchangeRedis.Tests/OpenTelemetry.Collector.StackExchangeRedis.Tests.csproj b/test/OpenTelemetry.Collector.StackExchangeRedis.Tests/OpenTelemetry.Collector.StackExchangeRedis.Tests.csproj
index 3ac713a51..ddbc1e8b9 100644
--- a/test/OpenTelemetry.Collector.StackExchangeRedis.Tests/OpenTelemetry.Collector.StackExchangeRedis.Tests.csproj
+++ b/test/OpenTelemetry.Collector.StackExchangeRedis.Tests/OpenTelemetry.Collector.StackExchangeRedis.Tests.csproj
@@ -1,7 +1,7 @@
Unit test project for ApplicationInsights Exporter for OpenTelemetry
- netcoreapp2.1
+ netcoreapp3.1
$(TargetFrameworks);net461
diff --git a/test/OpenTelemetry.Exporter.ApplicationInsights.Tests/OpenTelemetry.Exporter.ApplicationInsights.Tests.csproj b/test/OpenTelemetry.Exporter.ApplicationInsights.Tests/OpenTelemetry.Exporter.ApplicationInsights.Tests.csproj
index f833c61ba..79f4623e2 100644
--- a/test/OpenTelemetry.Exporter.ApplicationInsights.Tests/OpenTelemetry.Exporter.ApplicationInsights.Tests.csproj
+++ b/test/OpenTelemetry.Exporter.ApplicationInsights.Tests/OpenTelemetry.Exporter.ApplicationInsights.Tests.csproj
@@ -1,7 +1,7 @@
Unit test project for ApplicationInsights Exporter for OpenTelemetry
- netcoreapp2.1
+ netcoreapp3.1
$(TargetFrameworks);net46
diff --git a/test/OpenTelemetry.Exporter.Jaeger.Tests/OpenTelemetry.Exporter.Jaeger.Tests.csproj b/test/OpenTelemetry.Exporter.Jaeger.Tests/OpenTelemetry.Exporter.Jaeger.Tests.csproj
index 4b35b6e2c..2e02ef8c8 100644
--- a/test/OpenTelemetry.Exporter.Jaeger.Tests/OpenTelemetry.Exporter.Jaeger.Tests.csproj
+++ b/test/OpenTelemetry.Exporter.Jaeger.Tests/OpenTelemetry.Exporter.Jaeger.Tests.csproj
@@ -1,7 +1,7 @@
-
+
Unit test project for Jaeger Exporter for OpenTelemetry
- netcoreapp2.1
+ netcoreapp3.1
$(TargetFrameworks);net46
false
diff --git a/test/OpenTelemetry.Exporter.LightStep.Tests/OpenTelemetry.Exporter.LightStep.Tests.csproj b/test/OpenTelemetry.Exporter.LightStep.Tests/OpenTelemetry.Exporter.LightStep.Tests.csproj
index 4906b2b35..6071bda36 100644
--- a/test/OpenTelemetry.Exporter.LightStep.Tests/OpenTelemetry.Exporter.LightStep.Tests.csproj
+++ b/test/OpenTelemetry.Exporter.LightStep.Tests/OpenTelemetry.Exporter.LightStep.Tests.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.2
+ netcoreapp3.1
false
diff --git a/test/OpenTelemetry.Exporter.Prometheus.Tests/OpenTelemetry.Exporter.Prometheus.Tests.csproj b/test/OpenTelemetry.Exporter.Prometheus.Tests/OpenTelemetry.Exporter.Prometheus.Tests.csproj
index 91e05a84c..7e63d5477 100644
--- a/test/OpenTelemetry.Exporter.Prometheus.Tests/OpenTelemetry.Exporter.Prometheus.Tests.csproj
+++ b/test/OpenTelemetry.Exporter.Prometheus.Tests/OpenTelemetry.Exporter.Prometheus.Tests.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.1
+ netcoreapp3.1
false
diff --git a/test/OpenTelemetry.Exporter.Stackdriver.Tests/OpenTelemetry.Exporter.Stackdriver.Tests.csproj b/test/OpenTelemetry.Exporter.Stackdriver.Tests/OpenTelemetry.Exporter.Stackdriver.Tests.csproj
index 619ceb3fe..4fbe6181b 100644
--- a/test/OpenTelemetry.Exporter.Stackdriver.Tests/OpenTelemetry.Exporter.Stackdriver.Tests.csproj
+++ b/test/OpenTelemetry.Exporter.Stackdriver.Tests/OpenTelemetry.Exporter.Stackdriver.Tests.csproj
@@ -1,7 +1,7 @@
Unit test project for Stackdriver Exporter for OpenTelemetry
- netcoreapp2.1
+ netcoreapp3.1
$(TargetFrameworks);net46
diff --git a/test/OpenTelemetry.Hosting.Tests/OpenTelemetry.Hosting.Tests.csproj b/test/OpenTelemetry.Hosting.Tests/OpenTelemetry.Hosting.Tests.csproj
index 853d286fe..aaeb6c389 100644
--- a/test/OpenTelemetry.Hosting.Tests/OpenTelemetry.Hosting.Tests.csproj
+++ b/test/OpenTelemetry.Hosting.Tests/OpenTelemetry.Hosting.Tests.csproj
@@ -1,7 +1,7 @@
Unit test project for ApplicationInsights Exporter for OpenTelemetry
- netcoreapp2.1
+ netcoreapp3.1
$(TargetFrameworks);net461
diff --git a/test/OpenTelemetry.Shims.OpenTracing.Tests/OpenTelemetry.Shims.OpenTracing.Tests.csproj b/test/OpenTelemetry.Shims.OpenTracing.Tests/OpenTelemetry.Shims.OpenTracing.Tests.csproj
index e587f577d..9c5b8dd9b 100644
--- a/test/OpenTelemetry.Shims.OpenTracing.Tests/OpenTelemetry.Shims.OpenTracing.Tests.csproj
+++ b/test/OpenTelemetry.Shims.OpenTracing.Tests/OpenTelemetry.Shims.OpenTracing.Tests.csproj
@@ -1,7 +1,7 @@
Unit test project for OpenTelemetry.Shims.OpenTracing
- netcoreapp2.1
+ netcoreapp3.1
diff --git a/test/OpenTelemetry.Tests/OpenTelemetry.Tests.csproj b/test/OpenTelemetry.Tests/OpenTelemetry.Tests.csproj
index 11bcb90f2..aab05a60e 100644
--- a/test/OpenTelemetry.Tests/OpenTelemetry.Tests.csproj
+++ b/test/OpenTelemetry.Tests/OpenTelemetry.Tests.csproj
@@ -1,7 +1,7 @@
Unit test project for OpenTelemetry
- netcoreapp2.1
+ netcoreapp3.1
$(TargetFrameworks);net46
diff --git a/test/TestApp.AspNetCore.2.0/CallbackMiddleware.cs b/test/TestApp.AspNetCore.3.0/CallbackMiddleware.cs
similarity index 97%
rename from test/TestApp.AspNetCore.2.0/CallbackMiddleware.cs
rename to test/TestApp.AspNetCore.3.0/CallbackMiddleware.cs
index 97a4c248e..5d63a7247 100644
--- a/test/TestApp.AspNetCore.2.0/CallbackMiddleware.cs
+++ b/test/TestApp.AspNetCore.3.0/CallbackMiddleware.cs
@@ -16,7 +16,7 @@
using Microsoft.AspNetCore.Http;
using System.Threading.Tasks;
-namespace TestApp.AspNetCore._2._0
+namespace TestApp.AspNetCore._3._0
{
public class CallbackMiddleware
{
diff --git a/test/TestApp.AspNetCore.2.0/Controllers/ForwardController.cs b/test/TestApp.AspNetCore.3.0/Controllers/ForwardController.cs
similarity index 52%
rename from test/TestApp.AspNetCore.2.0/Controllers/ForwardController.cs
rename to test/TestApp.AspNetCore.3.0/Controllers/ForwardController.cs
index 7a090b312..913945f4b 100644
--- a/test/TestApp.AspNetCore.2.0/Controllers/ForwardController.cs
+++ b/test/TestApp.AspNetCore.3.0/Controllers/ForwardController.cs
@@ -19,35 +19,21 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
-namespace TestApp.AspNetCore._2._0.Controllers
+namespace TestApp.AspNetCore._3._0.Controllers
{
[Route("api/[controller]")]
public class ForwardController : Controller
{
private readonly HttpClient httpClient;
- public ForwardController(HttpClient httpclient)
+
+ public ForwardController(HttpClient httpClient)
{
- this.httpClient = httpclient;
+ this.httpClient = httpClient;
}
- private async Task CallNextAsync(string url, Data[] arguments)
- {
- if (url != null)
- {
- var request = new HttpRequestMessage(HttpMethod.Post, url)
- {
- Content = new StringContent(JsonConvert.SerializeObject(arguments), Encoding.UTF8, "application/json"),
- };
- var response = await httpClient.SendAsync(request);
- return await response.Content.ReadAsStringAsync();
- }
-
- return "all done";
- }
-
- // POST api/values
+ // POST api/test
[HttpPost]
- public async Task Post([FromBody]Data[] data)
+ public async Task Post([FromBody] Data[] data)
{
var result = string.Empty;
@@ -55,13 +41,12 @@ namespace TestApp.AspNetCore._2._0.Controllers
{
foreach (var argument in data)
{
- if (argument.sleep != null)
+ var request = new HttpRequestMessage(HttpMethod.Post, argument.Url)
{
- result = "slept for " + argument.sleep.Value + " ms";
- await Task.Delay(argument.sleep.Value);
- }
-
- result += await CallNextAsync(argument.url, argument.arguments);
+ Content = new StringContent(JsonConvert.SerializeObject(argument.Arguments),
+ Encoding.UTF8, "application/json"),
+ };
+ await this.httpClient.SendAsync(request);
}
}
else
@@ -75,8 +60,11 @@ namespace TestApp.AspNetCore._2._0.Controllers
public class Data
{
- public int? sleep { get; set; }
- public string url { get; set; }
- public Data[] arguments { get; set; }
+ [JsonProperty("url")]
+ public string Url { get; set; }
+
+ [JsonProperty("arguments")]
+ public Data[] Arguments { get; set; }
}
-}
\ No newline at end of file
+}
+
diff --git a/test/TestApp.AspNetCore.2.0/Controllers/ValuesController.cs b/test/TestApp.AspNetCore.3.0/Controllers/ValuesController.cs
similarity index 96%
rename from test/TestApp.AspNetCore.2.0/Controllers/ValuesController.cs
rename to test/TestApp.AspNetCore.3.0/Controllers/ValuesController.cs
index 0200c3d7b..fd233ea24 100644
--- a/test/TestApp.AspNetCore.2.0/Controllers/ValuesController.cs
+++ b/test/TestApp.AspNetCore.3.0/Controllers/ValuesController.cs
@@ -16,7 +16,7 @@
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
-namespace TestApp.AspNetCore._2._0.Controllers
+namespace TestApp.AspNetCore._3._0.Controllers
{
[Route("api/[controller]")]
public class ValuesController : Controller
diff --git a/test/TestApp.AspNetCore.2.0/Program.cs b/test/TestApp.AspNetCore.3.0/Program.cs
similarity index 96%
rename from test/TestApp.AspNetCore.2.0/Program.cs
rename to test/TestApp.AspNetCore.3.0/Program.cs
index d4f76f9a3..2c471d0a3 100644
--- a/test/TestApp.AspNetCore.2.0/Program.cs
+++ b/test/TestApp.AspNetCore.3.0/Program.cs
@@ -17,7 +17,7 @@
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
-namespace TestApp.AspNetCore._2._0
+namespace TestApp.AspNetCore._3._0
{
public class Program
{
diff --git a/test/TestApp.AspNetCore.3.0/README.md b/test/TestApp.AspNetCore.3.0/README.md
new file mode 100644
index 000000000..c4c7b9feb
--- /dev/null
+++ b/test/TestApp.AspNetCore.3.0/README.md
@@ -0,0 +1,8 @@
+This test app is used for ASP.NET Core integration testing by unit tests. You could also manually run W3C test suite.
+
+# Run W3C test suite
+The detailed instruction for the test tool available [here](https://github.com/w3c/trace-context/tree/master/test).
+
+* Follow it to install prerequisites and get the test code
+* Start this test app with Visual Studio (or `dotnet run`)
+* Run test per instruction using `http://localhost:63741/api/forward` endpoint
diff --git a/test/TestApp.AspNetCore.2.0/Startup.cs b/test/TestApp.AspNetCore.3.0/Startup.cs
similarity index 76%
rename from test/TestApp.AspNetCore.2.0/Startup.cs
rename to test/TestApp.AspNetCore.3.0/Startup.cs
index b006d2cee..6299b13ef 100644
--- a/test/TestApp.AspNetCore.2.0/Startup.cs
+++ b/test/TestApp.AspNetCore.3.0/Startup.cs
@@ -19,9 +19,11 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.DependencyInjection.Extensions;
+using Microsoft.Extensions.Hosting;
using OpenTelemetry.Trace.Configuration;
-namespace TestApp.AspNetCore._2._0
+namespace TestApp.AspNetCore._3._0
{
public class Startup
{
@@ -39,10 +41,14 @@ namespace TestApp.AspNetCore._2._0
services.AddSingleton();
services.AddSingleton(
new CallbackMiddleware.CallbackMiddlewareImpl());
+
+ services.TryAddSingleton(_ => TracerFactory.Create(b => b
+ .AddRequestCollector()
+ .AddDependencyCollector()));
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IHostingEnvironment env, TracerFactory factory)
+ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, TracerFactory factory)
{
if (env.IsDevelopment())
{
@@ -50,7 +56,14 @@ namespace TestApp.AspNetCore._2._0
}
app.UseMiddleware();
- app.UseMvc();
+ app.UseRouting();
+
+ app.UseAuthorization();
+
+ app.UseEndpoints(endpoints =>
+ {
+ endpoints.MapControllers();
+ });
}
}
}
diff --git a/test/TestApp.AspNetCore.2.0/TestApp.AspNetCore.2.0.csproj b/test/TestApp.AspNetCore.3.0/TestApp.AspNetCore.3.0.csproj
similarity index 66%
rename from test/TestApp.AspNetCore.2.0/TestApp.AspNetCore.2.0.csproj
rename to test/TestApp.AspNetCore.3.0/TestApp.AspNetCore.3.0.csproj
index e26f3082c..bb4ddd48f 100644
--- a/test/TestApp.AspNetCore.2.0/TestApp.AspNetCore.2.0.csproj
+++ b/test/TestApp.AspNetCore.3.0/TestApp.AspNetCore.3.0.csproj
@@ -1,6 +1,6 @@
- netcoreapp2.1
+ netcoreapp3.0
@@ -11,14 +11,7 @@
-
- all
- true
-
-
-
-
-
+
@@ -26,6 +19,7 @@
+
diff --git a/test/TestApp.AspNetCore.2.0/appsettings.Development.json b/test/TestApp.AspNetCore.3.0/appsettings.Development.json
similarity index 100%
rename from test/TestApp.AspNetCore.2.0/appsettings.Development.json
rename to test/TestApp.AspNetCore.3.0/appsettings.Development.json
diff --git a/test/TestApp.AspNetCore.2.0/appsettings.json b/test/TestApp.AspNetCore.3.0/appsettings.json
similarity index 100%
rename from test/TestApp.AspNetCore.2.0/appsettings.json
rename to test/TestApp.AspNetCore.3.0/appsettings.json