Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upstream 26.04.21 #142

Merged
merged 6 commits into from
Apr 27, 2021
Merged

Upstream 26.04.21 #142

merged 6 commits into from
Apr 27, 2021

Conversation

RassK
Copy link
Contributor

@RassK RassK commented Apr 26, 2021

Actually build profiler in release mode (#1362)

Actually build the profiler in release mode. The changes in #1356 attempted to do this, but placed the build configuration changes into the display name of the tasks, not the actual command.

Bump OpenTracing from 0.12.0 to 0.12.1 in /src/Datadog.Trace.OpenTracing (#1385)

Bumps OpenTracing from 0.12.0 to 0.12.1.

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update dependabot all in one go (#1387)

  • For Datadog.Trace, allow all dependencies. For other projects, only allow direct dependencies. This cuts down on noise since all other projects go through Datadog.Trace
  • For Datadog.Trace and Datadog.Trace.ClrProfiler.Managed, add packages that should be ignored

Update dependabot to manually ignore dependencies (#1399)

Copy/paste the Datadog.Trace.csproj ignored dependencies everywhere, since Datadog.Trace triggers issues everywhere. While potentially noisier than a small "allow" list, this will raise PR's if we ever add new packages which is better than not raising PR's.

Stop calling Environment.Exit in tests (#1400)

Add symbols to MSI (#1364)

  • Add symbols to MSI
  • Update the PrepareRelease tool

Include the job attempt number in integration test log uploads (#1403)

This is the only pipeline that publishes whether the pipeline succeeds or fails, so it's the only job vulnerable to duplicate artifacts

Update dependabot to ignore the MessagePack vendored dependency (#1404)

Add additional test for ContainerID parsing (#1405)

Python recently had an issue with container ID parsing in DataDog/dd-trace-py#2314. This adds the problematic ID to our test suite to ensure we are not affected

Check agent version only once (#1406)

Fixes the CMake version 3.19.8 in CMakeLists (#1407)

Revert "ProcessExit event handler improvements (#1332)" (#1410)

This reverts commit 0aaa30e.

Include symbols in Linux packages (#1365)

Generate nuget symbols package (#1401)

  • Generate nuget symbols package
  • Enable source-link
  • Enable deterministic builds

delete log file (#1408)

Bump version to 1.26.0 (#1411)

  • Bump version to 1.26.0

Update NuGet packages in integration tests, under existing instrumentation version ranges (#1412)

Re-enable AspNet integration tests in CI (#1414)

Runs the AspNet tests added by DataDog/dd-trace-dotnet#1288 . Currently, this only tests the AspNetMvc and AspNetWebApi2 integrations because the AspNet integration is not yet enabled via automatic instrumentation.

The tests are run in the Windows IIS runs for the following reasons:

  • Restoring the projects and publishing can be grouped into the existing samples-iis.sln solution

  • Instrumenting IIS and IIS Express requires the Datadog.Trace assemblies to be in the GAC

  • Adding the AspNet CI applications to samples-iis.sln, which we are already properly restoring and publishing in the Windows IIS jobs

  • Removing some compile-time references to Datadog.Trace.dll and Datadog.Trace.ClrProfiler.Managed.dll with lookups via reflection. This is used so the site can give us a clear indicator whether automatic instrumentation is running

  • Miscellaneous change: Stop Visual Studio from auto-generating a launchSettings.json for the Datadog.Trace.IntegrationTests project

Fix links in CHANGELOG (#1417)

Serialize tags/metrics in a single pass (#1416)

Ducktype reverse proxy (#1402)

  • Add support for reverse proxy/ducktyping.

  • Fixes ducktyping for non visible types.

  • Changes ReverseProxyTests

  • Enables tests on NET451, and adds a new test using public types.
    Changes based on the review.

  • Apply suggestions from code review

Co-authored-by: Zach Montoya zach.montoya@datadoghq.com

  • Apply suggestions from code review

Co-authored-by: Kevin Gosse krix33@gmail.com

  • Changes based on the review.

Co-authored-by: Zach Montoya zach.montoya@datadoghq.com
Co-authored-by: Kevin Gosse krix33@gmail.com

Fix git parser on really big pack files (>2GB) (#1413)

  • Fix git parser on really big pack files. > 2GB

  • Fix parser on big object size.

  • changes based in the comments.

  • Fixes.

  • Apply suggestions from code review

Co-authored-by: Andrew Lock andrew.lock@datadoghq.com

Co-authored-by: Andrew Lock andrew.lock@datadoghq.com

Enable endpoint routing in aspnetcore benchmark (#1418)

Reinstate the consolidated multi-stage build pipeline (#1363)

Re-incorporate the unified build pipeline and ensure that the main pipelines can successfully run in parallel. The main difference between the two is that, for Linux builds, the managed assets are no longer being copied during the Profiler step but instead during the package step. Thus, the only changes in this PR that affects shared scripts are new conditional blocks that check a new UNIFIED_PIPELINE environment variable to determine in which step to copy the managed assets.

Notes:

don't throw or log exceptions in TryDuckCast methods (#1422)

Bump version to 1.26.1 (#1424)

  • Bump version to 1.26.1

  • Update Changelog

Fix build issue when building MSI from the command line without the TracerHomeDirectory argument (#1423)

RassK and others added 4 commits April 26, 2021 16:06
Actually build the profiler in release mode. The changes in open-telemetry#1356 attempted to do this, but placed the build configuration changes into the display name of the tasks, not the actual command.

Bump OpenTracing from 0.12.0 to 0.12.1 in /src/Datadog.Trace.OpenTracing (open-telemetry#1385)

Bumps [OpenTracing](https://github.com/opentracing/opentracing-csharp) from 0.12.0 to 0.12.1.
- [Release notes](https://github.com/opentracing/opentracing-csharp/releases)
- [Commits](opentracing/opentracing-csharp@0.12.0...0.12.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update dependabot all in one go (open-telemetry#1387)

- For Datadog.Trace, allow all dependencies. For other projects, only allow direct dependencies. This cuts down on noise since all other projects go through Datadog.Trace
- For Datadog.Trace and Datadog.Trace.ClrProfiler.Managed, add packages that should be ignored

Update dependabot to manually ignore dependencies (open-telemetry#1399)

Copy/paste the Datadog.Trace.csproj ignored dependencies everywhere, since Datadog.Trace triggers issues everywhere. While potentially noisier than a small "allow" list, this will raise PR's if we ever add new packages which is better than not raising PR's.

Stop calling Environment.Exit in tests (open-telemetry#1400)

Add symbols to MSI (open-telemetry#1364)

* Add symbols to MSI
* Update the PrepareRelease tool

Include the job attempt number in integration test log uploads (open-telemetry#1403)

This is the only pipeline that publishes whether the pipeline succeeds or fails, so it's the only job vulnerable to duplicate artifacts

Update dependabot to ignore the MessagePack vendored dependency (open-telemetry#1404)

Add additional test for ContainerID parsing (open-telemetry#1405)

Python recently had an issue with container ID parsing in DataDog/dd-trace-py#2314. This adds the problematic ID to our test suite to ensure we are not affected

Check agent version only once (open-telemetry#1406)

Fixes the CMake version 3.19.8 in CMakeLists (open-telemetry#1407)

Revert "ProcessExit event handler improvements (#1332)" (open-telemetry#1410)

This reverts commit 0aaa30e.

Include symbols in Linux packages (open-telemetry#1365)

Generate nuget symbols package (open-telemetry#1401)

* Generate nuget symbols package
* Enable source-link
* Enable deterministic builds

delete log file (open-telemetry#1408)

Bump version to 1.26.0 (open-telemetry#1411)

* Bump version to 1.26.0

Update NuGet packages in integration tests, under existing instrumentation version ranges (open-telemetry#1412)

Re-enable AspNet integration tests in CI (open-telemetry#1414)

Runs the AspNet tests added by DataDog/dd-trace-dotnet#1288 . Currently, this only tests the `AspNetMvc` and `AspNetWebApi2` integrations because the `AspNet` integration is not yet enabled via automatic instrumentation.

The tests are run in the Windows IIS runs for the following reasons:
- Restoring the projects and publishing can be grouped into the existing `samples-iis.sln` solution
- Instrumenting IIS and IIS Express requires the Datadog.Trace assemblies to be in the GAC

- Adding the AspNet CI applications to `samples-iis.sln`, which we are already properly restoring and publishing in the Windows IIS jobs
- Removing some compile-time references to `Datadog.Trace.dll` and `Datadog.Trace.ClrProfiler.Managed.dll` with lookups via reflection. This is used so the site can give us a clear indicator whether automatic instrumentation is running
- Miscellaneous change: Stop Visual Studio from auto-generating a `launchSettings.json` for the Datadog.Trace.IntegrationTests project

Fix links in CHANGELOG (open-telemetry#1417)

Serialize tags/metrics in a single pass (open-telemetry#1416)

Ducktype reverse proxy (open-telemetry#1402)

* Add support for reverse proxy/ducktyping.

* Fixes ducktyping for non visible types.

* Changes ReverseProxyTests

* Enables tests on NET451, and adds a new test using public types.
Changes based on the review.

* Apply suggestions from code review

Co-authored-by: Zach Montoya <zach.montoya@datadoghq.com>

* Apply suggestions from code review

Co-authored-by: Kevin Gosse <krix33@gmail.com>

* Changes based on the review.

Co-authored-by: Zach Montoya <zach.montoya@datadoghq.com>
Co-authored-by: Kevin Gosse <krix33@gmail.com>

Fix git parser on really big pack files (>2GB) (open-telemetry#1413)

* Fix git parser on really big pack files. > 2GB

* Fix parser on big object size.

* changes based in the comments.

* Fixes.

* Apply suggestions from code review

Co-authored-by: Andrew Lock <andrew.lock@datadoghq.com>

Co-authored-by: Andrew Lock <andrew.lock@datadoghq.com>

Enable endpoint routing in aspnetcore benchmark (open-telemetry#1418)

Reinstate the consolidated multi-stage build pipeline (open-telemetry#1363)

Re-incorporate the unified build pipeline and ensure that the main pipelines can successfully run in parallel. The main difference between the two is that, for Linux builds, the managed assets are no longer being copied during the Profiler step but instead during the package step. Thus, the only changes in this PR that affects shared scripts are new conditional blocks that check a new `UNIFIED_PIPELINE` environment variable to determine in which step to copy the managed assets.

Notes:
- Reverts the "revert" PR DataDog/dd-trace-dotnet#1335
- Adds the NuGet config change from DataDog/dd-trace-dotnet#1353, which assumes the change will be taken

don't throw or log exceptions in TryDuckCast methods (open-telemetry#1422)

Bump version to 1.26.1 (open-telemetry#1424)

* Bump version to 1.26.1

* Update Changelog

Fix build issue when building MSI from the command line without the TracerHomeDirectory argument (open-telemetry#1423)
@RassK RassK marked this pull request as ready for review April 26, 2021 15:43
@RassK RassK requested a review from a team April 26, 2021 15:43
Copy link
Contributor

@pjanotti pjanotti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - Let's wait on CI completion to see any errors.

@@ -2,12 +2,12 @@
<PropertyGroup>
<BuildInParallel Condition="'$(BuildInParallel)' == ''">true</BuildInParallel>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<TracerHomeDirectory Condition="'$(TracerHomeDirectory)' == ''">$(MSBuildThisFileDirectory)src\bin\tracer-home</TracerHomeDirectory>
<TracerHomeDirectory Condition="'$(TracerHomeDirectory)' == ''">$(MSBuildThisFileDirectory)src\bin\windows-tracer-home</TracerHomeDirectory>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dszmigielski keep an eye if these will affect the PR to generate the build artifacts.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should not, but I will test it after this one is merged.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The packages build should be fine because it sets the TracerHomeDirectory property itself, but I had to issue a bug fix for local builds if you don't set it: DataDog/dd-trace-dotnet@1acaff0

@pjanotti pjanotti closed this Apr 26, 2021
@pjanotti pjanotti reopened this Apr 26, 2021
@RassK RassK closed this Apr 26, 2021
@RassK RassK reopened this Apr 26, 2021
@pjanotti
Copy link
Contributor

IIRC this is a flaky test - kicked it again to be safe:

2021-04-26T23:18:06.9158006Z [xUnit.net 00:15:42.47]     Datadog.Trace.ClrProfiler.IntegrationTests.SmokeTests.DuplicateTypeProxySmokeTest.NoExceptions [FAIL]
2021-04-26T23:18:06.9267184Z   Failed Datadog.Trace.ClrProfiler.IntegrationTests.SmokeTests.DuplicateTypeProxySmokeTest.NoExceptions [25 s]
2021-04-26T23:18:06.9667041Z   Error Message:
2021-04-26T23:18:06.9775798Z    Non-success exit code 139
2021-04-26T23:18:06.9777087Z Expected: True
2021-04-26T23:18:06.9778225Z Actual:   False
2021-04-26T23:18:06.9779277Z   Stack Trace:
2021-04-26T23:18:06.9781226Z      at Datadog.Trace.ClrProfiler.IntegrationTests.SmokeTests.SmokeTestBase.CheckForSmoke(Boolean shouldDeserializeTraces) in /project/test/Datadog.Trace.ClrProfiler.IntegrationTests/SmokeTests/SmokeTestBase.cs:line 47
2021-04-26T23:18:06.9813350Z   Standard Output Messages:
2021-04-26T23:18:06.9815165Z  Application path: /project/test/test-applications/regression/DuplicateTypeProxy/bin/Release/netcoreapp2.1/publish/DuplicateTypeProxy.dll
2021-04-26T23:18:06.9816172Z  Executable path: dotnet
2021-04-26T23:18:06.9816619Z  Assigning port 38605 for the agentPort.
2021-04-26T23:18:06.9817290Z  Assigning port 36411 for the aspNetCorePort.
2021-04-26T23:18:06.9818472Z  Attempt 1: Unable to find profiler at /project/test/test-applications/regression/DuplicateTypeProxy/bin/Release/netcoreapp2.1/publish/profiler-lib/OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so.
2021-04-26T23:18:06.9820351Z  Attempt 2: Unable to find profiler at /project/test/Datadog.Trace.ClrProfiler.IntegrationTests/bin/Release/netcoreapp2.1/publish/profiler-lib/OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so.
2021-04-26T23:18:06.9821462Z  Found profiler at /project/src/Datadog.Trace.ClrProfiler.Native/bin/Release/x64/OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so.
2021-04-26T23:18:06.9827311Z  Found integrations at /project/test/test-applications/regression/DuplicateTypeProxy/bin/Release/netcoreapp2.1/publish/profiler-lib/integrations.json.
2021-04-26T23:18:06.9828388Z  StandardOutput:
2021-04-26T23:18:06.9828855Z  Writing full dump to file /tmp/coredump.6590
2021-04-26T23:18:06.9829536Z  Written 3101057024 bytes (757094 pages) to core file
2021-04-26T23:18:06.9829988Z  
2021-04-26T23:18:06.9830193Z 
2021-04-26T23:18:06.9830399Z 
2021-04-26T23:18:13.2720874Z [xUnit.net 00:15:48.84] Datadog.Trace.ClrProfiler.IntegrationTests: SUCCESS: Datadog.Trace.ClrProfiler.IntegrationTests.Elasticsearch5Tests.SubmitsTraces(5.3.1, True, False) 

@pjanotti
Copy link
Contributor

Another failure but a different one this time, since 2 runs we got 2 different failures I'm considering both results of flaky tests. I will merge the change.

2021-04-27T00:05:10.1092713Z [xUnit.net 00:00:15.78]     Datadog.Trace.IntegrationTests.DiagnosticListeners.AspNetCoreDiagnosticObserverTests.DiagnosticObserver_ForMvcEndpoints_SubmitsSpans(path: "/I/dont/123/exist/", statusCode: 404, isError: False, resourceName: "GET /i/dont/?/exist/", expectedTags: [[aspnet_core.route, ], [aspnet_core.controller, ], [aspnet_core.action, ], [aspnet_core.area, ], [aspnet_core.page, ], ...]) [FAIL]
2021-04-27T00:05:11.0981859Z   Failed Datadog.Trace.IntegrationTests.DiagnosticListeners.AspNetCoreDiagnosticObserverTests.DiagnosticObserver_ForMvcEndpoints_SubmitsSpans(path: "/I/dont/123/exist/", statusCode: 404, isError: False, resourceName: "GET /i/dont/?/exist/", expectedTags: [[aspnet_core.route, ], [aspnet_core.controller, ], [aspnet_core.action, ], [aspnet_core.area, ], [aspnet_core.page, ], ...]) [482 ms]
2021-04-27T00:05:11.0992795Z   Error Message:
2021-04-27T00:05:11.0998349Z    Expected var parentSpan = trace to contain 1 item(s), but found <null>.
2021-04-27T00:05:11.1004622Z   Stack Trace:
2021-04-27T00:05:11.1008963Z      at FluentAssertions.Execution.XUnit2TestFramework.Throw(String message)
2021-04-27T00:05:11.1009912Z    at FluentAssertions.Execution.AssertionScope.FailWith(Func`1 failReasonFunc)
2021-04-27T00:05:11.1013751Z    at FluentAssertions.Collections.SelfReferencingCollectionAssertions`2.HaveCount(Int32 expected, String because, Object[] becauseArgs)
2021-04-27T00:05:11.1020079Z    at Datadog.Trace.IntegrationTests.DiagnosticListeners.AspNetCoreDiagnosticObserverTests.AssertDiagnosticObserverSubmitsSpans[T](String path, HttpStatusCode statusCode, Boolean isError, String resourceName, SerializableDictionary expectedParentSpanTags, Boolean featureFlag, Int32 spanCount, String childSpan1ResourceName, SerializableDictionary firstChildSpanTags, String childSpan2ResourceName, SerializableDictionary secondChildSpanTags) in /project/test/Datadog.Trace.IntegrationTests/DiagnosticListeners/AspNetCoreDiagnosticObserverTests.cs:line 191
2021-04-27T00:05:11.1025162Z    at Datadog.Trace.IntegrationTests.DiagnosticListeners.AspNetCoreDiagnosticObserverTests.DiagnosticObserver_ForMvcEndpoints_SubmitsSpans(String path, HttpStatusCode statusCode, Boolean isError, String resourceName, SerializableDictionary expectedTags) in /project/test/Datadog.Trace.IntegrationTests/DiagnosticListeners/AspNetCoreDiagnosticObserverTests.cs:line 28
2021-04-27T00:05:11.1032076Z --- End of stack trace from previous location where exception was thrown ---
2021-04-27T00:05:20.8680123Z Results File: /project/test/Datadog.Trace.IntegrationTests/results/_c4e9b8c7bab2_2021-04-27_00_05_00.trx
2021-04-27T00:05:20.8684805Z 

@pjanotti pjanotti merged commit e8c6df6 into open-telemetry:main Apr 27, 2021
@RassK RassK deleted the upstream-26-04-21 branch April 27, 2021 10:38
pjanotti referenced this pull request in pjanotti/opentelemetry-dotnet-instrumentation Oct 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants