From 6cc6a22427daf468bdf66ebcb7ddc375b18862e1 Mon Sep 17 00:00:00 2001 From: Tony Redondo Date: Wed, 16 Jun 2021 14:20:42 +0200 Subject: [PATCH] Fix integration comment Upgrade non windows native builds to C++17 (https://github.com/DataDog/dd-trace-dotnet/pull/1543) * Upgrade macos build to cpp 17 * Fixes linux build Change native format to Microsoft style (https://github.com/DataDog/dd-trace-dotnet/pull/1544) * clang-format with Microsoft style * Improve formatting Add small CI fix and docker optimization (https://github.com/DataDog/dd-trace-dotnet/pull/1551) * Use a build image that is cached on the hosted windows agents, as defined here: https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md#cached-docker-images * Fix additional errors with newline character endings Ducktype - Explicit interface method implementation support (https://github.com/DataDog/dd-trace-dotnet/pull/1555) * Adds explicit interface implementation support to DuckTyping * Add support for wildcard. Update ci provider extractor according to specs (https://github.com/DataDog/dd-trace-dotnet/pull/1554) * Update ci provider extractor according to specs * fixes Replace calli call with a normal call if the target method is a generic method. (https://github.com/DataDog/dd-trace-dotnet/pull/1557) Change native format to custom style (https://github.com/DataDog/dd-trace-dotnet/pull/1553) * Change format to custom * changes * changes * Fix for windows Modify CustomSerilogLogProvider to use older LogContext.PushProperties API when LogContext.Push API is not present (https://github.com/DataDog/dd-trace-dotnet/pull/1560) This PR fixes a gap we have today: when the application's Serilog library is old enough that it does not have the LogContext.Push API, we fail to set up our logs injection. The solution involves the following changes: 1. Override the IsLoggerAvailable check to only return true when either the LogContext.Push API is available or the LogContext.PushProperties API is available. Otherwise, this returns false and the built-in LibLog SerilogLogProvider will be used. 2. Update the SerilogEnricher to optionally pass in the enricher object by itself or an array containing the enricher object, based on the Serilog API used for LogContext updates. Enable calltarget by default on .NET 4.6+ runtimes (https://github.com/DataDog/dd-trace-dotnet/pull/1542) * Enable calltarget by default on .NET 4.6+ runtimes Merge hotfix 1.27.1 (https://github.com/DataDog/dd-trace-dotnet/pull/1547) * Bump version to 1.27.1 (https://github.com/DataDog/dd-trace-dotnet/pull/1538) * Custom native IsAlreadyLoaded() implementation for .NET 4.5.x (#1528) (https://github.com/DataDog/dd-trace-dotnet/pull/1539) * Split IsAlreadyLoaded() implementation depending of the .NET Framework version (<4.6) * change comment. (cherry picked from commit 13cdc48e4f70541c07256e574f7d6ae7efeb4ab8) Co-authored-by: Tony Redondo * copy pipeline triggers from `master` and add `release/*` to ultimate-pipeline (https://github.com/DataDog/dd-trace-dotnet/pull/1545) * run pipelines in hotfix branches (https://github.com/DataDog/dd-trace-dotnet/pull/1546) * fix bad merge conflict resolution * update version in build pipeline Co-authored-by: Tony Redondo Add support for NestedTypes and GenericParameters to EnsureTypeVisibility (https://github.com/DataDog/dd-trace-dotnet/pull/1561) * Add more ducktyping tests for explict interfaces * Add a duck typing test reproducing the specific ILogger issue * Improves EnsuresTypeVisibility with support for NestedTypes and GenericParameters. Co-authored-by: Tony Redondo Initialize performance counters asynchronously (https://github.com/DataDog/dd-trace-dotnet/pull/1564) Remove callsite benchmarks and set iteration time back to 2 seconds (https://github.com/DataDog/dd-trace-dotnet/pull/1511) Nuke build: overwrite files when copying trace home directory (https://github.com/DataDog/dd-trace-dotnet/pull/1567) Wait 10 more seconds on runtime metrics tests (https://github.com/DataDog/dd-trace-dotnet/pull/1566) hide warnings for EOL .NET Core targets (https://github.com/DataDog/dd-trace-dotnet/pull/1569) Use a UUID for runtime-id instead of container id (https://github.com/DataDog/dd-trace-dotnet/pull/1548) * Use a UUID for runtime-id instead of container id Fix x86 builds in consolidated pipeline (https://github.com/DataDog/dd-trace-dotnet/pull/1563) * Rename platform -> buildPlatform Nuke uses the Platform variable to switch between x86/x64 We could also explicitly add `-Platform $(buildPlatform)`; the current approach sets it implicitly * Add missing build configs for WebForms project * Update Nuke integration test runs to use x86 SDK when set to x86 Attempting to load the x86 compiled libs into the x64 bit process causes BadImageFormatExceptions * Add templates for installing the 32 bit .NET SDKs Install the x86 SDKs in Windows integration tests * Add check for using install-dotnet-sdk-32bit wrong Fix race condition in PerformanceCountersListenerTests (https://github.com/DataDog/dd-trace-dotnet/pull/1573) Revert the order in which the log providers are resolved (https://github.com/DataDog/dd-trace-dotnet/pull/1578) Update README (https://github.com/DataDog/dd-trace-dotnet/pull/1576) Reduce dependencies between build tools and helper projects (https://github.com/DataDog/dd-trace-dotnet/pull/1568) * reduce dependencies by using EnvironmentTools.GetSolutionDirectory() instead of EnvironmentHelpers * add TracerVersion to SetAllVersions * remove unused code * remove dependency on Datadog.Core.Tools * add xml-doc comments * make SetAllVersions non-static to remove the static properties and pass path as ctor argument CI tweaks (https://github.com/DataDog/dd-trace-dotnet/pull/1570) * Extract ARM64 jobs from linux The linux hosts have different availability to the linux jobs, so reduces unnecessary blocking if one or the others are not available. As a side effect of splitting these out, it reduces the size of the strategy matrix variables too. * Increase startup timeout on CosmosDB emulator * Don't use Console.Writeline in xUnit tests Adds cruft to otherwise successful test runs * "simplify" the benchmarks/throughput test variables Previously we had two variables to control whether to run the benchmarks, but as there's already a UI for selecting which stages to run, this seems redundant. We are likely going to start running other stages on a scheduled build too, so exposing that directly makes more sense I think * Add a step to the pipeline to upload to the Azure feed Pulls down all our "publish" artefacts and publishes them all as a universal package * Add missing Arm64 dependencies * Fix version extraction * Create a bundled "release" artifact * Fix version number in artifact * Set Platform when publishing This only seems to be necessary locally, but I'm not entirely sure why! * Fix dd-tracer-home Delete old unused pipelines and files (https://github.com/DataDog/dd-trace-dotnet/pull/1513) * Move iis dockerfile to live with others * Remove other pipelines (all handled by ultimate-pipeline) * Remove no-longer-necessary docker-compose targets * Delete unused dockerfiles and scripts * Remove sample targets in docker-compose.yml Somewhat opinionated, but as services are exposed on ports anyway, just as easy to run samples locally instead (Also, there's a nuke target for that) * Start annotating which proj targets we actually use * Remove unused targets from Datadog.Trace.proj * This isn't the YAML you're looking for... * Remove deleted files from solution folder * Remove deleted file from SetAllVersions * Delete unused Samples-iis.sln Fixes writing the environment values in the logs on non windows platforms. (https://github.com/DataDog/dd-trace-dotnet/pull/1581) fix "PrepareRelease msi" command (https://github.com/DataDog/dd-trace-dotnet/pull/1583) Add support for Microsoft.Data.SqlClient 3.* (https://github.com/DataDog/dd-trace-dotnet/pull/1579) * Add support for Microsoft.Data.SqlClient 3.* Fix flaky Kafka test (https://github.com/DataDog/dd-trace-dotnet/pull/1585) In Confluent.Kafka 1.5.3, attempting to consume from a non-existent topic throws an exception. Catching the exception isn't enough, as it causes the consumer to no longer consume, even if the topic does exist later. In the sample app, there was a race condition, whereby if the topic hadn't completely finished being created, the consumer would fail, causing the test to fail. As a workaround, we use a separate consumer for the initial "manual" consumes, to give time for the topic to be ready. To ensure the fix works, we also _explicitly_ consume against a non-existent topic, to ensure we are expecting those errors. > Note, I tried converting this test to snapshot testing, but the actual number of spans is indeterminate, as we can get multiple consume spans for a single message, which makes snapshot testing difficult. Small ASP.NET Snapshot refactoring (https://github.com/DataDog/dd-trace-dotnet/pull/1580) * Update VerifyHelper to reorder tags in snapshots Obviously, being a dictionary, the enumeration order is technically indeterminate, but in practice, this reordering seems to work, and is necessary where the order tags are added to the span at the source may change per invocation * Move snapshots into a Snaphots sub folder Lose the benefits of code folding in VS/Rider, but there's so many, it's too unwieldy within GitHub/filesystem currently * Move ASP.NET Snapshots to sub folder * Update aspnet snapshots to reorder tags and add missing runtime-id * Fix directory char in samples directory Uses correct character regardless of OS This was causing some issues with IisExpress for me locally * Don't pass executable AND applicationPath to StartProcess I personally found this really confusing, especially when it comes to aspnetcore, and has clearly evolved a lot - there's two paths passed to it, sometimes one is executed, sometimes the other etc. Plus double negatives. Instead, I pass the executable, add applicationPath to args if necessary in the callee, and explicitly allow passing the process to profile (optional). I think that makes things a bit clearer, but it could do with more refactoring, and reducing of duplication tbh. * Allow specifying how many web server spans are expected in TestHelper Revert "Delete old unused pipelines and files (#1513)" (https://github.com/DataDog/dd-trace-dotnet/pull/1588) This reverts commit 3d3269ca212ff053607e8b121160c19ba4713b92. Don't create an azure artifact (https://github.com/DataDog/dd-trace-dotnet/pull/1589) It has the potential to cause issues if storage fills up, and was only created to make programmatic consumption easier. We can reevaluate at a later date --- .azure-pipelines/benchmarks.yml | 28 +- .azure-pipelines/crank.yml | 3 +- .azure-pipelines/integration-tests.yml | 111 +- .azure-pipelines/packages.yml | 13 +- .azure-pipelines/runner.yml | 38 +- .../steps/install-dotnet-5-sdk.yml | 12 +- .../steps/install-dotnet-sdk-32bit.yml | 43 + .../steps/install-dotnet-sdks.yml | 21 +- .azure-pipelines/ultimate-pipeline.yml | 348 +- .azure-pipelines/unit-tests.yml | 98 +- .clang-format | 45 +- Datadog.Trace.proj | 4 +- Datadog.Trace.sln | 24 +- azure-pipelines.yml | 4 +- build/PackageVersionsComprehensive.g.props | 3 + .../PackageVersionsGeneratorDefinitions.json | 2 +- build/PackageVersionsLatestMinors.g.props | 3 + build/_build/Build.Steps.cs | 20 +- build/_build/Build.Utilities.cs | 1 + build/_build/Build.cs | 2 +- build/_build/DotNetSettingsExtensions.cs | 25 + ...adog.Trace.ClrProfiler.IntegrationTests.sh | 4 +- .../Datadog.Trace.ClrProfiler.Native.sh | 25 +- .../IIS/LoaderOptimizationRegKey.dockerfile | 8 +- build/docker/build.sh | 6 - build/docker/linux-build.dockerfile | 12 +- build/docker/package.sh | 30 +- build/docker/with-profiler-logs.bash | 5 +- build/docker/with-profiler.bash | 8 +- .../PrepareRelease/PrepareRelease.csproj | 5 +- build/tools/PrepareRelease/Program.cs | 35 +- build/tools/PrepareRelease/SetAllVersions.cs | 65 +- build/tools/PrepareRelease/publish-all.bat | 9 +- docker-compose.yml | 4 +- docs/README.md | 78 + integrations.json | 178 +- .../CIEnvironmentValues.cs | 59 +- .../AdoNetClientInstrumentMethodAttribute.cs | 33 +- .../AdoNet/AdoNetDefinitions.cs | 4 +- .../CommandExecuteReaderAsyncIntegration.cs | 5 +- ...BehaviorAndCancellationAsyncIntegration.cs | 50 + ...ecuteReaderWithBehaviorAsyncIntegration.cs | 7 +- ...eReaderWithCancellationAsyncIntegration.cs | 47 + .../AdoNet/MySql/MySqlDefinitions.cs | 6 +- .../AdoNet/Npgsql/NpgsqlDefinitions.cs | 4 +- .../AdoNet/SqlClient/SqlClientConstants.cs | 2 +- .../AdoNet/SqlClient/SqlClientDefinitions.cs | 33 +- .../AdoNet/Sqlite/SqliteDefinitions.cs | 4 +- ...UnitTestAssemblyFinishedCtorIntegration.cs | 2 +- .../CMakeLists.txt | 8 +- .../calltarget_tokens.cpp | 2163 +++--- .../calltarget_tokens.h | 227 +- .../class_factory.cpp | 93 +- .../class_factory.h | 29 +- .../clr_helpers.cpp | 2918 ++++---- .../clr_helpers.h | 737 ++- .../com_ptr.h | 290 +- .../cor_profiler.cpp | 5858 +++++++++-------- .../cor_profiler.h | 272 +- .../cor_profiler_base.cpp | 644 +- .../cor_profiler_base.h | 441 +- .../dd_profiler_constants.h | 79 +- .../dllmain.cpp | 72 +- .../dllmain.h | 2 +- .../environment_variables.h | 202 +- .../environment_variables_util.h | 130 +- .../il_rewriter.cpp | 985 +-- .../il_rewriter.h | 179 +- .../il_rewriter_wrapper.cpp | 487 +- .../il_rewriter_wrapper.h | 77 +- .../integration.cpp | 175 +- .../integration.h | 497 +- .../integration_loader.cpp | 437 +- .../integration_loader.h | 20 +- .../interop.cpp | 11 +- .../lib/coreclr/src/README.md | 20 + .../lib/coreclr/src/pal/inc/rt/sal.h | 8 +- .../logging.cpp | 156 +- .../logging.h | 75 +- src/Datadog.Trace.ClrProfiler.Native/macros.h | 43 +- .../metadata_builder.cpp | 264 +- .../metadata_builder.h | 52 +- .../miniutf.cpp | 604 +- .../miniutf.hpp | 43 +- .../miniutfdata.h | 3354 +++++----- .../module_metadata.h | 181 +- src/Datadog.Trace.ClrProfiler.Native/pal.h | 108 +- .../rejit_handler.cpp | 345 +- .../rejit_handler.h | 330 +- .../resource.h | 16 +- .../sig_helpers.cpp | 476 +- .../sig_helpers.h | 5 +- src/Datadog.Trace.ClrProfiler.Native/stats.h | 233 +- .../string.cpp | 78 +- src/Datadog.Trace.ClrProfiler.Native/string.h | 7 +- src/Datadog.Trace.ClrProfiler.Native/util.cpp | 164 +- src/Datadog.Trace.ClrProfiler.Native/util.h | 111 +- src/Datadog.Trace/DuckTyping/DuckAttribute.cs | 5 + .../DuckTyping/DuckType.Methods.cs | 32 +- .../DuckTyping/DuckType.Utilities.cs | 40 +- .../Logging/CustomSerilogLogProvider.cs | 52 +- .../Logging/LibLogScopeEventSubscriber.cs | 18 +- src/Datadog.Trace/Logging/SerilogEnricher.cs | 14 +- .../PerformanceCountersListener.cs | 65 +- src/Datadog.Trace/Tagging/TagsList.cs | 9 + src/Datadog.Trace/Tags.cs | 2 + src/Datadog.Trace/Tracer.cs | 20 +- .../AWS/AwsSqsTests.cs | 2 +- .../AdoNet/MicrosoftDataSqlClientTests.cs | 7 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...dmin_Home_Index_statusCode=OK.verified.txt | 23 +- ...ath=_Admin_Home_statusCode=OK.verified.txt | 23 +- ...ces_path=_Admin_statusCode=OK.verified.txt | 23 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...lIdentifier_123_statusCode=OK.verified.txt | 21 +- ...tifier_BadValue_statusCode=OK.verified.txt | 21 +- ...ionalIdentifier_statusCode=OK.verified.txt | 21 +- ...-value=201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ..._identifier_123_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...g_DogHouse_Woof_statusCode=OK.verified.txt | 23 +- ...ataDog_DogHouse_statusCode=OK.verified.txt | 23 +- ...s_path=_DataDog_statusCode=OK.verified.txt | 23 +- ...ath=_Home_Get_3_statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...ath=_Home_Index_statusCode=OK.verified.txt | 21 +- ...aces_path=_Home_statusCode=OK.verified.txt | 21 +- ...tsTraces_path=__statusCode=OK.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...=_delay-async_0_statusCode=OK.verified.txt | 21 +- ...elay-optional_1_statusCode=OK.verified.txt | 21 +- ..._delay-optional_statusCode=OK.verified.txt | 21 +- ...s_path=_delay_0_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 21 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 21 +- ...api2_optional_1_statusCode=OK.verified.txt | 21 +- ...=_api2_optional_statusCode=OK.verified.txt | 21 +- ...uscode_201_statusCode=Created.verified.txt | 21 +- ...statusCode=ServiceUnavailable.verified.txt | 25 +- ...tatusCode=InternalServerError.verified.txt | 25 +- ...entfailure_true_statusCode=OK.verified.txt | 21 +- ..._absolute-route_statusCode=OK.verified.txt | 17 +- ...i_delay-async_0_statusCode=OK.verified.txt | 17 +- ...elay-optional_1_statusCode=OK.verified.txt | 17 +- ..._delay-optional_statusCode=OK.verified.txt | 17 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 17 +- ...api_environment_statusCode=OK.verified.txt | 17 +- ...uscode_201_statusCode=Created.verified.txt | 17 +- ...statusCode=ServiceUnavailable.verified.txt | 21 +- ...tatusCode=InternalServerError.verified.txt | 21 +- ...nt-failure_true_statusCode=OK.verified.txt | 17 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 13 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 13 +- ...api2_optional_1_statusCode=OK.verified.txt | 13 +- ...=_api2_optional_statusCode=OK.verified.txt | 13 +- ...uscode_201_statusCode=Created.verified.txt | 13 +- ...statusCode=ServiceUnavailable.verified.txt | 15 +- ...tatusCode=InternalServerError.verified.txt | 13 +- ...entfailure_true_statusCode=OK.verified.txt | 13 +- ..._absolute-route_statusCode=OK.verified.txt | 9 +- ...i_delay-async_0_statusCode=OK.verified.txt | 9 +- ...elay-optional_1_statusCode=OK.verified.txt | 9 +- ..._delay-optional_statusCode=OK.verified.txt | 9 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 9 +- ...api_environment_statusCode=OK.verified.txt | 9 +- ...uscode_201_statusCode=Created.verified.txt | 9 +- ...statusCode=ServiceUnavailable.verified.txt | 11 +- ...tatusCode=InternalServerError.verified.txt | 9 +- ...nt-failure_true_statusCode=OK.verified.txt | 9 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 13 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 13 +- ...api2_optional_1_statusCode=OK.verified.txt | 13 +- ...=_api2_optional_statusCode=OK.verified.txt | 13 +- ...uscode_201_statusCode=Created.verified.txt | 13 +- ...statusCode=ServiceUnavailable.verified.txt | 15 +- ...tatusCode=InternalServerError.verified.txt | 13 +- ...entfailure_true_statusCode=OK.verified.txt | 13 +- ..._absolute-route_statusCode=OK.verified.txt | 9 +- ...i_delay-async_0_statusCode=OK.verified.txt | 9 +- ...elay-optional_1_statusCode=OK.verified.txt | 9 +- ..._delay-optional_statusCode=OK.verified.txt | 9 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 9 +- ...api_environment_statusCode=OK.verified.txt | 9 +- ...uscode_201_statusCode=Created.verified.txt | 9 +- ...statusCode=ServiceUnavailable.verified.txt | 11 +- ...tatusCode=InternalServerError.verified.txt | 9 +- ...nt-failure_true_statusCode=OK.verified.txt | 9 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 13 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 13 +- ...api2_optional_1_statusCode=OK.verified.txt | 13 +- ...=_api2_optional_statusCode=OK.verified.txt | 13 +- ...uscode_201_statusCode=Created.verified.txt | 13 +- ...statusCode=ServiceUnavailable.verified.txt | 15 +- ...tatusCode=InternalServerError.verified.txt | 13 +- ...entfailure_true_statusCode=OK.verified.txt | 13 +- ..._absolute-route_statusCode=OK.verified.txt | 9 +- ...i_delay-async_0_statusCode=OK.verified.txt | 9 +- ...elay-optional_1_statusCode=OK.verified.txt | 9 +- ..._delay-optional_statusCode=OK.verified.txt | 9 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 9 +- ...api_environment_statusCode=OK.verified.txt | 9 +- ...uscode_201_statusCode=Created.verified.txt | 9 +- ...statusCode=ServiceUnavailable.verified.txt | 11 +- ...tatusCode=InternalServerError.verified.txt | 9 +- ...nt-failure_true_statusCode=OK.verified.txt | 9 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 13 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 13 +- ...api2_optional_1_statusCode=OK.verified.txt | 13 +- ...=_api2_optional_statusCode=OK.verified.txt | 13 +- ...uscode_201_statusCode=Created.verified.txt | 13 +- ...statusCode=ServiceUnavailable.verified.txt | 15 +- ...tatusCode=InternalServerError.verified.txt | 13 +- ...entfailure_true_statusCode=OK.verified.txt | 13 +- ..._absolute-route_statusCode=OK.verified.txt | 9 +- ...i_delay-async_0_statusCode=OK.verified.txt | 9 +- ...elay-optional_1_statusCode=OK.verified.txt | 9 +- ..._delay-optional_statusCode=OK.verified.txt | 9 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 9 +- ...api_environment_statusCode=OK.verified.txt | 9 +- ...uscode_201_statusCode=Created.verified.txt | 9 +- ...statusCode=ServiceUnavailable.verified.txt | 11 +- ...tatusCode=InternalServerError.verified.txt | 9 +- ...nt-failure_true_statusCode=OK.verified.txt | 9 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 13 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 13 +- ...api2_optional_1_statusCode=OK.verified.txt | 13 +- ...=_api2_optional_statusCode=OK.verified.txt | 13 +- ...uscode_201_statusCode=Created.verified.txt | 13 +- ...statusCode=ServiceUnavailable.verified.txt | 15 +- ...tatusCode=InternalServerError.verified.txt | 13 +- ...entfailure_true_statusCode=OK.verified.txt | 13 +- ..._absolute-route_statusCode=OK.verified.txt | 9 +- ...i_delay-async_0_statusCode=OK.verified.txt | 9 +- ...elay-optional_1_statusCode=OK.verified.txt | 9 +- ..._delay-optional_statusCode=OK.verified.txt | 9 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 9 +- ...api_environment_statusCode=OK.verified.txt | 9 +- ...uscode_201_statusCode=Created.verified.txt | 9 +- ...statusCode=ServiceUnavailable.verified.txt | 11 +- ...tatusCode=InternalServerError.verified.txt | 9 +- ...nt-failure_true_statusCode=OK.verified.txt | 9 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 13 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 13 +- ...api2_optional_1_statusCode=OK.verified.txt | 13 +- ...=_api2_optional_statusCode=OK.verified.txt | 13 +- ...uscode_201_statusCode=Created.verified.txt | 13 +- ...statusCode=ServiceUnavailable.verified.txt | 15 +- ...tatusCode=InternalServerError.verified.txt | 13 +- ...entfailure_true_statusCode=OK.verified.txt | 13 +- ..._absolute-route_statusCode=OK.verified.txt | 9 +- ...i_delay-async_0_statusCode=OK.verified.txt | 9 +- ...elay-optional_1_statusCode=OK.verified.txt | 9 +- ..._delay-optional_statusCode=OK.verified.txt | 9 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 9 +- ...api_environment_statusCode=OK.verified.txt | 9 +- ...uscode_201_statusCode=Created.verified.txt | 9 +- ...statusCode=ServiceUnavailable.verified.txt | 11 +- ...tatusCode=InternalServerError.verified.txt | 9 +- ...nt-failure_true_statusCode=OK.verified.txt | 9 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 13 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 13 +- ...api2_optional_1_statusCode=OK.verified.txt | 13 +- ...=_api2_optional_statusCode=OK.verified.txt | 13 +- ...uscode_201_statusCode=Created.verified.txt | 13 +- ...statusCode=ServiceUnavailable.verified.txt | 15 +- ...tatusCode=InternalServerError.verified.txt | 13 +- ...entfailure_true_statusCode=OK.verified.txt | 13 +- ..._absolute-route_statusCode=OK.verified.txt | 9 +- ...i_delay-async_0_statusCode=OK.verified.txt | 9 +- ...elay-optional_1_statusCode=OK.verified.txt | 9 +- ..._delay-optional_statusCode=OK.verified.txt | 9 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 9 +- ...api_environment_statusCode=OK.verified.txt | 9 +- ...uscode_201_statusCode=Created.verified.txt | 9 +- ...statusCode=ServiceUnavailable.verified.txt | 11 +- ...tatusCode=InternalServerError.verified.txt | 9 +- ...nt-failure_true_statusCode=OK.verified.txt | 9 +- ...i2_delayAsync_0_statusCode=OK.verified.txt | 13 +- ...h=_api2_delay_0_statusCode=OK.verified.txt | 13 +- ...api2_optional_1_statusCode=OK.verified.txt | 13 +- ...=_api2_optional_statusCode=OK.verified.txt | 13 +- ...uscode_201_statusCode=Created.verified.txt | 13 +- ...statusCode=ServiceUnavailable.verified.txt | 15 +- ...tatusCode=InternalServerError.verified.txt | 13 +- ...entfailure_true_statusCode=OK.verified.txt | 13 +- ..._absolute-route_statusCode=OK.verified.txt | 9 +- ...i_delay-async_0_statusCode=OK.verified.txt | 9 +- ...elay-optional_1_statusCode=OK.verified.txt | 9 +- ..._delay-optional_statusCode=OK.verified.txt | 9 +- ...th=_api_delay_0_statusCode=OK.verified.txt | 9 +- ...api_environment_statusCode=OK.verified.txt | 9 +- ...uscode_201_statusCode=Created.verified.txt | 9 +- ...statusCode=ServiceUnavailable.verified.txt | 11 +- ...tatusCode=InternalServerError.verified.txt | 9 +- ...nt-failure_true_statusCode=OK.verified.txt | 9 +- .../CI/MsTestV2Tests.cs | 9 + .../CI/NUnitTests.cs | 9 + .../CI/XUnitTests.cs | 9 + .../CosmosTests.cs | 4 +- ....Trace.ClrProfiler.IntegrationTests.csproj | 3 - .../Helpers/TestHelper.cs | 34 +- .../Helpers/VerifyHelper.cs | 25 +- .../KafkaTests.cs | 21 +- .../LoadTests/LoadTestBase.cs | 43 +- .../PackageVersionsComprehensive.g.cs | 1 + .../PackageVersionsLatestMinors.g.cs | 1 + .../SmokeTests/SmokeTestBase.cs | 2 +- .../Datadog.Trace.DuckTyping.Tests.csproj | 5 + .../DuckChainingWithExplicitInterfaceTests.cs | 113 + .../DuckExplicitInterfacePrivateTests.cs | 177 + .../DuckExplicitInterfaceTests.cs | 174 + .../DuckILoggerTests.cs | 77 + .../EnvironmentHelper.cs | 55 +- .../ProfilerHelper.cs | 25 +- .../PerformanceCountersListenerTests.cs | 64 +- .../Tagging/TagsListTests.cs | 4 +- test/Datadog.Trace.Tests/TracerTests.cs | 12 + .../Benchmarks.Trace/AspNetCoreBenchmark.cs | 73 +- .../Benchmarks.Trace/DbCommandBenchmark.cs | 24 +- .../ElasticsearchBenchmark.cs | 46 +- .../Benchmarks.Trace/GraphQLBenchmark.cs | 26 +- .../Benchmarks.Trace/HttpClientBenchmark.cs | 47 +- .../Benchmarks.Trace/RedisBenchmark.cs | 33 +- .../Samples.WebForms/Samples.WebForms.csproj | 38 + .../integrations/Samples.Kafka/Consumer.cs | 38 +- .../integrations/Samples.Kafka/Program.cs | 35 +- .../Samples.Kafka/TopicHelpers.cs | 2 + .../Samples.RuntimeMetrics/Program.cs | 13 +- .../AspNetMvcCorePerformance.csproj | 3 + tools/Datadog.Core.Tools/ConcurrencyHelper.cs | 157 - tools/Datadog.Core.Tools/EnvironmentTools.cs | 47 - tools/Datadog.Core.Tools/TracerVersion.cs | 33 - tools/UpdateVendors/Program.cs | 4 +- tools/UpdateVendors/UpdateVendors.csproj | 2 +- 1060 files changed, 23834 insertions(+), 21170 deletions(-) create mode 100644 .azure-pipelines/steps/install-dotnet-sdk-32bit.yml create mode 100644 src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration.cs create mode 100644 src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithCancellationAsyncIntegration.cs create mode 100644 src/Datadog.Trace.ClrProfiler.Native/lib/coreclr/src/README.md rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (97%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt (98%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (90%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (93%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (95%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (95%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (95%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt (89%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt (95%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt (88%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt (84%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt (86%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt (85%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt (87%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt (94%) rename test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/{ => Snapshots}/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt (84%) create mode 100644 test/Datadog.Trace.DuckTyping.Tests/DuckChainingWithExplicitInterfaceTests.cs create mode 100644 test/Datadog.Trace.DuckTyping.Tests/DuckExplicitInterfacePrivateTests.cs create mode 100644 test/Datadog.Trace.DuckTyping.Tests/DuckExplicitInterfaceTests.cs create mode 100644 test/Datadog.Trace.DuckTyping.Tests/DuckILoggerTests.cs delete mode 100644 tools/Datadog.Core.Tools/ConcurrencyHelper.cs delete mode 100644 tools/Datadog.Core.Tools/TracerVersion.cs diff --git a/.azure-pipelines/benchmarks.yml b/.azure-pipelines/benchmarks.yml index bd696cfa4c..7b5200d1fc 100644 --- a/.azure-pipelines/benchmarks.yml +++ b/.azure-pipelines/benchmarks.yml @@ -3,20 +3,36 @@ pr: none variables: buildConfiguration: release + dotnetCoreSdkVersion: 5.0.103 + ddApiKey: $(DD_API_KEY) publishOutput: $(Build.SourcesDirectory)/src/bin/managed-publish +# Declare the datadog agent as a resource to be used as a pipeline service +resources: + containers: + - container: dd_agent + image: datadog/agent + ports: + - 8126:8126 + env: + DD_API_KEY: $(ddApiKey) + DD_INSIDE_CI: true + stages: - stage: build jobs: - #### Windows + #### Windows - job: Windows pool: Benchmarks - + workspace: clean: all + # Enable the Datadog Agent service for this job + services: + dd_agent: dd_agent variables: tracerHomeName: windows-tracer-home tracerHome: $(System.DefaultWorkingDirectory)/src/bin/$(tracerHomeName) @@ -29,7 +45,7 @@ stages: displayName: install dotnet core sdk inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdkVersion) - task: NuGetToolInstaller@1 displayName: install nuget @@ -52,10 +68,10 @@ stages: inputs: command: 'run' projects: '$(System.DefaultWorkingDirectory)/test/benchmarks/Benchmarks.Trace/Benchmarks.Trace.csproj' - arguments: '-c Release -f netcoreapp3.1 -- -r net472 netcoreapp3.1 -m -f * --iterationTime 1500' + arguments: '-c Release -f netcoreapp3.1 -- -r net472 netcoreapp3.1 -m -f * --iterationTime 2000' env: - OTEL_ENV: CI - OTEL_SERVICE: dd-trace-dotnet + DD_ENV: CI + DD_SERVICE: dd-trace-dotnet - task: PowerShell@2 inputs: diff --git a/.azure-pipelines/crank.yml b/.azure-pipelines/crank.yml index 8ac0c47f7d..033a182756 100644 --- a/.azure-pipelines/crank.yml +++ b/.azure-pipelines/crank.yml @@ -3,7 +3,6 @@ pr: none jobs: - - job: windows_profiler pool: vmImage: windows-2019 @@ -188,4 +187,4 @@ jobs: chmod +x ./run.sh ./run.sh env: - OTEL_SERVICE: dd-trace-dotnet + DD_SERVICE: dd-trace-dotnet diff --git a/.azure-pipelines/integration-tests.yml b/.azure-pipelines/integration-tests.yml index 3d1f6fad1c..0f348669ad 100644 --- a/.azure-pipelines/integration-tests.yml +++ b/.azure-pipelines/integration-tests.yml @@ -1,7 +1,9 @@ trigger: branches: include: - - main + - master + - release/* + - hotfix/* paths: exclude: - docs/* @@ -9,8 +11,9 @@ trigger: pr: branches: include: - - main + - master - release/* + - hotfix/* paths: exclude: - docs/* @@ -22,6 +25,7 @@ pool: variables: buildConfiguration: Release publishOutput: $(System.DefaultWorkingDirectory)/src/bin/managed-publish + dotnetCoreSdk5Version: 5.0.103 jobs: @@ -38,7 +42,8 @@ jobs: displayName: install dotnet core sdk 5 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) + includePreviewVersions: true - task: DotNetCoreCLI@2 displayName: dotnet build Datadog.Trace.ClrProfiler.Managed.Loader @@ -66,7 +71,7 @@ jobs: zipAfterPublish: false projects: src/Datadog.Trace.ClrProfiler.Managed/Datadog.Trace.ClrProfiler.Managed.csproj arguments: --configuration $(buildConfiguration) --framework netcoreapp3.1 --output $(publishOutput)/netcoreapp3.1 - + - task: DockerCompose@0 displayName: docker-compose run Profiler inputs: @@ -89,7 +94,7 @@ jobs: publishTargetFramework: netcoreapp3.1 net5_0: publishTargetFramework: net5.0 - + variables: TestAllPackageVersions: true @@ -138,7 +143,8 @@ jobs: displayName: install dotnet core sdk 5 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) + includePreviewVersions: true - task: DotNetCoreCLI@2 displayName: dotnet build Datadog.Trace.ClrProfiler.Managed.Loader @@ -369,7 +375,7 @@ jobs: containerregistrytype: Container Registry dockerComposeCommand: down condition: succeededOrFailed() - + - job: Windows_IIS timeoutInMinutes: 100 strategy: @@ -408,7 +414,8 @@ jobs: displayName: install dotnet core sdk 5 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) + includePreviewVersions: true - task: NuGetToolInstaller@1 displayName: install nuget @@ -489,7 +496,7 @@ jobs: [System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") $publish = New-Object System.EnterpriseServices.Internal.Publish Get-ChildItem $(publishOutput)/net45 -Filter *.dll | Foreach-Object { $publish.GacInstall($_.FullName) } - displayName: Add net45 OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed assets to the GAC + displayName: Add net45 Datadog.Trace.ClrProfiler.Managed assets to the GAC - task: DotNetCoreCLI@2 displayName: dotnet test --filter LoadFromGAC=True @@ -504,3 +511,89 @@ jobs: containerregistrytype: Container Registry dockerComposeCommand: down condition: succeededOrFailed() + +- job: build_linux_profiler_arm64 + pool: Arm64 + workspace: + clean: all + + steps: + + - task: DotNetCoreCLI@2 + displayName: dotnet build Datadog.Trace.ClrProfiler.Managed.Loader + inputs: + command: build + projects: src/Datadog.Trace.ClrProfiler.Managed.Loader/Datadog.Trace.ClrProfiler.Managed.Loader.csproj + arguments: --configuration $(buildConfiguration) /nowarn:netsdk1138 + + - task: DotNetCoreCLI@2 + displayName: dotnet publish Datadog.Trace.ClrProfiler.Managed 2.0 + inputs: + command: publish + publishWebProjects: false + modifyOutputPath: false + zipAfterPublish: false + projects: src/Datadog.Trace.ClrProfiler.Managed/Datadog.Trace.ClrProfiler.Managed.csproj + arguments: --configuration $(buildConfiguration) --framework netstandard2.0 --output $(publishOutput)/netstandard2.0 + + - task: DotNetCoreCLI@2 + displayName: dotnet publish Datadog.Trace.ClrProfiler.Managed 3.1 + inputs: + command: publish + publishWebProjects: false + modifyOutputPath: false + zipAfterPublish: false + projects: src/Datadog.Trace.ClrProfiler.Managed/Datadog.Trace.ClrProfiler.Managed.csproj + arguments: --configuration $(buildConfiguration) --framework netcoreapp3.1 --output $(publishOutput)/netcoreapp3.1 + + - task: DockerCompose@0 + displayName: docker-compose run Profiler + inputs: + containerregistrytype: Container Registry + dockerComposeCommand: run -e buildConfiguration=$(buildConfiguration) Profiler + + - publish: $(System.DefaultWorkingDirectory)/src/Datadog.Trace.ClrProfiler.Native/bin/$(buildConfiguration)/x64 + artifact: linux-tracer-home_arm + +- job: Linux_arm64 + pool: Arm64 + workspace: + clean: all + + dependsOn: build_linux_profiler_arm64 + condition: succeeded() + + variables: + TestAllPackageVersions: true + + steps: + - download: current + artifact: linux-tracer-home_arm + + - task: CopyFiles@2 + inputs: + sourceFolder: $(Pipeline.Workspace)/linux-tracer-home_arm + targetFolder: $(System.DefaultWorkingDirectory)/src/Datadog.Trace.ClrProfiler.Native/bin/$(buildConfiguration)/arm64 + + - task: DockerCompose@0 + displayName: docker-compose run build.arm64 + inputs: + containerregistrytype: Container Registry + dockerComposeCommand: run -e TestAllPackageVersions=true -e buildConfiguration=$(buildConfiguration) -e publishTargetFramework=net5.0 build.arm64 + + - task: DockerCompose@0 + displayName: docker-compose run IntegrationTests.ARM64.Core50 + inputs: + containerregistrytype: Container Registry + dockerComposeCommand: run -e TestAllPackageVersions=true -e buildConfiguration=$(buildConfiguration) IntegrationTests.ARM64.Core50 + + - publish: build_data + artifact: $(Agent.JobName)_profiler-logs-$(System.JobAttempt) + condition: succeededOrFailed() + + - task: PublishTestResults@2 + displayName: publish test results + inputs: + testResultsFormat: VSTest + testResultsFiles: test/**/*.trx + condition: succeededOrFailed() diff --git a/.azure-pipelines/packages.yml b/.azure-pipelines/packages.yml index 1d60764b4e..61678bd97d 100644 --- a/.azure-pipelines/packages.yml +++ b/.azure-pipelines/packages.yml @@ -3,6 +3,7 @@ pr: none variables: buildConfiguration: release + dotnetCoreSdkVersion: 5.0.103 publishOutput: $(Build.SourcesDirectory)/src/bin/managed-publish stages: @@ -26,7 +27,7 @@ stages: displayName: install dotnet core sdk 5.0 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdkVersion) - task: NuGetToolInstaller@1 displayName: install nuget @@ -82,7 +83,7 @@ stages: - task: UseDotNet@2 displayName: install dotnet core sdk inputs: - version: 5.0.x + version: $(dotnetCoreSdkVersion) - task: DotNetCoreCLI@2 displayName: dotnet build Datadog.Trace.ClrProfiler.Managed.Loader @@ -136,7 +137,7 @@ stages: - task: UseDotNet@2 displayName: install dotnet core sdk inputs: - version: 5.0.x + version: $(dotnetCoreSdkVersion) - task: DotNetCoreCLI@2 displayName: dotnet build Datadog.Trace.ClrProfiler.Managed.Loader @@ -299,11 +300,11 @@ stages: env: SECRET: $(AWS_SECRET_ACCESS_KEY) - # by default, run this step on main branch only. + # by default, run this step on master branch only. # use "push_artifacts_to_s3" to override: # "true": run this step # "false": do NOT run this step - # else: run this stage if branch is main + # else: run this stage if branch is master - script: aws s3 cp s3_upload s3://datadog-reliability-env/dotnet/ --recursive displayName: Upload deb, MSI, index.txt to s3 @@ -313,6 +314,6 @@ stages: ne(variables['push_artifacts_to_s3'], 'false'), or( eq(variables['push_artifacts_to_s3'], 'true'), - eq(variables['Build.SourceBranch'], 'refs/heads/main') + eq(variables['Build.SourceBranch'], 'refs/heads/master') ) ) diff --git a/.azure-pipelines/runner.yml b/.azure-pipelines/runner.yml index 22a40f9317..72a9651552 100644 --- a/.azure-pipelines/runner.yml +++ b/.azure-pipelines/runner.yml @@ -3,6 +3,20 @@ pr: none variables: publishOutput: $(System.DefaultWorkingDirectory)/src/bin/managed-publish + dotnetCoreSdk5Version: 5.0.103 + ddApiKey: $(DD_API_KEY) + DD_DOTNET_TRACER_MSBUILD: + +# Declare the datadog agent as a resource to be used as a pipeline service +resources: + containers: + - container: dd_agent + image: datadog/agent + ports: + - 8126:8126 + env: + DD_API_KEY: $(ddApiKey) + DD_INSIDE_CI: true jobs: @@ -13,7 +27,7 @@ jobs: displayName: install dotnet core sdk 5.0 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) includePreviewVersions: true - task: DotNetCoreCLI@2 @@ -112,7 +126,7 @@ jobs: displayName: install dotnet core sdk 5.0 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) - task: DotNetCoreCLI@2 displayName: dotnet build @@ -143,6 +157,10 @@ jobs: pool: vmImage: windows-2019 + # Enable the Datadog Agent service for this job + services: + dd_agent: dd_agent + steps: - download: current artifact: linux-tracer-home @@ -203,22 +221,22 @@ jobs: displayName: install dotnet core sdk 5.0 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) includePreviewVersions: true - task: DotNetCoreCLI@2 displayName: dotnet build inputs: command: build - configuration: $(buildConfiguration) - arguments: -l:DatadogLogger,"$(OTEL_DOTNET_TRACER_MSBUILD)" + configuration: Release + arguments: -l:DatadogLogger,"$(DD_DOTNET_TRACER_MSBUILD)" projects: | src/**/*.csproj test/**/*.Tests.csproj benchmarks/**/*.csproj !src/Datadog.Trace.Tools.Runner/*.csproj env: - OTEL_SERVICE_NAME: dd-tracer-dotnet + DD_SERVICE: dd-trace-dotnet - task: NuGetToolInstaller@1 displayName: install nuget @@ -233,19 +251,19 @@ jobs: displayName: tool build inputs: solution: src/Datadog.Trace.Tools.Runner/Datadog.Trace.Tools.Runner.proj - msbuildArguments: /t:BuildTool /l:DatadogLogger,"$(OTEL_DOTNET_TRACER_MSBUILD)" + msbuildArguments: /t:BuildTool /l:DatadogLogger,"$(DD_DOTNET_TRACER_MSBUILD)" maximumCpuCount: true env: - OTEL_SERVICE_NAME: dd-tracer-dotnet-runner-tool + DD_SERVICE: dd-trace-dotnet-runner-tool - task: MSBuild@1 displayName: standalone build inputs: solution: src/Datadog.Trace.Tools.Runner/Datadog.Trace.Tools.Runner.proj - msbuildArguments: /t:BuildStandalone /l:DatadogLogger,"$(OTEL_DOTNET_TRACER_MSBUILD)" + msbuildArguments: /t:BuildStandalone /l:DatadogLogger,"$(DD_DOTNET_TRACER_MSBUILD)" maximumCpuCount: true env: - OTEL_SERVICE_NAME: dd-tracer-dotnet-runner-tool + DD_SERVICE: dd-trace-dotnet-runner-tool - task: DeleteFiles@1 displayName: 'Remove unneeded files' diff --git a/.azure-pipelines/steps/install-dotnet-5-sdk.yml b/.azure-pipelines/steps/install-dotnet-5-sdk.yml index f70b06c162..493ab90d6c 100644 --- a/.azure-pipelines/steps/install-dotnet-5-sdk.yml +++ b/.azure-pipelines/steps/install-dotnet-5-sdk.yml @@ -1,7 +1,17 @@ +parameters: + - name: includeX86 + type: boolean + default: false + steps: - task: UseDotNet@2 displayName: install dotnet core sdk 5 inputs: packageType: sdk version: $(dotnetCoreSdk5Version) - includePreviewVersions: true \ No newline at end of file + includePreviewVersions: true + +- ${{ if eq(parameters.includeX86, true) }}: + - template: install-dotnet-sdk-32bit.yml + parameters: + sdkVersion: $(dotnetCoreSdk5Version) \ No newline at end of file diff --git a/.azure-pipelines/steps/install-dotnet-sdk-32bit.yml b/.azure-pipelines/steps/install-dotnet-sdk-32bit.yml new file mode 100644 index 0000000000..97a9ef0653 --- /dev/null +++ b/.azure-pipelines/steps/install-dotnet-sdk-32bit.yml @@ -0,0 +1,43 @@ +parameters: + - name: sdkVersion + type: string + default: '' + + - name: channel + type: string + default: '' + +steps: + - bash: | + if [ -n "$CHANNEL" ] && [ -n "$SDKVERSION" ]; then + echo "##vso[task.logissue type=error;]You can't provide both \"channel\" and \"sdkVersion\". Pick one." + echo "##vso[task.complete result=Failed;]" + elif [ -z "$CHANNEL" ] && [ -z "$SDKVERSION" ]; then + echo "##vso[task.logissue type=error;]You must provide either \"channel\" or \"sdkVersion\"." + echo "##vso[task.complete result=Failed;]" + fi + env: + CHANNEL: ${{ parameters.channel }} + SDKVERSION: ${{ parameters.sdkVersion }} + displayName: Validate parameters + + - ${{if ne(parameters.sdkVersion, '') }}: + - powershell: | + echo "Downloading dotnet-install.ps1" + Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile dotnet-install.ps1 + $path = "C:\Users\VssAdministrator\AppData\Local\Microsoft\dotnet_32" + echo "Installing dotnet (x86) to $path" + ./dotnet-install.ps1 -version ${{ parameters.sdkVersion }} -Architecture x86 -NoPath -InstallDir $path + echo "Exporting path to DOTNET_EXE_32" + echo "##vso[task.setvariable variable=DOTNET_EXE_32]$path\dotnet.exe" + displayName: install dotnet core sdk ${{ parameters.sdkVersion }} (x86) + - ${{if ne(parameters.channel, '') }}: + - powershell: | + echo "Downloading dotnet-install.ps1" + Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile dotnet-install.ps1 + $path = "C:\Users\VssAdministrator\AppData\Local\Microsoft\dotnet_32" + echo "Installing dotnet (x86) to $path" + ./dotnet-install.ps1 -Channel ${{ parameters.channel }} -Architecture x86 -NoPath -InstallDir $path + echo "Exporting path to DOTNET_EXE_32" + echo "##vso[task.setvariable variable=DOTNET_EXE_32]$path\dotnet.exe" + displayName: install dotnet core sdk ${{ parameters.channel }} (x86) diff --git a/.azure-pipelines/steps/install-dotnet-sdks.yml b/.azure-pipelines/steps/install-dotnet-sdks.yml index 7a966a0771..4975298406 100644 --- a/.azure-pipelines/steps/install-dotnet-sdks.yml +++ b/.azure-pipelines/steps/install-dotnet-sdks.yml @@ -1,3 +1,8 @@ +parameters: + - name: includeX86 + type: boolean + default: false + steps: - task: UseDotNet@2 displayName: install dotnet core sdk 2.1 @@ -22,4 +27,18 @@ steps: inputs: packageType: sdk version: $(dotnetCoreSdk5Version) - includePreviewVersions: true \ No newline at end of file + includePreviewVersions: true + +- ${{ if eq(parameters.includeX86, true) }}: + - template: install-dotnet-sdk-32bit.yml + parameters: + channel: 2.1 + - template: install-dotnet-sdk-32bit.yml + parameters: + channel: 3.0 + - template: install-dotnet-sdk-32bit.yml + parameters: + channel: 3.1 + - template: install-dotnet-sdk-32bit.yml + parameters: + sdkVersion: $(dotnetCoreSdk5Version) \ No newline at end of file diff --git a/.azure-pipelines/ultimate-pipeline.yml b/.azure-pipelines/ultimate-pipeline.yml index 84371218ae..8865ed8ed3 100644 --- a/.azure-pipelines/ultimate-pipeline.yml +++ b/.azure-pipelines/ultimate-pipeline.yml @@ -2,6 +2,8 @@ trigger: branches: include: - master + - release/* + - hotfix/* - refs/tags/* exclude: - refs/pull/*/head @@ -17,6 +19,8 @@ schedules: branches: include: - master + - release/* + - hotfix/* - /benchmarks/* always: true @@ -35,8 +39,7 @@ variables: NugetPackageDirectory: $(System.DefaultWorkingDirectory)/packages relativeNugetPackageDirectory: packages # For scheduled builds, only run benchmarks and crank (and deps). - # Allow forcing a benchmark/throughput run using run_benchmarks_only=true - benchmarksOnly: ${{ or(eq(variables['Build.Reason'], 'Schedule'), eq(variables['run_benchmarks_only'], 'true')) }} # only works if you have a main branch + isScheduledBuild: ${{ eq(variables['Build.Reason'], 'Schedule') }} # only works if you have a main branch # Declare the datadog agent as a resource to be used as a pipeline service resources: @@ -79,23 +82,11 @@ stages: strategy: matrix: debian: - matrixName: debian - poolName: Azure Pipelines - vmImage: ubuntu-18.04 baseImage: debian alpine: - matrixName: alpine - poolName: Azure Pipelines - vmImage: ubuntu-18.04 baseImage: alpine - arm64: - matrixName: arm64 - poolName: Arm64 - vmImage: - baseImage: debian pool: - name: $(poolName) - vmImage: $(vmImage) + vmImage: ubuntu-18.04 steps: - template: steps/run-in-docker.yml @@ -107,24 +98,46 @@ stages: - publish: $(tracerHome) displayName: Uploading linux tracer home artifact - artifact: linux-tracer-home-$(matrixName) + artifact: linux-tracer-home-$(baseImage) - publish: $(artifacts)/linux-x64 - condition: ne(variables['matrixName'], 'arm64') displayName: Upload linux-x64 packages - artifact: linux-packages-$(matrixName) + artifact: linux-packages-$(baseImage) + + - publish: $(System.DefaultWorkingDirectory) + displayName: Upload working directory after the build + artifact: build-linux-$(baseImage)-working-directory + +- stage: build_arm64 + dependsOn: [] + jobs: + - job: build + dependsOn: [] + pool: + name: Arm64 + + steps: + - template: steps/run-in-docker.yml + parameters: + build: true + target: builder + baseImage: debian + command: "Clean BuildTracerHome ZipTracerHome" + + - publish: $(tracerHome) + displayName: Uploading linux tracer home artifact + artifact: linux-tracer-home-arm64 - publish: $(artifacts)/linux-arm64 - condition: eq(variables['matrixName'], 'arm64') displayName: Upload linux-arm64 packages - artifact: linux-packages-$(matrixName) + artifact: linux-packages-arm64 - publish: $(System.DefaultWorkingDirectory) displayName: Upload working directory after the build - artifact: build-linux-$(matrixName)-working-directory + artifact: build-linux-arm64-working-directory - stage: build_macos - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) dependsOn: [] jobs: - job: build @@ -147,7 +160,7 @@ stages: artifact: build-macos-working-directory - stage: package_windows - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) dependsOn: build_windows pool: vmImage: windows-2019 @@ -177,7 +190,7 @@ stages: artifact: nuget-packages - stage: unit_tests_windows - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) dependsOn: build_windows pool: vmImage: windows-2019 @@ -216,7 +229,7 @@ stages: condition: succeededOrFailed() - stage: unit_tests_macos - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) dependsOn: build_macos jobs: - job: managed @@ -243,35 +256,23 @@ stages: condition: succeededOrFailed() - stage: unit_tests_linux - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) dependsOn: [build_linux] jobs: - job: test strategy: matrix: debian: - matrixName: debian - poolName: Azure Pipelines - vmImage: ubuntu-18.04 baseImage: debian alpine: - matrixName: alpine - poolName: Azure Pipelines - vmImage: ubuntu-18.04 baseImage: alpine - arm64: - matrixName: arm64 - poolName: Arm64 - vmImage: - baseImage: debian pool: - name: $(poolName) - vmImage: $(vmImage) + vmImage: ubuntu-18.04 steps: - template: steps/restore-working-directory.yml parameters: - artifact: build-linux-$(matrixName)-working-directory + artifact: build-linux-$(baseImage)-working-directory - template: steps/run-in-docker.yml parameters: @@ -290,8 +291,38 @@ stages: testResultsFiles: build_data/results/**/*.trx condition: succeededOrFailed() +- stage: unit_tests_arm64 + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) + dependsOn: [build_arm64] + jobs: + - job: test + pool: + name: Arm64 + + steps: + - template: steps/restore-working-directory.yml + parameters: + artifact: build-linux-arm64-working-directory + + - template: steps/run-in-docker.yml + parameters: + build: true + baseImage: debian + command: "BuildAndRunManagedUnitTests" + + - publish: build_data + artifact: profiler-logs_unit_tests_linux_$(Agent.JobName)_$(System.JobAttempt) + condition: succeededOrFailed() + + - task: PublishTestResults@2 + displayName: publish test results + inputs: + testResultsFormat: VSTest + testResultsFiles: build_data/results/**/*.trx + condition: succeededOrFailed() + - stage: integration_tests_windows - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) dependsOn: build_windows pool: vmImage: windows-2019 @@ -302,18 +333,20 @@ stages: strategy: matrix: x64: - buildPlatform: x64 + platform: x64 x86: - buildPlatform: x86 + platform: x86 steps: - template: steps/install-dotnet-sdks.yml + parameters: + includeX86: true - template: steps/restore-working-directory.yml - powershell: | Write-Host "Starting CosmosDB Emulator" Import-Module "C:/Program Files/Azure Cosmos DB Emulator/PSModules/Microsoft.Azure.CosmosDB.Emulator" - Start-CosmosDbEmulator + Start-CosmosDbEmulator -Timeout 300 displayName: 'Start CosmosDB Emulator' workingDirectory: $(Pipeline.Workspace) @@ -328,7 +361,7 @@ stages: condition: succeededOrFailed() - stage: integration_tests_windows_iis - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) dependsOn: [build_windows, package_windows] jobs: - job: Windows_IIS @@ -336,25 +369,27 @@ stages: strategy: matrix: x64: - buildPlatform: x64 + platform: x64 enable32bit: false x86: - buildPlatform: x86 + platform: x86 enable32bit: true pool: vmImage: windows-2019 variables: - relativeMsiOutputDirectory: $(relativeArtifacts)/$(buildPlatform)/en-us + relativeMsiOutputDirectory: $(relativeArtifacts)/$(platform)/en-us steps: - template: steps/install-dotnet-sdks.yml + parameters: + includeX86: true - template: steps/restore-working-directory.yml - task: DownloadPipelineArtifact@2 displayName: Download MSI inputs: - artifact: windows-msi-$(buildPlatform) + artifact: windows-msi-$(platform) patterns: '**/*.msi' path: $(System.DefaultWorkingDirectory)/$(relativeMsiOutputDirectory) @@ -397,7 +432,7 @@ stages: condition: succeededOrFailed() - stage: integration_tests_linux - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) dependsOn: [build_linux] jobs: - job: Test @@ -406,82 +441,33 @@ stages: debian_netcoreapp2_1: publishTargetFramework: netcoreapp2.1 baseImage: debian - matrixName: debian - poolName: Azure Pipelines - vmImage: ubuntu-18.04 - dockerComposeTask: NukeIntegrationTests - dockerComposeDependenciesTask: StartDependencies debian_netcoreapp3_0: publishTargetFramework: netcoreapp3.0 baseImage: debian - matrixName: debian - poolName: Azure Pipelines - vmImage: ubuntu-18.04 - dockerComposeTask: NukeIntegrationTests - dockerComposeDependenciesTask: StartDependencies debian_netcoreapp3_1: publishTargetFramework: netcoreapp3.1 baseImage: debian - matrixName: debian - poolName: Azure Pipelines - vmImage: ubuntu-18.04 - dockerComposeTask: NukeIntegrationTests - dockerComposeDependenciesTask: StartDependencies debian_net5_0: publishTargetFramework: net5.0 baseImage: debian - matrixName: debian - poolName: Azure Pipelines - vmImage: ubuntu-18.04 - dockerComposeTask: NukeIntegrationTests - dockerComposeDependenciesTask: StartDependencies alpine_netcoreapp2_1: publishTargetFramework: netcoreapp2.1 baseImage: alpine - matrixName: alpine - poolName: Azure Pipelines - vmImage: ubuntu-18.04 - dockerComposeTask: NukeIntegrationTests - dockerComposeDependenciesTask: StartDependencies alpine_netcoreapp3_0: publishTargetFramework: netcoreapp3.0 baseImage: alpine - matrixName: alpine - poolName: Azure Pipelines - vmImage: ubuntu-18.04 - dockerComposeTask: NukeIntegrationTests - dockerComposeDependenciesTask: StartDependencies alpine_netcoreapp3_1: publishTargetFramework: netcoreapp3.1 baseImage: alpine - matrixName: alpine - poolName: Azure Pipelines - vmImage: ubuntu-18.04 - dockerComposeTask: NukeIntegrationTests - dockerComposeDependenciesTask: StartDependencies alpine_net5_0: publishTargetFramework: net5.0 baseImage: alpine - matrixName: alpine - poolName: Azure Pipelines - vmImage: ubuntu-18.04 - dockerComposeTask: NukeIntegrationTests - dockerComposeDependenciesTask: StartDependencies - arm64_net5_0: - publishTargetFramework: net5.0 - baseImage: debian - matrixName: arm64 - poolName: Arm64 - vmImage: - dockerComposeTask: NukeIntegrationTests.ARM64 - dockerComposeDependenciesTask: StartDependencies.ARM64 variables: TestAllPackageVersions: true pool: - name: $(poolName) - vmImage: $(vmImage) + vmImage: ubuntu-18.04 steps: # Doing a clean of obj files _before_ restore to remove build output from previous runs @@ -496,7 +482,7 @@ stages: - template: steps/restore-working-directory.yml parameters: - artifact: build-linux-$(matrixName)-working-directory + artifact: build-linux-$(baseImage)-working-directory - template: steps/run-in-docker.yml parameters: @@ -508,13 +494,13 @@ stages: displayName: docker-compose build NukeIntegrationTests inputs: containerregistrytype: Container Registry - dockerComposeCommand: build --build-arg baseImage=$(baseImage) --build-arg framework=$(publishTargetFramework) $(dockerComposeTask) + dockerComposeCommand: build --build-arg baseImage=$(baseImage) --build-arg framework=$(publishTargetFramework) NukeIntegrationTests - task: DockerCompose@0 displayName: docker-compose start dependencies inputs: containerregistrytype: Container Registry - dockerComposeCommand: run --rm $(dockerComposeDependenciesTask) + dockerComposeCommand: run --rm StartDependencies - task: DockerCompose@0 displayName: docker-compose run NukeIntegrationTests @@ -523,7 +509,7 @@ stages: dockerComposeFileArgs: | baseImage=$(baseImage) framework=$(publishTargetFramework) - dockerComposeCommand: run --rm -e baseImage=$(baseImage) -e framework=$(publishTargetFramework) $(dockerComposeTask) + dockerComposeCommand: run --rm -e baseImage=$(baseImage) -e framework=$(publishTargetFramework) NukeIntegrationTests - task: DockerCompose@0 displayName: docker-compose stop services @@ -533,7 +519,7 @@ stages: condition: succeededOrFailed() - publish: build_data - artifact: profiler-logs_integration_tests_linux_$(matrixName)_$(publishTargetFramework)_$(System.JobAttempt) + artifact: profiler-logs_integration_tests_linux_$(baseImage)_$(publishTargetFramework)_$(System.JobAttempt) condition: succeededOrFailed() - task: PublishTestResults@2 @@ -543,12 +529,84 @@ stages: testResultsFiles: build_data/results/**/*.trx condition: succeededOrFailed() +- stage: integration_tests_arm64 + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) + dependsOn: [build_arm64] + jobs: + - job: Test + variables: + TestAllPackageVersions: true + publishTargetFramework: net5.0 + baseImage: debian + + pool: + name: Arm64 + + steps: + # Doing a clean of obj files _before_ restore to remove build output from previous runs + # Can't do a full clean, as otherwise restore-working-directory fails + # Only necessary for ARM64, but shouldn't cause any harm on others + # Can't ifdef it as depends on a matrix variable + - template: steps/run-in-docker.yml + parameters: + build: true + baseImage: $(baseImage) + command: "CleanObjFiles" + + - template: steps/restore-working-directory.yml + parameters: + artifact: build-linux-arm64-working-directory + + - template: steps/run-in-docker.yml + parameters: + build: true + baseImage: $(baseImage) + command: "BuildLinuxIntegrationTests --framework $(publishTargetFramework)" + + - task: DockerCompose@0 + displayName: docker-compose build NukeIntegrationTests + inputs: + containerregistrytype: Container Registry + dockerComposeCommand: build --build-arg baseImage=$(baseImage) --build-arg framework=$(publishTargetFramework) NukeIntegrationTests.ARM64 + + - task: DockerCompose@0 + displayName: docker-compose start dependencies + inputs: + containerregistrytype: Container Registry + dockerComposeCommand: run --rm StartDependencies.ARM64 + + - task: DockerCompose@0 + displayName: docker-compose run NukeIntegrationTests + inputs: + containerregistrytype: Container Registry + dockerComposeFileArgs: | + baseImage=$(baseImage) + framework=$(publishTargetFramework) + dockerComposeCommand: run --rm -e baseImage=$(baseImage) -e framework=$(publishTargetFramework) NukeIntegrationTests.ARM64 + + - task: DockerCompose@0 + displayName: docker-compose stop services + inputs: + containerregistrytype: Container Registry + dockerComposeCommand: down + condition: succeededOrFailed() + + - publish: build_data + artifact: profiler-logs_integration_tests_linux_arm64_$(publishTargetFramework)_$(System.JobAttempt) + condition: succeededOrFailed() + + - task: PublishTestResults@2 + displayName: publish test results + inputs: + testResultsFormat: VSTest + testResultsFiles: build_data/results/**/*.trx + condition: succeededOrFailed() + - stage: benchmarks - condition: and(succeeded(), ne(variables['skip_benchmarks'], 'true')) dependsOn: build_windows jobs: - #### Windows + #### Windows - job: Windows timeoutInMinutes: 100 @@ -573,8 +631,8 @@ stages: script: 'Start-Sleep -s 120' - stage: dotnet_tool - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) - dependsOn: [build_windows, build_linux, build_macos] + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) + dependsOn: [build_windows, build_linux, build_arm64, build_macos] jobs: - job: build_runner_tool_and_standalone @@ -677,9 +735,9 @@ stages: displayName: Uploading runner standalone osx-x64 artifact artifact: runner-standalone-osx-x64 -- stage: upload - condition: and(succeeded(), eq(variables['benchmarksOnly'], 'False')) - dependsOn: [package_windows, build_linux] +- stage: upload_to_s3 + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) + dependsOn: [package_windows, build_linux, build_arm64] jobs: - job: s3_upload @@ -773,9 +831,71 @@ stages: + +- stage: upload_to_feed + condition: and(succeeded(), eq(variables['isScheduledBuild'], 'False')) + dependsOn: [package_windows, build_linux, build_arm64, dotnet_tool] + jobs: + - job: upload + + pool: + vmImage: ubuntu-18.04 + + steps: + + - task: DownloadPipelineArtifact@2 + displayName: Download NuGet packages + inputs: + artifact: nuget-packages + path: $(Build.ArtifactStagingDirectory) + + # set the version from the package name + - bash: | + NUGET_NAME=$(basename $(Build.ArtifactStagingDirectory)/Datadog.Trace.OpenTracing.*.nupkg) + VERSION_NUMBER=${NUGET_NAME:26:-6} + echo "detected version: $VERSION_NUMBER" + echo "##vso[task.setvariable variable=tracer_version]$VERSION_NUMBER" + displayName: Extract version number + + - task: DownloadPipelineArtifact@2 + displayName: Download linux Alpine packages + inputs: + artifact: linux-packages-alpine + path: $(Build.ArtifactStagingDirectory) + + - task: DownloadPipelineArtifact@2 + displayName: Download linux Debian packages + inputs: + artifact: linux-packages-debian + path: $(Build.ArtifactStagingDirectory) + + - task: DownloadPipelineArtifact@2 + displayName: Download linux Arm64 packages + inputs: + artifact: linux-packages-arm64 + path: $(Build.ArtifactStagingDirectory) + + - task: DownloadPipelineArtifact@2 + displayName: Download Windows tracer home + inputs: + artifact: windows-tracer-home.zip + path: $(Build.ArtifactStagingDirectory) + + - task: DownloadPipelineArtifact@2 + displayName: Download runner dotnet tool + inputs: + artifact: runner-dotnet-tool + patterns: "*.nupkg" + path: $(Build.ArtifactStagingDirectory) + + - publish: "$(Build.ArtifactStagingDirectory)" + displayName: Publish release artifacts + artifact: $(tracer_version)-release-artifacts + + # We don't include the MSI artifacts as they're not signed + - stage: throughput - condition: and(succeeded(), ne(variables['skip_benchmarks'], 'true')) - dependsOn: [build_linux, build_windows] + dependsOn: [build_linux, build_arm64, build_windows] jobs: #### Linux diff --git a/.azure-pipelines/unit-tests.yml b/.azure-pipelines/unit-tests.yml index b2b12fba28..2374b2f166 100644 --- a/.azure-pipelines/unit-tests.yml +++ b/.azure-pipelines/unit-tests.yml @@ -1,7 +1,9 @@ trigger: branches: include: - - main + - master + - release/* + - hotfix/* - refs/tags/* exclude: - refs/pull/*/head @@ -12,7 +14,20 @@ trigger: variables: buildConfiguration: Debug - OTEL_DOTNET_TRACER_MSBUILD: + dotnetCoreSdk5Version: 5.0.103 + ddApiKey: $(DD_API_KEY) + DD_DOTNET_TRACER_MSBUILD: + +# Declare the datadog agent as a resource to be used as a pipeline service +resources: + containers: + - container: dd_agent + image: datadog/agent + ports: + - 8126:8126 + env: + DD_API_KEY: $(ddApiKey) + DD_INSIDE_CI: true jobs: @@ -26,14 +41,18 @@ jobs: pool: vmImage: $(imageName) + # Enable the Datadog Agent service for this job + services: + dd_agent: dd_agent + steps: # Install the tracer latest stable release to attach the profiler to the build and test steps. # The script exposes the required environment variables to the following steps - #- task: PowerShell@2 - # displayName: Install profiler latest release - # inputs: - # filePath: ./.azure-pipelines/setup_tracer.ps1 + - task: PowerShell@2 + displayName: Install profiler latest release + inputs: + filePath: ./.azure-pipelines/setup_tracer.ps1 - task: UseDotNet@2 displayName: install dotnet core runtime 2.1 @@ -57,31 +76,60 @@ jobs: displayName: install dotnet core sdk 5.0 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) - task: DotNetCoreCLI@2 displayName: dotnet build inputs: command: build configuration: $(buildConfiguration) - arguments: /nowarn:netsdk1138 #-l:DatadogLogger,"$(OTEL_DOTNET_TRACER_MSBUILD)" + arguments: /nowarn:netsdk1138 #-l:DatadogLogger,"$(DD_DOTNET_TRACER_MSBUILD)" projects: | src/**/*.csproj test/**/*.Tests.csproj test/benchmarks/**/*.csproj !src/Datadog.Trace.Tools.Runner/*.csproj env: - OTEL_SERVICE_NAME: dd-trace-dotnet + DD_SERVICE: dd-trace-dotnet - task: DotNetCoreCLI@2 displayName: dotnet test inputs: command: test configuration: $(buildConfiguration) + projects: test/**/*.Tests.csproj + env: + DD_SERVICE: dd-trace-dotnet + +- job: managed_linux_arm64 + pool: Arm64 + workspace: + clean: all + + steps: + + - task: DotNetCoreCLI@2 + displayName: dotnet build + inputs: + command: build + configuration: $(buildConfiguration) + arguments: /nowarn:netsdk1138 projects: | + src/**/*.csproj test/**/*.Tests.csproj + benchmarks/**/*.csproj + !src/Datadog.Trace.Tools.Runner/*.csproj + env: + DD_SERVICE: dd-trace-dotnet + + - task: DotNetCoreCLI@2 + displayName: dotnet test + inputs: + command: test + configuration: $(buildConfiguration) + projects: test/**/*.Tests.csproj env: - OTEL_SERVICE_NAME: dd-tracer-dotnet + DD_SERVICE: dd-trace-dotnet - job: managed_macos pool: @@ -111,7 +159,7 @@ jobs: displayName: install dotnet core sdk 5.0 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) - task: DotNetCoreCLI@2 displayName: dotnet build @@ -132,7 +180,7 @@ jobs: configuration: $(buildConfiguration) projects: test/**/*.Tests.csproj env: - OTEL_SERVICE: dd-trace-dotnet + DD_SERVICE: dd-trace-dotnet - job: windows_profiler @@ -157,7 +205,7 @@ jobs: displayName: install dotnet core sdk 5.0 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) - task: DotNetCoreCLI@2 displayName: dotnet build @@ -214,7 +262,7 @@ jobs: displayName: install dotnet core sdk 5.0 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) - task: DotNetCoreCLI@2 displayName: dotnet build @@ -224,7 +272,7 @@ jobs: arguments: /nowarn:netsdk1138 projects: | src/Datadog.Trace.ClrProfiler.Managed.Loader/Datadog.Trace.ClrProfiler.Managed.Loader.csproj - + - script: | sudo apt-get update sudo apt-get install -y llvm clang @@ -236,6 +284,22 @@ jobs: make displayName: build_profiler +- job: linux_profiler_arm64 + pool: Arm64 + workspace: + clean: all + + steps: + + - task: DotNetCoreCLI@2 + displayName: dotnet build + inputs: + command: build + configuration: $(buildConfiguration) + arguments: /nowarn:netsdk1138 + projects: | + src/Datadog.Trace.ClrProfiler.Managed.Loader/Datadog.Trace.ClrProfiler.Managed.Loader.csproj + - script: | cd ./src/Datadog.Trace.ClrProfiler.Native CXX=clang++ CC=clang cmake . @@ -257,7 +321,7 @@ jobs: displayName: install dotnet core sdk 5.0 inputs: packageType: sdk - version: 5.0.x + version: $(dotnetCoreSdk5Version) - task: DotNetCoreCLI@2 displayName: dotnet build @@ -272,4 +336,4 @@ jobs: cd ./src/Datadog.Trace.ClrProfiler.Native cmake . make - displayName: build_profiler \ No newline at end of file + displayName: build_profiler diff --git a/.clang-format b/.clang-format index 5f775353ed..c6d3b68926 100644 --- a/.clang-format +++ b/.clang-format @@ -1,3 +1,44 @@ --- -# We'll use defaults from the LLVM style, but with 4 columns indentation. -BasedOnStyle: Google \ No newline at end of file +ColumnLimit: 120 +UseTab: Never +IndentWidth: 4 +AccessModifierOffset: -4 +NamespaceIndentation: Inner + +BreakBeforeBraces: Custom +BraceWrapping: + AfterNamespace: true + AfterEnum: true + AfterStruct: true + AfterClass: true + SplitEmptyFunction: true + SplitEmptyRecord: true + AfterControlStatement: true + AfterFunction: true + AfterUnion: true + BeforeElse: true + AfterCaseLabel: true + AfterExternBlock: true + BeforeCatch: true + +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: AfterColon +CompactNamespaces: false +AlwaysBreakTemplateDeclarations: true +BreakConstructorInitializersBeforeComma: true +ConstructorInitializerAllOnOneLineOrOnePerLine: true +AllowShortBlocksOnASingleLine: false +AllowShortFunctionsOnASingleLine: false +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +PointerAlignment: Left +AlignConsecutiveAssignments: false +AlignTrailingComments: true +SpaceAfterCStyleCast: true +CommentPragmas: '^ NO-FORMAT:' +IndentCaseLabels: true +IndentGotoLabels: true + +# The following doesn't work pre clang-format version 13 +#BreakBeforeConceptDeclarations: true +#EmptyLineBeforeAccessModifier: LogicalBlock diff --git a/Datadog.Trace.proj b/Datadog.Trace.proj index f67eec190a..edc20ec262 100644 --- a/Datadog.Trace.proj +++ b/Datadog.Trace.proj @@ -264,13 +264,13 @@ ApiVersion=2.1.3;RestoreRecursive=false;BuildProjectReferences=false + + ApiVersion=3.0.0;RestoreRecursive=false;BuildProjectReferences=false + ApiVersion=1.0.187;RestoreRecursive=false;BuildProjectReferences=false diff --git a/build/PackageVersionsGeneratorDefinitions.json b/build/PackageVersionsGeneratorDefinitions.json index ac7005694e..f91a3f8e29 100644 --- a/build/PackageVersionsGeneratorDefinitions.json +++ b/build/PackageVersionsGeneratorDefinitions.json @@ -55,7 +55,7 @@ "SampleProjectName": "Samples.Microsoft.Data.SqlClient", "NugetPackageSearchName": "Microsoft.Data.SqlClient", "MinVersion": "1.0.0", - "MaxVersionExclusive": "3.0.0" + "MaxVersionExclusive": "4.0.0" }, { "IntegrationName": "StackExchangeRedis", diff --git a/build/PackageVersionsLatestMinors.g.props b/build/PackageVersionsLatestMinors.g.props index f942c8c073..05c6bb8d10 100644 --- a/build/PackageVersionsLatestMinors.g.props +++ b/build/PackageVersionsLatestMinors.g.props @@ -168,6 +168,9 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely ApiVersion=2.1.3;RestoreRecursive=false;BuildProjectReferences=false + + ApiVersion=3.0.0;RestoreRecursive=false;BuildProjectReferences=false + ApiVersion=1.0.488;RestoreRecursive=false;BuildProjectReferences=false diff --git a/build/_build/Build.Steps.cs b/build/_build/Build.Steps.cs index 2c69bba35a..c81b14491d 100644 --- a/build/_build/Build.Steps.cs +++ b/build/_build/Build.Steps.cs @@ -250,7 +250,7 @@ partial class Build var dest = TracerHomeDirectory; Logger.Info($"Copying '{source}' to '{dest}'"); - CopyFileToDirectory(source, dest, FileExistsPolicy.OverwriteIfNewer); + CopyFileToDirectory(source, dest, FileExistsPolicy.Overwrite); }); Target PublishManagedProfiler => _ => _ @@ -285,7 +285,7 @@ partial class Build $"{NativeProfilerProject.Name}.dll"; var dest = TracerHomeDirectory / $"win-{architecture}"; Logger.Info($"Copying '{source}' to '{dest}'"); - CopyFileToDirectory(source, dest, FileExistsPolicy.OverwriteIfNewer); + CopyFileToDirectory(source, dest, FileExistsPolicy.Overwrite); } }); @@ -299,7 +299,7 @@ partial class Build CopyFileToDirectory( RootDirectory / "build" / "artifacts" / "createLogPath.sh", TracerHomeDirectory, - FileExistsPolicy.OverwriteIfNewer); + FileExistsPolicy.Overwrite); // Copy Native file CopyFileToDirectory( @@ -318,7 +318,7 @@ partial class Build CopyFileToDirectory( RootDirectory / "build" / "artifacts" / "createLogPath.sh", TracerHomeDirectory, - FileExistsPolicy.OverwriteIfNewer); + FileExistsPolicy.Overwrite); // Create home directory CopyFileToDirectory( @@ -339,7 +339,7 @@ partial class Build .Executes(() => { // start by copying everything from the tracer home dir - CopyDirectoryRecursively(TracerHomeDirectory, DDTracerHomeDirectory, DirectoryExistsPolicy.Merge); + CopyDirectoryRecursively(TracerHomeDirectory, DDTracerHomeDirectory, DirectoryExistsPolicy.Merge, FileExistsPolicy.Overwrite); if (IsWin) { @@ -356,7 +356,7 @@ partial class Build EnsureCleanDirectory(outputDir); MoveFile( DDTracerHomeDirectory / fileName, - outputDir / architecture); + outputDir / fileName); }); Target BuildMsi => _ => _ @@ -730,6 +730,7 @@ _ when projectPath.ToString().Contains("Samples.OracleMDA") => false, // .DisableRestore() .EnableNoDependencies() .SetConfiguration(BuildConfiguration) + .SetTargetPlatform(Platform) .SetProperty("DeployOnBuild", true) .SetProperty("PublishProfile", publishProfile) .SetMaxCpuCount(null) @@ -753,6 +754,7 @@ _ when projectPath.ToString().Contains("Samples.OracleMDA") => false, try { DotNetTest(config => config + .SetDotnetPath(Platform) .SetConfiguration(BuildConfiguration) .SetTargetPlatform(Platform) .EnableNoRestore() @@ -766,6 +768,7 @@ _ when projectPath.ToString().Contains("Samples.OracleMDA") => false, // TODO: I think we should change this filter to run on Windows by default // (RunOnWindows!=False|Category=Smoke)&LoadFromGAC!=True&IIS!=True DotNetTest(config => config + .SetDotnetPath(Platform) .SetConfiguration(BuildConfiguration) .SetTargetPlatform(Platform) .EnableNoRestore() @@ -795,6 +798,7 @@ _ when projectPath.ToString().Contains("Samples.OracleMDA") => false, { // Different filter from RunWindowsIntegrationTests DotNetTest(config => config + .SetDotnetPath(Platform) .SetConfiguration(BuildConfiguration) .SetTargetPlatform(Platform) .EnableNoRestore() @@ -986,12 +990,12 @@ var name when multiApiProjects.Contains(name) => false, var src = TracerHomeDirectory; var testProject = Solution.GetProject(Projects.ClrProfilerIntegrationTests).Directory; var dest = testProject / "bin" / BuildConfiguration / Framework / "profiler-lib"; - CopyDirectoryRecursively(src, dest, DirectoryExistsPolicy.Merge, FileExistsPolicy.OverwriteIfNewer); + CopyDirectoryRecursively(src, dest, DirectoryExistsPolicy.Merge, FileExistsPolicy.Overwrite); // not sure exactly where this is supposed to go, may need to change the original build foreach (var linuxDir in TracerHomeDirectory.GlobDirectories("linux-*")) { - CopyDirectoryRecursively(linuxDir, dest, DirectoryExistsPolicy.Merge, FileExistsPolicy.OverwriteIfNewer); + CopyDirectoryRecursively(linuxDir, dest, DirectoryExistsPolicy.Merge, FileExistsPolicy.Overwrite); } }); diff --git a/build/_build/Build.Utilities.cs b/build/_build/Build.Utilities.cs index aae0556175..d8868e2e5b 100644 --- a/build/_build/Build.Utilities.cs +++ b/build/_build/Build.Utilities.cs @@ -158,6 +158,7 @@ partial class Build .SetProperty("platform", Platform)); DotNetRun(s => s + .SetDotnetPath(Platform) .SetFramework(Framework) .EnableNoLaunchProfile() .SetProjectFile(project) diff --git a/build/_build/Build.cs b/build/_build/Build.cs index 48ac11f2be..e87a28312f 100644 --- a/build/_build/Build.cs +++ b/build/_build/Build.cs @@ -51,7 +51,7 @@ partial class Build : NukeBuild readonly bool IsAlpine = false; [Parameter("The build version (for packaging purposes). Default is latest")] - readonly string Version = "1.27.0"; + readonly string Version = "1.27.1"; [Parameter("Prints the available drive space before executing each target. Defaults to false")] readonly bool PrintDriveSpace = false; diff --git a/build/_build/DotNetSettingsExtensions.cs b/build/_build/DotNetSettingsExtensions.cs index d6518886f2..0d42edfb30 100644 --- a/build/_build/DotNetSettingsExtensions.cs +++ b/build/_build/DotNetSettingsExtensions.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using Nuke.Common; using Nuke.Common.IO; using Nuke.Common.ProjectModel; using Nuke.Common.Tooling; @@ -109,4 +110,28 @@ public static MSBuildSettings SetMSBuildPath(this MSBuildSettings settings) .When(!string.IsNullOrEmpty(vsRoot), c => c.SetProcessToolPath(Path.Combine(vsRoot, "MSBuild", "Current", "Bin", "MSBuild.exe"))); } + + /// + /// Conditionally set the dotnet.exe location, using the 32-bit dll when targeting x86 + /// + public static T SetDotnetPath(this T settings, MSBuildTargetPlatform platform) + where T : ToolSettings + { + if (platform != MSBuildTargetPlatform.x86 && platform != MSBuildTargetPlatform.Win32) + { + return settings; + } + + + // assume it's installed where we expect + var dotnetPath = EnvironmentInfo.GetVariable("DOTNET_EXE_32") + ?? Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "dotnet", "dotnet.exe"); + + if (!File.Exists(dotnetPath)) + { + throw new Exception($"Error locating 32-bit dotnet process. Expected at '{dotnetPath}'"); + } + + return settings.SetProcessToolPath(dotnetPath); + } } diff --git a/build/docker/Datadog.Trace.ClrProfiler.IntegrationTests.sh b/build/docker/Datadog.Trace.ClrProfiler.IntegrationTests.sh index 005e85baf5..97fa7e8873 100755 --- a/build/docker/Datadog.Trace.ClrProfiler.IntegrationTests.sh +++ b/build/docker/Datadog.Trace.ClrProfiler.IntegrationTests.sh @@ -6,7 +6,7 @@ cd "$( dirname "${BASH_SOURCE[0]}" )"/../../ buildConfiguration=${buildConfiguration:-Debug} publishTargetFramework=${publishTargetFramework:-netcoreapp3.1} -mkdir -p /var/log/opentelemetry/dotnet +mkdir -p /var/log/datadog/dotnet #https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dumps#collecting-dumps-on-crash export COMPlus_DbgEnableMiniDump=1 @@ -17,7 +17,7 @@ cleanup() { # Collect run data mkdir /project/build_data - cp /var/log/opentelemetry/dotnet/* /project/build_data/ + cp /var/log/datadog/dotnet/* /project/build_data/ cp /tmp/coredump* /project/build_data/ 2>/dev/null || : } diff --git a/build/docker/Datadog.Trace.ClrProfiler.Native.sh b/build/docker/Datadog.Trace.ClrProfiler.Native.sh index 1b232da73a..b99167c9ee 100755 --- a/build/docker/Datadog.Trace.ClrProfiler.Native.sh +++ b/build/docker/Datadog.Trace.ClrProfiler.Native.sh @@ -1,28 +1,7 @@ #!/bin/bash set -euxo pipefail -uname_os() { - os=$(uname -s | tr '[:upper:]' '[:lower:]') - case "$os" in - cygwin_nt*) echo "windows" ;; - mingw*) echo "windows" ;; - msys_nt*) echo "windows" ;; - *) echo "$os" ;; - esac -} - -native_sufix() { - os=$(uname_os) - case "$os" in - windows*) echo "dll" ;; - linux*) echo "so" ;; - darwin*) echo "dylib" ;; - *) echo "OS: ${os} is not supported" ; exit 1 ;; - esac -} - DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" -SUFIX=$(native_sufix) cd "$DIR/../.." @@ -34,10 +13,10 @@ BUILD_TYPE=${buildConfiguration:-Debug} cd src/Datadog.Trace.ClrProfiler.Native mkdir -p build -(cd build && cmake ../ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} && make) +(cd build && cmake ../ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} && make) mkdir -p bin/${BUILD_TYPE}/x64 -cp -f build/bin/Datadog.Trace.ClrProfiler.Native.${SUFIX} bin/${BUILD_TYPE}/x64/OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.${SUFIX} +cp -f build/bin/Datadog.Trace.ClrProfiler.Native.so bin/${BUILD_TYPE}/x64/Datadog.Trace.ClrProfiler.Native.so # If running the unified pipeline, do not copy managed assets yet. Do so during the package build step if [ -z "${UNIFIED_PIPELINE-}" ]; then diff --git a/build/docker/IIS/LoaderOptimizationRegKey.dockerfile b/build/docker/IIS/LoaderOptimizationRegKey.dockerfile index a8983df190..69b154ca77 100644 --- a/build/docker/IIS/LoaderOptimizationRegKey.dockerfile +++ b/build/docker/IIS/LoaderOptimizationRegKey.dockerfile @@ -1,12 +1,8 @@ -FROM mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019 +FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] -# Install .NET Framework, and ASP.NET features -RUN Add-WindowsFeature NET-Framework-45-ASPNET; \ - Add-WindowsFeature Web-Asp-Net45 - # Copy IIS websites -ADD test/test-applications/aspnet/Samples.AspNet472.LoaderOptimizationRegKey/bin/Release/Publish LoaderOptimizationRegKey +ADD test/test-applications/aspnet/Samples.AspNet472.LoaderOptimizationRegKey/bin/Release/publish LoaderOptimizationRegKey # Set up IIS websites ARG ENABLE_32_BIT diff --git a/build/docker/build.sh b/build/docker/build.sh index 0892d7c225..efa3efe1b5 100755 --- a/build/docker/build.sh +++ b/build/docker/build.sh @@ -22,12 +22,6 @@ done dotnet publish -f netstandard2.0 -c $buildConfiguration src/Datadog.Trace.ClrProfiler.Managed/Datadog.Trace.ClrProfiler.Managed.csproj -o "$PUBLISH_OUTPUT/netstandard2.0" dotnet publish -f netcoreapp3.1 -c $buildConfiguration src/Datadog.Trace.ClrProfiler.Managed/Datadog.Trace.ClrProfiler.Managed.csproj -o "$PUBLISH_OUTPUT/netcoreapp3.1" -# Exit if QUICK_BUILD env var is not empty -if [ -n "${QUICK_BUILD-}" ] -then - exit -fi - # Only build Samples.AspNetCoreMvc21 for netcoreapp2.1 if [ "$publishTargetFramework" == "netcoreapp2.1" ] then diff --git a/build/docker/linux-build.dockerfile b/build/docker/linux-build.dockerfile index 7bcfcd67eb..e934b17db2 100644 --- a/build/docker/linux-build.dockerfile +++ b/build/docker/linux-build.dockerfile @@ -6,7 +6,7 @@ ARG BUILD_CONFIGURATION=Release ARG WORKSPACE=/workspace ARG PUBLISH_FOLDER=/workspace/publish -ARG TRACER_HOME=/otel-tracer-dotnet +ARG TRACER_HOME=/dd-tracer-dotnet FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-managed-base # Instructions to install .NET Core runtimes from @@ -66,10 +66,10 @@ ARG PUBLISH_FOLDER ARG TRACER_HOME COPY --from=build-managed ${WORKSPACE} ${WORKSPACE} WORKDIR ${WORKSPACE}/src/Datadog.Trace.ClrProfiler.Native/build -RUN cmake .. && make && cp -f ./bin/Datadog.Trace.ClrProfiler.Native.so ${PUBLISH_FOLDER}/OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so -RUN mkdir -p /var/log/opentelemetry/dotnet +RUN cmake .. && make && cp -f ./bin/Datadog.Trace.ClrProfiler.Native.so ${PUBLISH_FOLDER}/ +RUN mkdir -p /var/log/datadog/dotnet WORKDIR ${PUBLISH_FOLDER} -RUN echo "#!/bin/bash\n set -euxo pipefail\n export CORECLR_ENABLE_PROFILING=\"1\"\n export CORECLR_PROFILER=\"{918728DD-259F-4A6A-AC2B-B85E1B658318}\"\n export OTEL_DOTNET_TRACER_HOME=\"${TRACER_HOME}\"\n export CORECLR_PROFILER_PATH=\"\${OTEL_DOTNET_TRACER_HOME}/OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so\"\n export OTEL_INTEGRATIONS=\"\${OTEL_DOTNET_TRACER_HOME}/integrations.json\"\n eval \"\$@\"\n" > dd-trace.bash +RUN echo "#!/bin/bash\n set -euxo pipefail\n export CORECLR_ENABLE_PROFILING=\"1\"\n export CORECLR_PROFILER=\"{846F5F1C-F9AE-4B07-969E-05C26BC060D8}\"\n export DD_DOTNET_TRACER_HOME=\"${TRACER_HOME}\"\n export CORECLR_PROFILER_PATH=\"\${DD_DOTNET_TRACER_HOME}/Datadog.Trace.ClrProfiler.Native.so\"\n export DD_INTEGRATIONS=\"\${DD_DOTNET_TRACER_HOME}/integrations.json\"\n eval \"\$@\"\n" > dd-trace.bash RUN chmod +x dd-trace.bash @@ -82,8 +82,8 @@ COPY --from=build-native /var/log/datadog/ /var/log/datadog/ FROM build-native as native-linux-binary ARG PUBLISH_FOLDER -COPY --from=build-native ${PUBLISH_FOLDER}/OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so -CMD cp -f OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so /home/linux-x64/OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so +COPY --from=build-native ${PUBLISH_FOLDER}/Datadog.Trace.ClrProfiler.Native.so Datadog.Trace.ClrProfiler.Native.so +CMD cp -f Datadog.Trace.ClrProfiler.Native.so /home/linux-x64/Datadog.Trace.ClrProfiler.Native.so FROM build-managed-base as dotnet-sdk-with-dd-tracer diff --git a/build/docker/package.sh b/build/docker/package.sh index 2992647255..840287dac4 100755 --- a/build/docker/package.sh +++ b/build/docker/package.sh @@ -2,14 +2,12 @@ set -euxo pipefail DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" -VERSION=0.0.1 +VERSION=1.27.1 BUILD_TYPE=${buildConfiguration:-Debug} ARCH=${ARCHITECTURE:-x64} mkdir -p $DIR/../../deploy/linux -for target in integrations.json defaults.env LICENSE NOTICE ; do - cp $DIR/../../$target $DIR/../../src/Datadog.Trace.ClrProfiler.Native/bin/${BUILD_TYPE}/x64/ -done +cp $DIR/../../integrations.json $DIR/../../src/Datadog.Trace.ClrProfiler.Native/bin/${BUILD_TYPE}/x64/ cp $DIR/../../build/artifacts/createLogPath.sh $DIR/../../src/Datadog.Trace.ClrProfiler.Native/bin/${BUILD_TYPE}/x64/ # If running the unified pipeline, copy managed assets now instead of in the profiler build step @@ -27,35 +25,29 @@ for pkgtype in $PKGTYPES ; do -f \ -s dir \ -t $pkgtype \ - -n otel-dotnet-autoinstrumentation \ - --license "Apache License, Version 2.0" \ - --provides otel-dotnet-autoinstrumentation \ - --vendor OpenTelemetry \ + -n datadog-dotnet-apm \ -v $VERSION \ - $(if [ $pkgtype != 'tar' ] ; then echo --prefix /opt/otel-dotnet-autoinstrumentation ; fi) \ + $(if [ $pkgtype != 'tar' ] ; then echo --prefix /opt/datadog ; fi) \ --chdir $DIR/../../src/Datadog.Trace.ClrProfiler.Native/bin/${BUILD_TYPE}/x64 \ netstandard2.0/ \ netcoreapp3.1/ \ - OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so \ + Datadog.Trace.ClrProfiler.Native.so \ integrations.json \ - createLogPath.sh \ - defaults.env \ - LICENSE \ - NOTICE + createLogPath.sh done -gzip -f otel-dotnet-autoinstrumentation.tar +gzip -f datadog-dotnet-apm.tar if [ -z "${MUSL-}" ]; then if [ "$ARCH" == "x64" ]; then - mv otel-dotnet-autoinstrumentation.tar.gz otel-dotnet-autoinstrumentation-$VERSION.tar.gz + mv datadog-dotnet-apm.tar.gz datadog-dotnet-apm-$VERSION.tar.gz else - mv otel-dotnet-autoinstrumentation.tar.gz otel-dotnet-autoinstrumentation-$VERSION.$ARCH.tar.gz + mv datadog-dotnet-apm.tar.gz datadog-dotnet-apm-$VERSION.$ARCH.tar.gz fi else if [ "$ARCH" == "x64" ]; then - mv otel-dotnet-autoinstrumentation.tar.gz otel-dotnet-autoinstrumentation-$VERSION-musl.tar.gz + mv datadog-dotnet-apm.tar.gz datadog-dotnet-apm-$VERSION-musl.tar.gz else - mv otel-dotnet-autoinstrumentation.tar.gz otel-dotnet-autoinstrumentation-$VERSION-musl.$ARCH.tar.gz + mv datadog-dotnet-apm.tar.gz datadog-dotnet-apm-$VERSION-musl.$ARCH.tar.gz fi fi diff --git a/build/docker/with-profiler-logs.bash b/build/docker/with-profiler-logs.bash index 3c5f8e0b38..05addb04a8 100755 --- a/build/docker/with-profiler-logs.bash +++ b/build/docker/with-profiler-logs.bash @@ -1,11 +1,10 @@ #!/bin/bash set -euxo pipefail -mkdir -p /var/log/opentelemetry/dotnet -touch /var/log/opentelemetry/dotnet/dotnet-tracer-native.log +mkdir -p /var/log/datadog/dotnet cleanup() { - cat /var/log/opentelemetry/dotnet/dotnet-tracer-native* \ + cat /var/log/datadog/dotnet/dotnet-tracer-native* \ | awk ' /info/ {print "\033[32m" $0 "\033[39m"} /warn/ {print "\033[31m" $0 "\033[39m"} diff --git a/build/docker/with-profiler.bash b/build/docker/with-profiler.bash index c85e1ee7f5..293b7daf71 100755 --- a/build/docker/with-profiler.bash +++ b/build/docker/with-profiler.bash @@ -4,9 +4,9 @@ set -euxo pipefail DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." >/dev/null && pwd )" export CORECLR_ENABLE_PROFILING="1" -export CORECLR_PROFILER="{918728DD-259F-4A6A-AC2B-B85E1B658318}" -export CORECLR_PROFILER_PATH="${DIR}/src/Datadog.Trace.ClrProfiler.Native/obj/Debug/x64/OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.so" -export OTEL_DOTNET_TRACER_HOME="${DIR}" -export OTEL_INTEGRATIONS="${OTEL_DOTNET_TRACER_HOME}/integrations.json" +export CORECLR_PROFILER="{846F5F1C-F9AE-4B07-969E-05C26BC060D8}" +export CORECLR_PROFILER_PATH="${DIR}/src/Datadog.Trace.ClrProfiler.Native/obj/Debug/x64/Datadog.Trace.ClrProfiler.Native.so" +export DD_DOTNET_TRACER_HOME="${DIR}" +export DD_INTEGRATIONS="${DD_DOTNET_TRACER_HOME}/integrations.json" eval "$@" diff --git a/build/tools/PrepareRelease/PrepareRelease.csproj b/build/tools/PrepareRelease/PrepareRelease.csproj index 9ef755d123..30875a49bd 100644 --- a/build/tools/PrepareRelease/PrepareRelease.csproj +++ b/build/tools/PrepareRelease/PrepareRelease.csproj @@ -6,9 +6,12 @@ netcoreapp3.1 + + + + - diff --git a/build/tools/PrepareRelease/Program.cs b/build/tools/PrepareRelease/Program.cs index 0409dd678d..9ae4ce1bfe 100644 --- a/build/tools/PrepareRelease/Program.cs +++ b/build/tools/PrepareRelease/Program.cs @@ -7,7 +7,6 @@ using System.Diagnostics; using System.IO; using System.Linq; -using Datadog.Core.Tools; namespace PrepareRelease { @@ -24,7 +23,7 @@ public static void Main(string[] args) throw new ArgumentException($@"You must specify at least one job name from [""{Versions}"", ""{Integrations}, ""{Msi}""]."); } - var solutionDir = EnvironmentTools.GetSolutionDirectory(); + var solutionDir = GetSolutionDirectory(); if (JobShouldRun(Integrations, args)) { @@ -36,7 +35,7 @@ public static void Main(string[] args) if (JobShouldRun(Versions, args)) { Console.WriteLine("--------------- Versions Job Started ---------------"); - SetAllVersions.Run(); + new SetAllVersions(solutionDir).Run(); Console.WriteLine("--------------- Versions Job Complete ---------------"); } @@ -44,9 +43,7 @@ public static void Main(string[] args) { Environment.SetEnvironmentVariable("SOLUTION_DIR", solutionDir); - var outputDir = Path.Combine(solutionDir, "src", "bin", "windows-tracer-home"); - Environment.SetEnvironmentVariable("OUTPUT_DIR", outputDir); - + var outputDir = Path.Combine(solutionDir, "bin", "tracer-home"); var publishBatch = Path.Combine(solutionDir, "build", "tools", "PrepareRelease", "publish-all.bat"); ExecuteCommand(publishBatch); @@ -69,5 +66,31 @@ private static void ExecuteCommand(string command) Console.WriteLine("Publish ExitCode: " + process.ExitCode, "ExecuteCommand"); process?.Close(); } + + private static string GetSolutionDirectory() + { + var startDirectory = Environment.CurrentDirectory; + var currentDirectory = Directory.GetParent(startDirectory); + const string searchItem = @"Datadog.Trace.sln"; + + while (true) + { + var slnFile = currentDirectory.GetFiles(searchItem).SingleOrDefault(); + + if (slnFile != null) + { + break; + } + + currentDirectory = currentDirectory.Parent; + + if (currentDirectory == null || !currentDirectory.Exists) + { + throw new Exception($"Unable to find solution directory from: {startDirectory}"); + } + } + + return currentDirectory.FullName; + } } } diff --git a/build/tools/PrepareRelease/SetAllVersions.cs b/build/tools/PrepareRelease/SetAllVersions.cs index d0e539703c..5976592cc9 100644 --- a/build/tools/PrepareRelease/SetAllVersions.cs +++ b/build/tools/PrepareRelease/SetAllVersions.cs @@ -7,13 +7,35 @@ using System.IO; using System.Text; using System.Text.RegularExpressions; -using Datadog.Core.Tools; namespace PrepareRelease { - public static class SetAllVersions + public class SetAllVersions { - public static void Run() + public SetAllVersions(string solutionDirectory) + { + SolutionDirectory = solutionDirectory; + } + + /// + /// Gets the root solution directory, where "Datadog.Trace.sln" can be found. + /// + public string SolutionDirectory { get; } + + /// + /// Gets the current tracer version. + /// This is the single source of truth for the current tracer version. + /// When changing the tracer version, update this value and , + /// then run the "PrepareRelease" tool to update the entire solution. + /// + public Version TracerVersion { get; } = new("0.0.1"); + + /// + /// Gets a value indicating whether the current tracer version is a prerelease. + /// + public bool IsPrerelease { get; } = false; + + public void Run() { Console.WriteLine($"Updating version instances to {VersionString()}"); @@ -154,42 +176,42 @@ public static void Run() Console.WriteLine($"Completed synchronizing versions to {VersionString()}"); } - private static string FourPartVersionReplace(string text) + private string FourPartVersionReplace(string text) { return Regex.Replace(text, VersionPattern(fourPartVersion: true), FourPartVersionString(), RegexOptions.Singleline); } - private static string FullVersionReplace(string text, string split, string prefix = "") + private string FullVersionReplace(string text, string split, string prefix = "") { return Regex.Replace(text, prefix + VersionPattern(split), prefix + VersionString(split), RegexOptions.Singleline); } - private static string FullAssemblyNameReplace(string text) + private string FullAssemblyNameReplace(string text) { return Regex.Replace(text, AssemblyString(VersionPattern()), AssemblyString(VersionString()), RegexOptions.Singleline); } - private static string MajorAssemblyVersionReplace(string text, string split) + private string MajorAssemblyVersionReplace(string text, string split) { return Regex.Replace(text, VersionPattern(fourPartVersion: true), MajorVersionString(split), RegexOptions.Singleline); } - private static string DatadogTraceNugetDependencyVersionReplace(string text) + private string DatadogTraceNugetDependencyVersionReplace(string text) { return Regex.Replace(text, $"", $"", RegexOptions.Singleline); } - private static string NugetVersionReplace(string text) + private string NugetVersionReplace(string text) { return Regex.Replace(text, $"{VersionPattern(withPrereleasePostfix: true)}", $"{VersionString(withPrereleasePostfix: true)}", RegexOptions.Singleline); } - private static string NuspecVersionReplace(string text) + private string NuspecVersionReplace(string text) { return Regex.Replace(text, $"{VersionPattern(withPrereleasePostfix: true)}", $"{VersionString(withPrereleasePostfix: true)}", RegexOptions.Singleline); } - private static string WixProjReplace(string text) + private string WixProjReplace(string text) { text = Regex.Replace( text, @@ -206,10 +228,9 @@ private static string WixProjReplace(string text) return text; } - private static void SynchronizeVersion(string path, Func transform) + private void SynchronizeVersion(string path, Func transform) { - var solutionDirectory = EnvironmentTools.GetSolutionDirectory(); - var fullPath = Path.Combine(solutionDirectory, path); + var fullPath = Path.Combine(SolutionDirectory, path); Console.WriteLine($"Updating version instances for {path}"); @@ -224,22 +245,22 @@ private static void SynchronizeVersion(string path, Func transfo File.WriteAllText(fullPath, newFileContent, new UTF8Encoding(encoderShouldEmitUTF8Identifier: false)); } - private static string FourPartVersionString(string split = ".") + private string FourPartVersionString(string split = ".") { - return $"{TracerVersion.Major}{split}{TracerVersion.Minor}{split}{TracerVersion.Patch}{split}0"; + return $"{TracerVersion.Major}{split}{TracerVersion.Minor}{split}{TracerVersion.Build}{split}0"; } - private static string MajorVersionString(string split = ".") + private string MajorVersionString(string split = ".") { return $"{TracerVersion.Major}{split}0{split}0{split}0"; } - private static string VersionString(string split = ".", bool withPrereleasePostfix = false) + private string VersionString(string split = ".", bool withPrereleasePostfix = false) { - var newVersion = $"{TracerVersion.Major}{split}{TracerVersion.Minor}{split}{TracerVersion.Patch}"; + var newVersion = $"{TracerVersion.Major}{split}{TracerVersion.Minor}{split}{TracerVersion.Build}"; // this gets around a compiler warning about unreachable code below - var isPreRelease = TracerVersion.IsPreRelease; + var isPreRelease = IsPrerelease; // ReSharper disable once ConditionIsAlwaysTrueOrFalse if (withPrereleasePostfix && isPreRelease) @@ -250,7 +271,7 @@ private static string VersionString(string split = ".", bool withPrereleasePostf return newVersion; } - private static string VersionPattern(string split = ".", bool withPrereleasePostfix = false, bool fourPartVersion = false) + private string VersionPattern(string split = ".", bool withPrereleasePostfix = false, bool fourPartVersion = false) { if (split == ".") { @@ -272,7 +293,7 @@ private static string VersionPattern(string split = ".", bool withPrereleasePost return pattern; } - private static string AssemblyString(string versionText) + private string AssemblyString(string versionText) { return $"OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version={versionText}.0, Culture=neutral, PublicKeyToken=34b8972644a12429"; } diff --git a/build/tools/PrepareRelease/publish-all.bat b/build/tools/PrepareRelease/publish-all.bat index 5bcb9a56b4..31a8f5bc11 100644 --- a/build/tools/PrepareRelease/publish-all.bat +++ b/build/tools/PrepareRelease/publish-all.bat @@ -1,8 +1 @@ -REM SET SOLUTION_DIR=C:\Github\otel-trace-dotnet - -SET TOOL_BUILD_CONFIG=Release -SET INTEGRATIONS_PROJ=%SOLUTION_DIR%\src\Datadog.Trace.ClrProfiler.Managed\Datadog.Trace.ClrProfiler.Managed.csproj -SET OUTPUT_DIR=%SOLUTION_DIR%\build\tools\PrepareRelease\bin\tracer-home - -RMDIR "%OUTPUT_DIR%" /S /Q -dotnet msbuild "%SOLUTION_DIR%\Datadog.Trace.proj" /t:PublishManagedProfilerOnDisk /p:Configuration=Release;TracerHomeDirectory=%OUTPUT_DIR% +%SOLUTION_DIR%\build.cmd Clean BuildTracerHome diff --git a/docker-compose.yml b/docker-compose.yml index b25baee879..4bfb255f95 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -227,7 +227,6 @@ services: dockerfile: ./build/docker/package.dockerfile image: datadog-package environment: - - buildConfiguration=${buildConfiguration} - PKGTYPES=deb rpm tar command: /project/build/docker/package.sh volumes: @@ -239,7 +238,6 @@ services: dockerfile: ./build/docker/package.alpine.dockerfile image: datadog-package-alpine environment: - - buildConfiguration=${buildConfiguration} - PKGTYPES=tar - MUSL=true command: /project/build/docker/package.sh @@ -384,7 +382,7 @@ services: - ./:/project environment: - RABBITMQ_HOST=rabbitmq - - OTEL_TRACE_CALLTARGET_ENABLED=true + - DD_TRACE_CALLTARGET_ENABLED=true depends_on: - rabbitmq diff --git a/docs/README.md b/docs/README.md index 7d8667692d..be2ed6fcd7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -37,3 +37,81 @@ Approvers ([@open-telemetry/dotnet-instrumentation-approvers](https://github.com - [Tony Redondo](https://github.com/tonyredondo), Datadog Learn more about roles in the [community repository](https://github.com/open-telemetry/community/blob/main/community-membership.md). + +# Development + +## Windows + +### Minimum requirements +- [Visual Studio 2019 (16.8)](https://visualstudio.microsoft.com/downloads/) or newer + - Workloads + - Desktop development with C++ + - .NET desktop development + - .NET Core cross-platform development + - Optional: ASP.NET and web development (to build samples) + - Individual components + - .NET Framework 4.7 targeting pack +- [.NET 5.0 SDK](https://dotnet.microsoft.com/download/dotnet/5.0) +- [.NET 5.0 x86 SDK](https://dotnet.microsoft.com/download/dotnet/5.0) to run 32-bit tests locally +- Optional: [ASP.NET Core 2.1 Runtime](https://dotnet.microsoft.com/download/dotnet-core/2.1) to test in .NET Core 2.1 locally. +- Optional: [ASP.NET Core 3.0 Runtime](https://dotnet.microsoft.com/download/dotnet-core/3.0) to test in .NET Core 3.0 locally. +- Optional: [ASP.NET Core 3.1 Runtime](https://dotnet.microsoft.com/download/dotnet-core/3.1) to test in .NET Core 3.1 locally. +- Optional: [nuget.exe CLI](https://www.nuget.org/downloads) v5.3 or newer +- Optional: [WiX Toolset 3.11.1](http://wixtoolset.org/releases/) or newer to build Windows installer (msi) + - [WiX Toolset Visual Studio Extension](https://wixtoolset.org/releases/) to build installer from Visual Studio +- Optional: [Docker for Windows](https://docs.docker.com/docker-for-windows/) to build Linux binaries and run integration tests on Linux containers. See [section on Docker Compose](#building-and-running-tests-with-docker-compose). + - Requires Windows 10 (1607 Anniversary Update, Build 14393 or newer) + + +This repository uses [Nuke](https://nuke.build/) for build automation. To see a list of possible targets run: + +```cmd +.\build.cmd --help +``` + +For example: + +```powershell +# Clean and build the main tracer project +.\build.cmd Clean BuildTracerHome + +# Build and run managed and native unit tests. Requires BuildTracerHome to have previously been run +.\build.cmd BuildAndRunManagedUnitTests BuildAndRunNativeUnitTests + +# Build NuGet packages and MSIs. Requires BuildTracerHome to have previously been run +.\build.cmd PackageTracerHome + +# Build and run integration tests. Requires BuildTracerHome to have previously been run +.\build.cmd BuildAndRunWindowsIntegrationTests +``` + +## Linux + +The recommended approach for Linux is to build using Docker. You can use this approach for both Windows and Linux hosts. The _build_in_docker.sh_ script automates building a Docker image with the required dependencies, and running the specified Nuke targets. For example: + +```bash +# Clean and build the main tracer project +./build_in_docker.sh Clean BuildTracerHome + +# Build and run managed unit tests. Requires BuildTracerHome to have previously been run +./build_in_docker.sh BuildAndRunManagedUnitTests + +# Build and run integration tests. Requires BuildTracerHome to have previously been run +./build_in_docker.sh BuildAndRunLinuxIntegrationTests +``` + +## Further Reading + +Datadog APM +- [Datadog APM](https://docs.datadoghq.com/tracing/) +- [Datadog APM - Tracing .NET Core and .NET 5 Applications](https://docs.datadoghq.com/tracing/setup_overview/setup/dotnet-core) +- [Datadog APM - Tracing .NET Framework Applications](https://docs.datadoghq.com/tracing/setup_overview/setup/dotnet-framework) + +Microsoft .NET Profiling APIs +- [Profiling API](https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/profiling/) +- [Metadata API](https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/metadata/) +- [The Book of the Runtime - Profiling](https://github.com/dotnet/coreclr/blob/master/Documentation/botr/profiling.md) + +OpenTracing +- [OpenTracing documentation](https://github.com/opentracing/opentracing-csharp) +- [OpenTracing terminology](https://github.com/opentracing/specification/blob/master/specification.md) diff --git a/integrations.json b/integrations.json index 327299c3a5..6f8925138f 100644 --- a/integrations.json +++ b/integrations.json @@ -68,7 +68,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -91,8 +91,8 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -277,7 +277,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SDK.RuntimePipelineInvokeAsyncIntegration", "action": "CallTargetModification" } @@ -300,7 +300,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SDK.RuntimePipelineInvokeSyncIntegration", "action": "CallTargetModification" } @@ -329,7 +329,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.CreateQueueAsyncIntegration", "action": "CallTargetModification" } @@ -352,7 +352,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.CreateQueueIntegration", "action": "CallTargetModification" } @@ -376,7 +376,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.DeleteMessageAsyncIntegration", "action": "CallTargetModification" } @@ -400,7 +400,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.DeleteMessageBatchAsyncIntegration", "action": "CallTargetModification" } @@ -423,7 +423,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.DeleteMessageBatchIntegration", "action": "CallTargetModification" } @@ -446,7 +446,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.DeleteMessageIntegration", "action": "CallTargetModification" } @@ -470,7 +470,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.DeleteQueueAsyncIntegration", "action": "CallTargetModification" } @@ -493,7 +493,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.DeleteQueueIntegration", "action": "CallTargetModification" } @@ -517,7 +517,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.ReceiveMessageAsyncIntegration", "action": "CallTargetModification" } @@ -540,7 +540,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.ReceiveMessageIntegration", "action": "CallTargetModification" } @@ -564,7 +564,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.SendMessageAsyncIntegration", "action": "CallTargetModification" } @@ -588,7 +588,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.SendMessageBatchAsyncIntegration", "action": "CallTargetModification" } @@ -611,7 +611,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.SendMessageBatchIntegration", "action": "CallTargetModification" } @@ -634,7 +634,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.SQS.SendMessageIntegration", "action": "CallTargetModification" } @@ -664,7 +664,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.ClientQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -689,7 +689,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.ClientQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -714,7 +714,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.ClientQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -739,7 +739,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.ClientQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -764,7 +764,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.ContainerQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -789,7 +789,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.ContainerQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -814,7 +814,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.ContainerQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -839,7 +839,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.ContainerQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -864,7 +864,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.DatabaseQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -889,7 +889,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.DatabaseQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -914,7 +914,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.DatabaseQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -939,7 +939,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.DatabaseQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -964,7 +964,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.DatabaseQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -989,7 +989,7 @@ "maximum_patch": 65535 }, "wrapper": { - "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.0.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.CosmosDb.DatabaseQueryIteratorsIntegrations", "action": "CallTargetModification" } @@ -2126,7 +2126,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -2150,7 +2150,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -2174,7 +2174,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -2541,7 +2541,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -2565,7 +2565,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -3409,7 +3409,7 @@ "minimum_major": 1, "minimum_minor": 0, "minimum_patch": 0, - "maximum_major": 2, + "maximum_major": 3, "maximum_minor": 65535, "maximum_patch": 65535 }, @@ -3475,7 +3475,7 @@ "minimum_major": 1, "minimum_minor": 0, "minimum_patch": 0, - "maximum_major": 2, + "maximum_major": 3, "maximum_minor": 65535, "maximum_patch": 65535 }, @@ -3485,6 +3485,74 @@ "action": "CallTargetModification" } }, + { + "caller": {}, + "target": { + "assembly": "Microsoft.Data.SqlClient", + "type": "Microsoft.Data.SqlClient.SqlCommand", + "method": "ExecuteReaderAsync", + "signature_types": [ + "System.Threading.Tasks.Task`1" + ], + "minimum_major": 1, + "minimum_minor": 0, + "minimum_patch": 0, + "maximum_major": 3, + "maximum_minor": 65535, + "maximum_patch": 65535 + }, + "wrapper": { + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderAsyncIntegration", + "action": "CallTargetModification" + } + }, + { + "caller": {}, + "target": { + "assembly": "Microsoft.Data.SqlClient", + "type": "Microsoft.Data.SqlClient.SqlCommand", + "method": "ExecuteReaderAsync", + "signature_types": [ + "System.Threading.Tasks.Task`1", + "System.Threading.CancellationToken" + ], + "minimum_major": 1, + "minimum_minor": 0, + "minimum_patch": 0, + "maximum_major": 3, + "maximum_minor": 65535, + "maximum_patch": 65535 + }, + "wrapper": { + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithCancellationAsyncIntegration", + "action": "CallTargetModification" + } + }, + { + "caller": {}, + "target": { + "assembly": "Microsoft.Data.SqlClient", + "type": "Microsoft.Data.SqlClient.SqlCommand", + "method": "ExecuteReaderAsync", + "signature_types": [ + "System.Threading.Tasks.Task`1", + "System.Data.CommandBehavior" + ], + "minimum_major": 1, + "minimum_minor": 0, + "minimum_patch": 0, + "maximum_major": 3, + "maximum_minor": 65535, + "maximum_patch": 65535 + }, + "wrapper": { + "assembly": "Datadog.Trace.ClrProfiler.Managed, Version=1.27.1.0, Culture=neutral, PublicKeyToken=def86d061d0d2eeb", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "action": "CallTargetModification" + } + }, { "caller": {}, "target": { @@ -3505,7 +3573,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -3529,7 +3597,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -3547,13 +3615,13 @@ "minimum_major": 1, "minimum_minor": 0, "minimum_patch": 0, - "maximum_major": 2, + "maximum_major": 3, "maximum_minor": 65535, "maximum_patch": 65535 }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -3577,7 +3645,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -3601,7 +3669,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -3619,13 +3687,13 @@ "minimum_major": 1, "minimum_minor": 0, "minimum_patch": 0, - "maximum_major": 2, + "maximum_major": 3, "maximum_minor": 65535, "maximum_patch": 65535 }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -3685,7 +3753,7 @@ "minimum_major": 1, "minimum_minor": 0, "minimum_patch": 0, - "maximum_major": 2, + "maximum_major": 3, "maximum_minor": 65535, "maximum_patch": 65535 }, @@ -3754,7 +3822,7 @@ "minimum_major": 1, "minimum_minor": 0, "minimum_patch": 0, - "maximum_major": 2, + "maximum_major": 3, "maximum_minor": 65535, "maximum_patch": 65535 }, @@ -3823,7 +3891,7 @@ "minimum_major": 1, "minimum_minor": 0, "minimum_patch": 0, - "maximum_major": 2, + "maximum_major": 3, "maximum_minor": 65535, "maximum_patch": 65535 }, @@ -3892,7 +3960,7 @@ "minimum_major": 1, "minimum_minor": 0, "minimum_patch": 0, - "maximum_major": 2, + "maximum_major": 3, "maximum_minor": 65535, "maximum_patch": 65535 }, @@ -3958,7 +4026,7 @@ "minimum_major": 1, "minimum_minor": 0, "minimum_patch": 0, - "maximum_major": 2, + "maximum_major": 3, "maximum_minor": 65535, "maximum_patch": 65535 }, @@ -4037,7 +4105,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, @@ -4061,7 +4129,7 @@ }, "wrapper": { "assembly": "OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429", - "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAsyncIntegration", + "type": "Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet.CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration", "action": "CallTargetModification" } }, diff --git a/src/Datadog.Trace.Ci.Shared/CIEnvironmentValues.cs b/src/Datadog.Trace.Ci.Shared/CIEnvironmentValues.cs index 9c4571410b..01ce05adde 100644 --- a/src/Datadog.Trace.Ci.Shared/CIEnvironmentValues.cs +++ b/src/Datadog.Trace.Ci.Shared/CIEnvironmentValues.cs @@ -185,13 +185,40 @@ internal static void ReloadEnvironmentData() // Merge commits have a different commit hash from the one reported by the CI. if (gitInfo.Commit == Commit) { - AuthorName = gitInfo.AuthorName; - AuthorEmail = gitInfo.AuthorEmail; - AuthorDate = gitInfo.AuthorDate; - CommitterName = gitInfo.CommitterName; - CommitterEmail = gitInfo.CommitterEmail; - CommitterDate = gitInfo.CommitterDate; - Message = gitInfo.Message; + if (string.IsNullOrEmpty(AuthorName)) + { + AuthorName = gitInfo.AuthorName; + } + + if (string.IsNullOrEmpty(AuthorEmail)) + { + AuthorEmail = gitInfo.AuthorEmail; + } + + if (AuthorDate is null) + { + AuthorDate = gitInfo.AuthorDate; + } + + if (string.IsNullOrEmpty(CommitterName)) + { + CommitterName = gitInfo.CommitterName; + } + + if (string.IsNullOrEmpty(CommitterEmail)) + { + CommitterEmail = gitInfo.CommitterEmail; + } + + if (CommitterDate is null) + { + CommitterDate = gitInfo.CommitterDate; + } + + if (string.IsNullOrEmpty(Message)) + { + Message = gitInfo.Message; + } } // ********** @@ -246,6 +273,8 @@ private static void SetupTravisEnvironment() PipelineName = repoSlug; PipelineUrl = EnvironmentHelpers.GetEnvironmentVariable("TRAVIS_BUILD_WEB_URL"); JobUrl = EnvironmentHelpers.GetEnvironmentVariable("TRAVIS_JOB_WEB_URL"); + + Message = EnvironmentHelpers.GetEnvironmentVariable("TRAVIS_COMMIT_MESSAGE"); } private static void SetupCircleCiEnvironment() @@ -357,6 +386,8 @@ private static void SetupGitlabEnvironment() JobName = EnvironmentHelpers.GetEnvironmentVariable("CI_JOB_NAME"); StageName = EnvironmentHelpers.GetEnvironmentVariable("CI_JOB_STAGE"); + Message = EnvironmentHelpers.GetEnvironmentVariable("CI_COMMIT_MESSAGE"); + // Clean pipeline url PipelineUrl = PipelineUrl?.Replace("/-/pipelines/", "/pipelines/"); } @@ -389,6 +420,10 @@ private static void SetupAppveyorEnvironment() { Branch = EnvironmentHelpers.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH"); } + + Message = EnvironmentHelpers.GetEnvironmentVariable("APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED"); + AuthorName = EnvironmentHelpers.GetEnvironmentVariable("APPVEYOR_REPO_COMMIT_AUTHOR"); + AuthorEmail = EnvironmentHelpers.GetEnvironmentVariable("APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL"); } private static void SetupAzurePipelinesEnvironment() @@ -426,6 +461,10 @@ private static void SetupAzurePipelinesEnvironment() { Branch = EnvironmentHelpers.GetEnvironmentVariable("BUILD_SOURCEBRANCHNAME"); } + + Message = EnvironmentHelpers.GetEnvironmentVariable("BUILD_SOURCEVERSIONMESSAGE"); + AuthorName = EnvironmentHelpers.GetEnvironmentVariable("BUILD_REQUESTEDFORID"); + AuthorEmail = EnvironmentHelpers.GetEnvironmentVariable("BUILD_REQUESTEDFOREMAIL"); } private static void SetupBitbucketEnvironment() @@ -511,6 +550,10 @@ private static void SetupBuildkiteEnvironment() PipelineName = EnvironmentHelpers.GetEnvironmentVariable("BUILDKITE_PIPELINE_SLUG"); PipelineUrl = EnvironmentHelpers.GetEnvironmentVariable("BUILDKITE_BUILD_URL"); JobUrl = string.Format("{0}#{1}", EnvironmentHelpers.GetEnvironmentVariable("BUILDKITE_BUILD_URL"), EnvironmentHelpers.GetEnvironmentVariable("BUILDKITE_JOB_ID")); + + Message = EnvironmentHelpers.GetEnvironmentVariable("BUILDKITE_MESSAGE"); + AuthorName = EnvironmentHelpers.GetEnvironmentVariable("BUILDKITE_BUILD_AUTHOR"); + AuthorEmail = EnvironmentHelpers.GetEnvironmentVariable("BUILDKITE_BUILD_AUTHOR_EMAIL"); } private static void SetupBitriseEnvironment() @@ -532,6 +575,8 @@ private static void SetupBitriseEnvironment() PipelineNumber = EnvironmentHelpers.GetEnvironmentVariable("BITRISE_BUILD_NUMBER"); PipelineName = EnvironmentHelpers.GetEnvironmentVariable("BITRISE_APP_TITLE"); PipelineUrl = EnvironmentHelpers.GetEnvironmentVariable("BITRISE_BUILD_URL"); + + Message = EnvironmentHelpers.GetEnvironmentVariable("BITRISE_GIT_MESSAGE"); } [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/AdoNetClientInstrumentMethodAttribute.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/AdoNetClientInstrumentMethodAttribute.cs index c9c17c018c..a4a689065e 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/AdoNetClientInstrumentMethodAttribute.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/AdoNetClientInstrumentMethodAttribute.cs @@ -64,11 +64,22 @@ public CommandExecuteReaderAsyncAttribute(Type adoNetClientDataType) { MethodName = AdoNetConstants.MethodNames.ExecuteReaderAsync; ReturnTypeName = AdoNetClientData.DataReaderTaskType; - ParameterTypeNames = new[] { ClrNames.CancellationToken }; CallTargetType = typeof(CommandExecuteReaderAsyncIntegration); } } + internal class CommandExecuteReaderWithCancellationAsyncAttribute : AdoNetClientInstrumentMethodAttribute + { + public CommandExecuteReaderWithCancellationAsyncAttribute(Type adoNetClientDataType) + : base(adoNetClientDataType) + { + MethodName = AdoNetConstants.MethodNames.ExecuteReaderAsync; + ReturnTypeName = AdoNetClientData.DataReaderTaskType; + ParameterTypeNames = new[] { ClrNames.CancellationToken }; + CallTargetType = typeof(CommandExecuteReaderWithCancellationAsyncIntegration); + } + } + internal class CommandExecuteReaderWithBehaviorAsyncAttribute : AdoNetClientInstrumentMethodAttribute { public CommandExecuteReaderWithBehaviorAsyncAttribute(Type adoNetClientDataType) @@ -76,20 +87,32 @@ public CommandExecuteReaderWithBehaviorAsyncAttribute(Type adoNetClientDataType) { MethodName = AdoNetConstants.MethodNames.ExecuteReaderAsync; ReturnTypeName = AdoNetClientData.DataReaderTaskType; - ParameterTypeNames = new[] { AdoNetConstants.TypeNames.CommandBehavior, ClrNames.CancellationToken }; + ParameterTypeNames = new[] { AdoNetConstants.TypeNames.CommandBehavior }; CallTargetType = typeof(CommandExecuteReaderWithBehaviorAsyncIntegration); } } - internal class CommandExecuteDbDataReaderWithBehaviorAsyncAttribute : AdoNetClientInstrumentMethodAttribute + internal class CommandExecuteReaderWithBehaviorAndCancellationAsyncAttribute : AdoNetClientInstrumentMethodAttribute { - public CommandExecuteDbDataReaderWithBehaviorAsyncAttribute(Type adoNetClientDataType) + public CommandExecuteReaderWithBehaviorAndCancellationAsyncAttribute(Type adoNetClientDataType) + : base(adoNetClientDataType) + { + MethodName = AdoNetConstants.MethodNames.ExecuteReaderAsync; + ReturnTypeName = AdoNetClientData.DataReaderTaskType; + ParameterTypeNames = new[] { AdoNetConstants.TypeNames.CommandBehavior, ClrNames.CancellationToken }; + CallTargetType = typeof(CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration); + } + } + + internal class CommandExecuteDbDataReaderWithBehaviorAndCancellationAsyncAttribute : AdoNetClientInstrumentMethodAttribute + { + public CommandExecuteDbDataReaderWithBehaviorAndCancellationAsyncAttribute(Type adoNetClientDataType) : base(adoNetClientDataType) { MethodName = AdoNetConstants.MethodNames.ExecuteDbDataReaderAsync; ReturnTypeName = AdoNetConstants.TypeNames.DbDataReaderTaskType; ParameterTypeNames = new[] { AdoNetConstants.TypeNames.CommandBehavior, ClrNames.CancellationToken }; - CallTargetType = typeof(CommandExecuteReaderWithBehaviorAsyncIntegration); + CallTargetType = typeof(CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration); } } diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/AdoNetDefinitions.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/AdoNetDefinitions.cs index 6ffd57beb0..e255680f53 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/AdoNetDefinitions.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/AdoNetDefinitions.cs @@ -19,8 +19,8 @@ ********************************************************************************/ // Task System.Data.Common.DBCommand.ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteDbDataReaderWithBehaviorAsync(typeof(SystemDataClientData))] -[assembly: CommandExecuteDbDataReaderWithBehaviorAsync(typeof(SystemDataCommonClientData))] +[assembly: CommandExecuteDbDataReaderWithBehaviorAndCancellationAsync(typeof(SystemDataClientData))] +[assembly: CommandExecuteDbDataReaderWithBehaviorAndCancellationAsync(typeof(SystemDataCommonClientData))] /******************************************************************************** * Task .ExecuteScalarAsync(CancellationToken) diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderAsyncIntegration.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderAsyncIntegration.cs index b78bc6e9e6..83d959d947 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderAsyncIntegration.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderAsyncIntegration.cs @@ -12,7 +12,7 @@ namespace Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet { /// /// CallTarget instrumentation for: - /// Task[*DataReader] [Command].ExecuteReaderAsync(CancellationToken) + /// Task[*DataReader] [Command].ExecuteReaderAsync() /// public class CommandExecuteReaderAsyncIntegration { @@ -21,9 +21,8 @@ public class CommandExecuteReaderAsyncIntegration /// /// Type of the target /// Instance value, aka `this` of the instrumented method. - /// CancellationToken value /// Calltarget state value - public static CallTargetState OnMethodBegin(TTarget instance, CancellationToken cancellationToken) + public static CallTargetState OnMethodBegin(TTarget instance) { return new CallTargetState(ScopeDBFactory.CreateDbCommandScope(Tracer.Instance, (IDbCommand)instance)); } diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration.cs new file mode 100644 index 0000000000..5a63388d38 --- /dev/null +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration.cs @@ -0,0 +1,50 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +using System; +using System.Data; +using System.Threading; +using Datadog.Trace.ClrProfiler.CallTarget; + +namespace Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet +{ + /// + /// CallTarget instrumentation for: + /// Task[*DataReader] [Command].ExecuteReaderAsync(CommandBehavior, CancellationToken) + /// Task[DbDataReader] [Command].ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) + /// + public class CommandExecuteReaderWithBehaviorAndCancellationAsyncIntegration + { + /// + /// OnMethodBegin callback + /// + /// Type of the target + /// Command Behavior type + /// Instance value, aka `this` of the instrumented method. + /// Command behavior + /// CancellationToken value + /// Calltarget state value + public static CallTargetState OnMethodBegin(TTarget instance, TBehavior commandBehavior, CancellationToken cancellationToken) + { + return new CallTargetState(ScopeDBFactory.CreateDbCommandScope(Tracer.Instance, (IDbCommand)instance)); + } + + /// + /// OnAsyncMethodEnd callback + /// + /// Type of the target + /// Type of the return value, in an async scenario will be T of Task of T + /// Instance value, aka `this` of the instrumented method. + /// Return value instance + /// Exception instance in case the original code threw an exception. + /// Calltarget state value + /// A response value, in an async scenario will be T of Task of T + public static TReturn OnAsyncMethodEnd(TTarget instance, TReturn returnValue, Exception exception, CallTargetState state) + { + state.Scope.DisposeWithException(exception); + return returnValue; + } + } +} diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithBehaviorAsyncIntegration.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithBehaviorAsyncIntegration.cs index ba4e50826b..0b7f67558f 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithBehaviorAsyncIntegration.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithBehaviorAsyncIntegration.cs @@ -5,15 +5,13 @@ using System; using System.Data; -using System.Threading; using Datadog.Trace.ClrProfiler.CallTarget; namespace Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet { /// /// CallTarget instrumentation for: - /// Task[*DataReader] [Command].ExecuteReaderAsync(CommandBehavior, CancellationToken) - /// Task[DbDataReader] [Command].ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) + /// Task[*DataReader] [Command].ExecuteReaderAsync(CommandBehavior) /// public class CommandExecuteReaderWithBehaviorAsyncIntegration { @@ -24,9 +22,8 @@ public class CommandExecuteReaderWithBehaviorAsyncIntegration /// Command Behavior type /// Instance value, aka `this` of the instrumented method. /// Command behavior - /// CancellationToken value /// Calltarget state value - public static CallTargetState OnMethodBegin(TTarget instance, TBehavior commandBehavior, CancellationToken cancellationToken) + public static CallTargetState OnMethodBegin(TTarget instance, TBehavior commandBehavior) { return new CallTargetState(ScopeDBFactory.CreateDbCommandScope(Tracer.Instance, (IDbCommand)instance)); } diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithCancellationAsyncIntegration.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithCancellationAsyncIntegration.cs new file mode 100644 index 0000000000..9885e18c69 --- /dev/null +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/CommandExecuteReaderWithCancellationAsyncIntegration.cs @@ -0,0 +1,47 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +using System; +using System.Data; +using System.Threading; +using Datadog.Trace.ClrProfiler.CallTarget; + +namespace Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet +{ + /// + /// CallTarget instrumentation for: + /// Task[*DataReader] [Command].ExecuteReaderAsync(CancellationToken) + /// + public class CommandExecuteReaderWithCancellationAsyncIntegration + { + /// + /// OnMethodBegin callback + /// + /// Type of the target + /// Instance value, aka `this` of the instrumented method. + /// CancellationToken value + /// Calltarget state value + public static CallTargetState OnMethodBegin(TTarget instance, CancellationToken cancellationToken) + { + return new CallTargetState(ScopeDBFactory.CreateDbCommandScope(Tracer.Instance, (IDbCommand)instance)); + } + + /// + /// OnAsyncMethodEnd callback + /// + /// Type of the target + /// Type of the return value, in an async scenario will be T of Task of T + /// Instance value, aka `this` of the instrumented method. + /// Return value instance + /// Exception instance in case the original code threw an exception. + /// Calltarget state value + /// A response value, in an async scenario will be T of Task of T + public static TReturn OnAsyncMethodEnd(TTarget instance, TReturn returnValue, Exception exception, CallTargetState state) + { + state.Scope.DisposeWithException(exception); + return returnValue; + } + } +} diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/MySql/MySqlDefinitions.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/MySql/MySqlDefinitions.cs index e2858ce18b..769fff6d10 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/MySql/MySqlDefinitions.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/MySql/MySqlDefinitions.cs @@ -29,21 +29,21 @@ ********************************************************************************/ // Task MySqlConnector.MySqlCommand.ExecuteReaderAsync(CancellationToken) -[assembly: CommandExecuteReaderAsync(typeof(MySqlConnectorClientData))] +[assembly: CommandExecuteReaderWithCancellationAsync(typeof(MySqlConnectorClientData))] /******************************************************************************** * Task<[*]DataReader> .ExecuteReaderAsync(CommandBehavior, CancellationToken) ********************************************************************************/ // Task MySqlConnector.MySqlCommand.ExecuteReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteReaderWithBehaviorAsync(typeof(MySqlConnectorClientData))] +[assembly: CommandExecuteReaderWithBehaviorAndCancellationAsync(typeof(MySqlConnectorClientData))] /******************************************************************************** * Task .ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) ********************************************************************************/ // Task MySqlConnector.MySqlCommand.ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteDbDataReaderWithBehaviorAsync(typeof(MySqlConnectorClientData))] +[assembly: CommandExecuteDbDataReaderWithBehaviorAndCancellationAsync(typeof(MySqlConnectorClientData))] /******************************************************************************** * [*]DataReader .ExecuteReader() diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/Npgsql/NpgsqlDefinitions.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/Npgsql/NpgsqlDefinitions.cs index e322a74ddd..c73572e7e3 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/Npgsql/NpgsqlDefinitions.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/Npgsql/NpgsqlDefinitions.cs @@ -25,14 +25,14 @@ ********************************************************************************/ // Task Npgsql.NpgsqlCommand.ExecuteReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteReaderWithBehaviorAsync(typeof(NpgsqlClientData))] +[assembly: CommandExecuteReaderWithBehaviorAndCancellationAsync(typeof(NpgsqlClientData))] /******************************************************************************** * Task .ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) ********************************************************************************/ // Task Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteDbDataReaderWithBehaviorAsync(typeof(NpgsqlClientData))] +[assembly: CommandExecuteDbDataReaderWithBehaviorAndCancellationAsync(typeof(NpgsqlClientData))] /******************************************************************************** * [*]DataReader .ExecuteReader() diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/SqlClient/SqlClientConstants.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/SqlClient/SqlClientConstants.cs index fddab00691..a617762ef9 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/SqlClient/SqlClientConstants.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/SqlClient/SqlClientConstants.cs @@ -53,7 +53,7 @@ internal struct MicrosoftDataAdoNetClientData : IAdoNetClientData public string MinimumVersion => "1.0.0"; - public string MaximumVersion => "2.*.*"; + public string MaximumVersion => "3.*.*"; public string DataReaderType => "Microsoft.Data.SqlClient.SqlDataReader"; diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/SqlClient/SqlClientDefinitions.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/SqlClient/SqlClientDefinitions.cs index 1ff32b28e7..478557e8ff 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/SqlClient/SqlClientDefinitions.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/SqlClient/SqlClientDefinitions.cs @@ -28,27 +28,48 @@ // int Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQuery() [assembly: CommandExecuteNonQuery(typeof(MicrosoftDataAdoNetClientData))] +/******************************************************************************** + * Task<[*]DataReader> .ExecuteReaderAsync() + ********************************************************************************/ + +// Task Microsoft.Data.SqlClient.SqlCommand.ExecuteReaderAsync() +[assembly: CommandExecuteReaderAsync(typeof(MicrosoftDataAdoNetClientData))] + +/******************************************************************************** + * Task<[*]DataReader> .ExecuteReaderAsync(CancellationToken) + ********************************************************************************/ + +// Task Microsoft.Data.SqlClient.SqlCommand.ExecuteReaderAsync(CancellationToken) +[assembly: CommandExecuteReaderWithCancellationAsync(typeof(MicrosoftDataAdoNetClientData))] + +/******************************************************************************** + * Task<[*]DataReader> .ExecuteReaderAsync(CommandBehavior) + ********************************************************************************/ + +// Task Microsoft.Data.SqlClient.SqlCommand.ExecuteReaderAsync(CommandBehavior) +[assembly: CommandExecuteReaderWithBehaviorAsync(typeof(MicrosoftDataAdoNetClientData))] + /******************************************************************************** * Task<[*]DataReader> .ExecuteReaderAsync(CommandBehavior, CancellationToken) ********************************************************************************/ // Task System.Data.SqlClient.SqlCommand.ExecuteReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteReaderWithBehaviorAsync(typeof(SystemDataAdoNetClientData))] -[assembly: CommandExecuteReaderWithBehaviorAsync(typeof(SystemDataSqlClientAdoNetClientData))] +[assembly: CommandExecuteReaderWithBehaviorAndCancellationAsync(typeof(SystemDataAdoNetClientData))] +[assembly: CommandExecuteReaderWithBehaviorAndCancellationAsync(typeof(SystemDataSqlClientAdoNetClientData))] // Task Microsoft.Data.SqlClient.SqlCommand.ExecuteReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteReaderWithBehaviorAsync(typeof(MicrosoftDataAdoNetClientData))] +[assembly: CommandExecuteReaderWithBehaviorAndCancellationAsync(typeof(MicrosoftDataAdoNetClientData))] /******************************************************************************** * Task .ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) ********************************************************************************/ // Task System.Data.SqlClient.SqlCommand.ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteDbDataReaderWithBehaviorAsync(typeof(SystemDataAdoNetClientData))] -[assembly: CommandExecuteDbDataReaderWithBehaviorAsync(typeof(SystemDataSqlClientAdoNetClientData))] +[assembly: CommandExecuteDbDataReaderWithBehaviorAndCancellationAsync(typeof(SystemDataAdoNetClientData))] +[assembly: CommandExecuteDbDataReaderWithBehaviorAndCancellationAsync(typeof(SystemDataSqlClientAdoNetClientData))] // Task Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteDbDataReaderWithBehaviorAsync(typeof(MicrosoftDataAdoNetClientData))] +[assembly: CommandExecuteDbDataReaderWithBehaviorAndCancellationAsync(typeof(MicrosoftDataAdoNetClientData))] /******************************************************************************** * [*]DataReader .ExecuteReader() diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/Sqlite/SqliteDefinitions.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/Sqlite/SqliteDefinitions.cs index debca8ed81..685bed1cfc 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/Sqlite/SqliteDefinitions.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/AdoNet/Sqlite/SqliteDefinitions.cs @@ -25,14 +25,14 @@ ********************************************************************************/ // Task Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteReaderWithBehaviorAsync(typeof(MicrosoftDataSqliteClientData))] +[assembly: CommandExecuteReaderWithBehaviorAndCancellationAsync(typeof(MicrosoftDataSqliteClientData))] /******************************************************************************** * Task .ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) ********************************************************************************/ // Task Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken) -[assembly: CommandExecuteDbDataReaderWithBehaviorAsync(typeof(MicrosoftDataSqliteClientData))] +[assembly: CommandExecuteDbDataReaderWithBehaviorAndCancellationAsync(typeof(MicrosoftDataSqliteClientData))] /******************************************************************************** * [*]DataReader .ExecuteReader() diff --git a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/Testing/XUnit/XUnitTestAssemblyFinishedCtorIntegration.cs b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/Testing/XUnit/XUnitTestAssemblyFinishedCtorIntegration.cs index 66e4e641cd..890c6f6fee 100644 --- a/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/Testing/XUnit/XUnitTestAssemblyFinishedCtorIntegration.cs +++ b/src/Datadog.Trace.ClrProfiler.Managed/AutoInstrumentation/Testing/XUnit/XUnitTestAssemblyFinishedCtorIntegration.cs @@ -9,7 +9,7 @@ namespace Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.XUnit { /// - /// Xunit.Sdk.TestAssemblyRunner`1.RunAsync calltarget instrumentation + /// Xunit.Sdk.TestAssemblyFinished..ctor calltarget instrumentation /// [InstrumentMethod( AssemblyNames = new[] { "xunit.execution.dotnet", "xunit.execution.desktop" }, diff --git a/src/Datadog.Trace.ClrProfiler.Native/CMakeLists.txt b/src/Datadog.Trace.ClrProfiler.Native/CMakeLists.txt index 60ee877482..3fead39876 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/CMakeLists.txt +++ b/src/Datadog.Trace.ClrProfiler.Native/CMakeLists.txt @@ -73,7 +73,7 @@ else() endif() if (NOT EXISTS ${CMAKE_SOURCE_DIR}/../bin/ProfilerResources/netcoreapp2.0) - message(FATAL_ERROR "Datadog.Trace.ClrProfiler.Loader must be build first.") + message(FATAL_ERROR "Datadog.Trace.ClrProfiler.Loader must be built first.") else() message(STATUS "Datadog.Trace.ClrProfiler.Loader was found") endif() @@ -176,13 +176,13 @@ if(ISLINUX) endif() # Sets compiler options -add_compile_options(-std=c++11 -fPIC -fms-extensions) +add_compile_options(-std=c++17 -fPIC -fms-extensions) add_compile_options(-DPAL_STDCPP_COMPAT -DPLATFORM_UNIX -DUNICODE) -add_compile_options(-Wno-invalid-noreturn -Wno-macro-redefined -Wno-c++17-extensions) +add_compile_options(-Wno-invalid-noreturn -Wno-macro-redefined) if (ISMACOS) add_compile_options(-stdlib=libc++ -DMACOS -Wno-pragma-pack) elseif(ISLINUX) - add_compile_options(-DLINUX -Wno-pragmas) + add_compile_options(-stdlib=libstdc++ -DLINUX -Wno-pragmas) endif() if (BIT64) add_compile_options(-DBIT64 -DHOST_64BIT) diff --git a/src/Datadog.Trace.ClrProfiler.Native/calltarget_tokens.cpp b/src/Datadog.Trace.ClrProfiler.Native/calltarget_tokens.cpp index d094d65abf..dbd55238c0 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/calltarget_tokens.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/calltarget_tokens.cpp @@ -5,7 +5,8 @@ #include "logging.h" #include "module_metadata.h" -namespace trace { +namespace trace +{ const int signatureBufferSize = 500; @@ -13,937 +14,1096 @@ const int signatureBufferSize = 500; * PRIVATE **/ -HRESULT CallTargetTokens::EnsureCorLibTokens() { - ModuleMetadata* module_metadata = GetMetadata(); - AssemblyProperty corAssemblyProperty = *module_metadata->corAssemblyProperty; - - // *** Ensure corlib assembly ref - if (corLibAssemblyRef == mdAssemblyRefNil) { - auto hr = module_metadata->assembly_emit->DefineAssemblyRef( - corAssemblyProperty.ppbPublicKey, corAssemblyProperty.pcbPublicKey, - corAssemblyProperty.szName.data(), &corAssemblyProperty.pMetaData, - &corAssemblyProperty.pulHashAlgId, - sizeof(corAssemblyProperty.pulHashAlgId), - corAssemblyProperty.assemblyFlags, &corLibAssemblyRef); - if (corLibAssemblyRef == mdAssemblyRefNil) { - Warn("Wrapper corLibAssemblyRef could not be defined."); - return hr; - } - } - - // *** Ensure System.Object type ref - if (objectTypeRef == mdTypeRefNil) { - auto hr = module_metadata->metadata_emit->DefineTypeRefByName( - corLibAssemblyRef, SystemObject, &objectTypeRef); - if (FAILED(hr)) { - Warn("Wrapper objectTypeRef could not be defined."); - return hr; - } - } - - // *** Ensure System.Exception type ref - if (exTypeRef == mdTypeRefNil) { - auto hr = module_metadata->metadata_emit->DefineTypeRefByName( - corLibAssemblyRef, SystemException, &exTypeRef); - if (FAILED(hr)) { - Warn("Wrapper exTypeRef could not be defined."); - return hr; - } - } - - // *** Ensure System.Type type ref - if (typeRef == mdTypeRefNil) { - auto hr = module_metadata->metadata_emit->DefineTypeRefByName( - corLibAssemblyRef, SystemTypeName, &typeRef); - if (FAILED(hr)) { - Warn("Wrapper typeRef could not be defined."); - return hr; - } - } - - // *** Ensure System.RuntimeTypeHandle type ref - if (runtimeTypeHandleRef == mdTypeRefNil) { - auto hr = module_metadata->metadata_emit->DefineTypeRefByName( - corLibAssemblyRef, RuntimeTypeHandleTypeName, - &runtimeTypeHandleRef); - if (FAILED(hr)) { - Warn("Wrapper runtimeTypeHandleRef could not be defined."); - return hr; - } - } - - // *** Ensure Type.GetTypeFromHandle token - if (getTypeFromHandleToken == mdTokenNil) { - unsigned runtimeTypeHandle_buffer; - auto runtimeTypeHandle_size = - CorSigCompressToken(runtimeTypeHandleRef, &runtimeTypeHandle_buffer); - - unsigned type_buffer; - auto type_size = CorSigCompressToken(typeRef, &type_buffer); +HRESULT CallTargetTokens::EnsureCorLibTokens() +{ + ModuleMetadata* module_metadata = GetMetadata(); + AssemblyProperty corAssemblyProperty = *module_metadata->corAssemblyProperty; + + // *** Ensure corlib assembly ref + if (corLibAssemblyRef == mdAssemblyRefNil) + { + auto hr = module_metadata->assembly_emit->DefineAssemblyRef( + corAssemblyProperty.ppbPublicKey, corAssemblyProperty.pcbPublicKey, corAssemblyProperty.szName.data(), + &corAssemblyProperty.pMetaData, &corAssemblyProperty.pulHashAlgId, sizeof(corAssemblyProperty.pulHashAlgId), + corAssemblyProperty.assemblyFlags, &corLibAssemblyRef); + if (corLibAssemblyRef == mdAssemblyRefNil) + { + Warn("Wrapper corLibAssemblyRef could not be defined."); + return hr; + } + } - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; + // *** Ensure System.Object type ref + if (objectTypeRef == mdTypeRefNil) + { + auto hr = module_metadata->metadata_emit->DefineTypeRefByName(corLibAssemblyRef, SystemObject, &objectTypeRef); + if (FAILED(hr)) + { + Warn("Wrapper objectTypeRef could not be defined."); + return hr; + } + } - signature[offset++] = IMAGE_CEE_CS_CALLCONV_DEFAULT; - signature[offset++] = 0x01; - signature[offset++] = ELEMENT_TYPE_CLASS; - memcpy(&signature[offset], &type_buffer, type_size); - offset += type_size; - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &runtimeTypeHandle_buffer, runtimeTypeHandle_size); - offset += runtimeTypeHandle_size; - - auto hr = module_metadata->metadata_emit->DefineMemberRef( - typeRef, GetTypeFromHandleMethodName, signature, offset, - &getTypeFromHandleToken); - if (FAILED(hr)) { - Warn("Wrapper getTypeFromHandleToken could not be defined."); - return hr; - } - } - - // *** Ensure System.RuntimeMethodHandle type ref - if (runtimeMethodHandleRef == mdTypeRefNil) { - auto hr = module_metadata->metadata_emit->DefineTypeRefByName( - corLibAssemblyRef, RuntimeMethodHandleTypeName, - &runtimeMethodHandleRef); - if (FAILED(hr)) { - Warn("Wrapper runtimeMethodHandleRef could not be defined."); - return hr; - } - } - - return S_OK; + // *** Ensure System.Exception type ref + if (exTypeRef == mdTypeRefNil) + { + auto hr = module_metadata->metadata_emit->DefineTypeRefByName(corLibAssemblyRef, SystemException, &exTypeRef); + if (FAILED(hr)) + { + Warn("Wrapper exTypeRef could not be defined."); + return hr; + } + } + + // *** Ensure System.Type type ref + if (typeRef == mdTypeRefNil) + { + auto hr = module_metadata->metadata_emit->DefineTypeRefByName(corLibAssemblyRef, SystemTypeName, &typeRef); + if (FAILED(hr)) + { + Warn("Wrapper typeRef could not be defined."); + return hr; + } + } + + // *** Ensure System.RuntimeTypeHandle type ref + if (runtimeTypeHandleRef == mdTypeRefNil) + { + auto hr = module_metadata->metadata_emit->DefineTypeRefByName(corLibAssemblyRef, RuntimeTypeHandleTypeName, + &runtimeTypeHandleRef); + if (FAILED(hr)) + { + Warn("Wrapper runtimeTypeHandleRef could not be defined."); + return hr; + } + } + + // *** Ensure Type.GetTypeFromHandle token + if (getTypeFromHandleToken == mdTokenNil) + { + unsigned runtimeTypeHandle_buffer; + auto runtimeTypeHandle_size = CorSigCompressToken(runtimeTypeHandleRef, &runtimeTypeHandle_buffer); + + unsigned type_buffer; + auto type_size = CorSigCompressToken(typeRef, &type_buffer); + + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; + + signature[offset++] = IMAGE_CEE_CS_CALLCONV_DEFAULT; + signature[offset++] = 0x01; + signature[offset++] = ELEMENT_TYPE_CLASS; + memcpy(&signature[offset], &type_buffer, type_size); + offset += type_size; + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + memcpy(&signature[offset], &runtimeTypeHandle_buffer, runtimeTypeHandle_size); + offset += runtimeTypeHandle_size; + + auto hr = module_metadata->metadata_emit->DefineMemberRef(typeRef, GetTypeFromHandleMethodName, signature, + offset, &getTypeFromHandleToken); + if (FAILED(hr)) + { + Warn("Wrapper getTypeFromHandleToken could not be defined."); + return hr; + } + } + + // *** Ensure System.RuntimeMethodHandle type ref + if (runtimeMethodHandleRef == mdTypeRefNil) + { + auto hr = module_metadata->metadata_emit->DefineTypeRefByName(corLibAssemblyRef, RuntimeMethodHandleTypeName, + &runtimeMethodHandleRef); + if (FAILED(hr)) + { + Warn("Wrapper runtimeMethodHandleRef could not be defined."); + return hr; + } + } + + return S_OK; } -HRESULT CallTargetTokens::EnsureBaseCalltargetTokens() { - auto hr = EnsureCorLibTokens(); - if (FAILED(hr)) { - return hr; - } - - ModuleMetadata* module_metadata = GetMetadata(); - - // *** Ensure profiler assembly ref - if (profilerAssemblyRef == mdAssemblyRefNil) { - const AssemblyReference assemblyReference = - managed_profiler_full_assembly_version; - ASSEMBLYMETADATA assembly_metadata{}; - - assembly_metadata.usMajorVersion = assemblyReference.version.major; - assembly_metadata.usMinorVersion = assemblyReference.version.minor; - assembly_metadata.usBuildNumber = assemblyReference.version.build; - assembly_metadata.usRevisionNumber = assemblyReference.version.revision; - if (assemblyReference.locale == WStr("neutral")) { - assembly_metadata.szLocale = const_cast(WStr("\0")); - assembly_metadata.cbLocale = 0; - } else { - assembly_metadata.szLocale = - const_cast(assemblyReference.locale.c_str()); - assembly_metadata.cbLocale = (DWORD)(assemblyReference.locale.size()); - } - - DWORD public_key_size = 8; - if (assemblyReference.public_key == trace::PublicKey()) { - public_key_size = 0; - } - - hr = module_metadata->assembly_emit->DefineAssemblyRef( - &assemblyReference.public_key.data, public_key_size, - assemblyReference.name.data(), &assembly_metadata, NULL, 0, 0, - &profilerAssemblyRef); - - if (FAILED(hr)) { - Warn("Wrapper profilerAssemblyRef could not be defined."); - return hr; - } - } - - // *** Ensure calltarget type ref - if (callTargetTypeRef == mdTypeRefNil) { - hr = module_metadata->metadata_emit->DefineTypeRefByName( - profilerAssemblyRef, managed_profiler_calltarget_type.data(), - &callTargetTypeRef); - if (FAILED(hr)) { - Warn("Wrapper callTargetTypeRef could not be defined."); - return hr; - } - } - - // *** Ensure calltargetstate type ref - if (callTargetStateTypeRef == mdTypeRefNil) { - hr = module_metadata->metadata_emit->DefineTypeRefByName( - profilerAssemblyRef, managed_profiler_calltarget_statetype.data(), - &callTargetStateTypeRef); - if (FAILED(hr)) { - Warn("Wrapper callTargetStateTypeRef could not be defined."); - return hr; - } - } - - // *** Ensure CallTargetState.GetDefault() member ref - if (callTargetStateTypeGetDefault == mdMemberRefNil) { - unsigned callTargetStateTypeBuffer; - auto callTargetStateTypeSize = - CorSigCompressToken(callTargetStateTypeRef, &callTargetStateTypeBuffer); - - const ULONG signatureLength = 3 + callTargetStateTypeSize; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; +HRESULT CallTargetTokens::EnsureBaseCalltargetTokens() +{ + auto hr = EnsureCorLibTokens(); + if (FAILED(hr)) + { + return hr; + } - signature[offset++] = IMAGE_CEE_CS_CALLCONV_DEFAULT; - signature[offset++] = 0x00; + ModuleMetadata* module_metadata = GetMetadata(); - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &callTargetStateTypeBuffer, - callTargetStateTypeSize); - offset += callTargetStateTypeSize; + // *** Ensure profiler assembly ref + if (profilerAssemblyRef == mdAssemblyRefNil) + { + const AssemblyReference assemblyReference = managed_profiler_full_assembly_version; + ASSEMBLYMETADATA assembly_metadata{}; + + assembly_metadata.usMajorVersion = assemblyReference.version.major; + assembly_metadata.usMinorVersion = assemblyReference.version.minor; + assembly_metadata.usBuildNumber = assemblyReference.version.build; + assembly_metadata.usRevisionNumber = assemblyReference.version.revision; + if (assemblyReference.locale == WStr("neutral")) + { + assembly_metadata.szLocale = const_cast(WStr("\0")); + assembly_metadata.cbLocale = 0; + } + else + { + assembly_metadata.szLocale = const_cast(assemblyReference.locale.c_str()); + assembly_metadata.cbLocale = (DWORD)(assemblyReference.locale.size()); + } + + DWORD public_key_size = 8; + if (assemblyReference.public_key == trace::PublicKey()) + { + public_key_size = 0; + } - auto hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetStateTypeRef, - managed_profiler_calltarget_statetype_getdefault_name.data(), signature, - signatureLength, &callTargetStateTypeGetDefault); - if (FAILED(hr)) { - Warn("Wrapper callTargetStateTypeGetDefault could not be defined."); - return hr; + hr = module_metadata->assembly_emit->DefineAssemblyRef(&assemblyReference.public_key.data, public_key_size, + assemblyReference.name.data(), &assembly_metadata, NULL, + 0, 0, &profilerAssemblyRef); + + if (FAILED(hr)) + { + Warn("Wrapper profilerAssemblyRef could not be defined."); + return hr; + } + } + + // *** Ensure calltarget type ref + if (callTargetTypeRef == mdTypeRefNil) + { + hr = module_metadata->metadata_emit->DefineTypeRefByName( + profilerAssemblyRef, managed_profiler_calltarget_type.data(), &callTargetTypeRef); + if (FAILED(hr)) + { + Warn("Wrapper callTargetTypeRef could not be defined."); + return hr; + } } - } - return S_OK; + // *** Ensure calltargetstate type ref + if (callTargetStateTypeRef == mdTypeRefNil) + { + hr = module_metadata->metadata_emit->DefineTypeRefByName( + profilerAssemblyRef, managed_profiler_calltarget_statetype.data(), &callTargetStateTypeRef); + if (FAILED(hr)) + { + Warn("Wrapper callTargetStateTypeRef could not be defined."); + return hr; + } + } + + // *** Ensure CallTargetState.GetDefault() member ref + if (callTargetStateTypeGetDefault == mdMemberRefNil) + { + unsigned callTargetStateTypeBuffer; + auto callTargetStateTypeSize = CorSigCompressToken(callTargetStateTypeRef, &callTargetStateTypeBuffer); + + const ULONG signatureLength = 3 + callTargetStateTypeSize; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; + + signature[offset++] = IMAGE_CEE_CS_CALLCONV_DEFAULT; + signature[offset++] = 0x00; + + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + memcpy(&signature[offset], &callTargetStateTypeBuffer, callTargetStateTypeSize); + offset += callTargetStateTypeSize; + + auto hr = module_metadata->metadata_emit->DefineMemberRef( + callTargetStateTypeRef, managed_profiler_calltarget_statetype_getdefault_name.data(), signature, + signatureLength, &callTargetStateTypeGetDefault); + if (FAILED(hr)) + { + Warn("Wrapper callTargetStateTypeGetDefault could not be defined."); + return hr; + } + } + + return S_OK; } -mdTypeRef CallTargetTokens::GetTargetStateTypeRef() { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return mdTypeRefNil; - } - return callTargetStateTypeRef; +mdTypeRef CallTargetTokens::GetTargetStateTypeRef() +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return mdTypeRefNil; + } + return callTargetStateTypeRef; } -mdTypeRef CallTargetTokens::GetTargetVoidReturnTypeRef() { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return mdTypeRefNil; - } +mdTypeRef CallTargetTokens::GetTargetVoidReturnTypeRef() +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return mdTypeRefNil; + } - ModuleMetadata* module_metadata = GetMetadata(); + ModuleMetadata* module_metadata = GetMetadata(); - // *** Ensure calltargetreturn void type ref - if (callTargetReturnVoidTypeRef == mdTypeRefNil) { - hr = module_metadata->metadata_emit->DefineTypeRefByName( - profilerAssemblyRef, managed_profiler_calltarget_returntype.data(), - &callTargetReturnVoidTypeRef); - if (FAILED(hr)) { - Warn("Wrapper callTargetReturnVoidTypeRef could not be defined."); - return mdTypeRefNil; + // *** Ensure calltargetreturn void type ref + if (callTargetReturnVoidTypeRef == mdTypeRefNil) + { + hr = module_metadata->metadata_emit->DefineTypeRefByName( + profilerAssemblyRef, managed_profiler_calltarget_returntype.data(), &callTargetReturnVoidTypeRef); + if (FAILED(hr)) + { + Warn("Wrapper callTargetReturnVoidTypeRef could not be defined."); + return mdTypeRefNil; + } } - } - return callTargetReturnVoidTypeRef; + return callTargetReturnVoidTypeRef; } -mdTypeSpec CallTargetTokens::GetTargetReturnValueTypeRef( - FunctionMethodArgument* returnArgument) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return mdTypeSpecNil; - } - - ModuleMetadata* module_metadata = GetMetadata(); - mdTypeSpec returnValueTypeSpec = mdTypeSpecNil; - - // *** Ensure calltargetreturn type ref - if (callTargetReturnTypeRef == mdTypeRefNil) { - hr = module_metadata->metadata_emit->DefineTypeRefByName( - profilerAssemblyRef, - managed_profiler_calltarget_returntype_generics.data(), - &callTargetReturnTypeRef); - if (FAILED(hr)) { - Warn("Wrapper callTargetReturnTypeRef could not be defined."); - return mdTypeSpecNil; - } - } - - PCCOR_SIGNATURE returnSignatureBuffer; - auto returnSignatureLength = - returnArgument->GetSignature(returnSignatureBuffer); - - // Get The base calltargetReturnTypeRef Buffer and Size - unsigned callTargetReturnTypeRefBuffer; - auto callTargetReturnTypeRefSize = CorSigCompressToken( - callTargetReturnTypeRef, &callTargetReturnTypeRefBuffer); - - auto signatureLength = 3 + callTargetReturnTypeRefSize + returnSignatureLength; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; - - signature[offset++] = ELEMENT_TYPE_GENERICINST; - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &callTargetReturnTypeRefBuffer, - callTargetReturnTypeRefSize); - offset += callTargetReturnTypeRefSize; - signature[offset++] = 0x01; - memcpy(&signature[offset], returnSignatureBuffer, returnSignatureLength); - offset += returnSignatureLength; - - hr = module_metadata->metadata_emit->GetTokenFromTypeSpec(signature, signatureLength, &returnValueTypeSpec); - if (FAILED(hr)) { - Warn("Error creating return value type spec"); - return mdTypeSpecNil; - } - - return returnValueTypeSpec; +mdTypeSpec CallTargetTokens::GetTargetReturnValueTypeRef(FunctionMethodArgument* returnArgument) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return mdTypeSpecNil; + } + + ModuleMetadata* module_metadata = GetMetadata(); + mdTypeSpec returnValueTypeSpec = mdTypeSpecNil; + + // *** Ensure calltargetreturn type ref + if (callTargetReturnTypeRef == mdTypeRefNil) + { + hr = module_metadata->metadata_emit->DefineTypeRefByName( + profilerAssemblyRef, managed_profiler_calltarget_returntype_generics.data(), &callTargetReturnTypeRef); + if (FAILED(hr)) + { + Warn("Wrapper callTargetReturnTypeRef could not be defined."); + return mdTypeSpecNil; + } + } + + PCCOR_SIGNATURE returnSignatureBuffer; + auto returnSignatureLength = returnArgument->GetSignature(returnSignatureBuffer); + + // Get The base calltargetReturnTypeRef Buffer and Size + unsigned callTargetReturnTypeRefBuffer; + auto callTargetReturnTypeRefSize = CorSigCompressToken(callTargetReturnTypeRef, &callTargetReturnTypeRefBuffer); + + auto signatureLength = 3 + callTargetReturnTypeRefSize + returnSignatureLength; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; + + signature[offset++] = ELEMENT_TYPE_GENERICINST; + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + memcpy(&signature[offset], &callTargetReturnTypeRefBuffer, callTargetReturnTypeRefSize); + offset += callTargetReturnTypeRefSize; + signature[offset++] = 0x01; + memcpy(&signature[offset], returnSignatureBuffer, returnSignatureLength); + offset += returnSignatureLength; + + hr = module_metadata->metadata_emit->GetTokenFromTypeSpec(signature, signatureLength, &returnValueTypeSpec); + if (FAILED(hr)) + { + Warn("Error creating return value type spec"); + return mdTypeSpecNil; + } + + return returnValueTypeSpec; +} + +mdMemberRef CallTargetTokens::GetCallTargetStateDefaultMemberRef() +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return mdMemberRefNil; + } + return callTargetStateTypeGetDefault; } -mdMemberRef CallTargetTokens::GetCallTargetStateDefaultMemberRef() { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return mdMemberRefNil; - } - return callTargetStateTypeGetDefault; +mdMemberRef CallTargetTokens::GetCallTargetReturnVoidDefaultMemberRef() +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return mdMemberRefNil; + } + + // *** Ensure CallTargetReturn.GetDefault() member ref + if (callTargetReturnVoidTypeGetDefault == mdMemberRefNil) + { + ModuleMetadata* module_metadata = GetMetadata(); + + unsigned callTargetReturnVoidTypeBuffer; + auto callTargetReturnVoidTypeSize = + CorSigCompressToken(callTargetReturnVoidTypeRef, &callTargetReturnVoidTypeBuffer); + + auto signatureLength = 3 + callTargetReturnVoidTypeSize; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; + + signature[offset++] = IMAGE_CEE_CS_CALLCONV_DEFAULT; + signature[offset++] = 0x00; + + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + memcpy(&signature[offset], &callTargetReturnVoidTypeBuffer, callTargetReturnVoidTypeSize); + offset += callTargetReturnVoidTypeSize; + + hr = module_metadata->metadata_emit->DefineMemberRef( + callTargetReturnVoidTypeRef, managed_profiler_calltarget_returntype_getdefault_name.data(), signature, + signatureLength, &callTargetReturnVoidTypeGetDefault); + if (FAILED(hr)) + { + Warn("Wrapper callTargetReturnVoidTypeGetDefault could not be defined."); + return mdMemberRefNil; + } + } + + return callTargetReturnVoidTypeGetDefault; } -mdMemberRef CallTargetTokens::GetCallTargetReturnVoidDefaultMemberRef() { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return mdMemberRefNil; - } +mdMemberRef CallTargetTokens::GetCallTargetReturnValueDefaultMemberRef(mdTypeSpec callTargetReturnTypeSpec) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return mdMemberRefNil; + } + if (callTargetReturnTypeRef == mdTypeRefNil) + { + Warn("Wrapper callTargetReturnTypeGetDefault could not be defined because callTargetReturnTypeRef is null."); + return mdMemberRefNil; + } - // *** Ensure CallTargetReturn.GetDefault() member ref - if (callTargetReturnVoidTypeGetDefault == mdMemberRefNil) { + mdMemberRef callTargetReturnTypeGetDefault = mdMemberRefNil; + + // *** Ensure CallTargetReturn.GetDefault() member ref ModuleMetadata* module_metadata = GetMetadata(); - unsigned callTargetReturnVoidTypeBuffer; - auto callTargetReturnVoidTypeSize = CorSigCompressToken( - callTargetReturnVoidTypeRef, &callTargetReturnVoidTypeBuffer); + unsigned callTargetReturnTypeRefBuffer; + auto callTargetReturnTypeRefSize = CorSigCompressToken(callTargetReturnTypeRef, &callTargetReturnTypeRefBuffer); - auto signatureLength = 3 + callTargetReturnVoidTypeSize; + auto signatureLength = 7 + callTargetReturnTypeRefSize; COR_SIGNATURE signature[signatureBufferSize]; unsigned offset = 0; signature[offset++] = IMAGE_CEE_CS_CALLCONV_DEFAULT; signature[offset++] = 0x00; - + signature[offset++] = ELEMENT_TYPE_GENERICINST; signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &callTargetReturnVoidTypeBuffer, - callTargetReturnVoidTypeSize); - offset += callTargetReturnVoidTypeSize; + memcpy(&signature[offset], &callTargetReturnTypeRefBuffer, callTargetReturnTypeRefSize); + offset += callTargetReturnTypeRefSize; + signature[offset++] = 0x01; + signature[offset++] = ELEMENT_TYPE_VAR; + signature[offset++] = 0x00; - hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetReturnVoidTypeRef, - managed_profiler_calltarget_returntype_getdefault_name.data(), - signature, signatureLength, &callTargetReturnVoidTypeGetDefault); - if (FAILED(hr)) { - Warn("Wrapper callTargetReturnVoidTypeGetDefault could not be defined."); - return mdMemberRefNil; + hr = module_metadata->metadata_emit->DefineMemberRef(callTargetReturnTypeSpec, + managed_profiler_calltarget_returntype_getdefault_name.data(), + signature, signatureLength, &callTargetReturnTypeGetDefault); + if (FAILED(hr)) + { + Warn("Wrapper callTargetReturnTypeGetDefault could not be defined."); + return mdMemberRefNil; } - } - return callTargetReturnVoidTypeGetDefault; + return callTargetReturnTypeGetDefault; } -mdMemberRef CallTargetTokens::GetCallTargetReturnValueDefaultMemberRef( - mdTypeSpec callTargetReturnTypeSpec) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return mdMemberRefNil; - } - if (callTargetReturnTypeRef == mdTypeRefNil) { - Warn("Wrapper callTargetReturnTypeGetDefault could not be defined because callTargetReturnTypeRef is null."); - return mdMemberRefNil; - } - - mdMemberRef callTargetReturnTypeGetDefault = mdMemberRefNil; - - // *** Ensure CallTargetReturn.GetDefault() member ref - ModuleMetadata* module_metadata = GetMetadata(); - - unsigned callTargetReturnTypeRefBuffer; - auto callTargetReturnTypeRefSize = CorSigCompressToken( - callTargetReturnTypeRef, &callTargetReturnTypeRefBuffer); - - auto signatureLength = 7 + callTargetReturnTypeRefSize; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; - - signature[offset++] = IMAGE_CEE_CS_CALLCONV_DEFAULT; - signature[offset++] = 0x00; - signature[offset++] = ELEMENT_TYPE_GENERICINST; - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &callTargetReturnTypeRefBuffer, - callTargetReturnTypeRefSize); - offset += callTargetReturnTypeRefSize; - signature[offset++] = 0x01; - signature[offset++] = ELEMENT_TYPE_VAR; - signature[offset++] = 0x00; - - hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetReturnTypeSpec, - managed_profiler_calltarget_returntype_getdefault_name.data(), signature, - signatureLength, &callTargetReturnTypeGetDefault); - if (FAILED(hr)) { - Warn("Wrapper callTargetReturnTypeGetDefault could not be defined."); - return mdMemberRefNil; - } - - return callTargetReturnTypeGetDefault; -} +mdMethodSpec CallTargetTokens::GetCallTargetDefaultValueMethodSpec(FunctionMethodArgument* methodArgument) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return mdMethodSpecNil; + } -mdMethodSpec CallTargetTokens::GetCallTargetDefaultValueMethodSpec( - FunctionMethodArgument* methodArgument) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return mdMethodSpecNil; - } + mdMethodSpec getDefaultMethodSpec = mdMethodSpecNil; + ModuleMetadata* module_metadata = GetMetadata(); + + // *** Ensure we have the CallTargetInvoker.GetDefaultValue<> memberRef + if (getDefaultMemberRef == mdMemberRefNil) + { + auto signatureLength = 5; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; + + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; + signature[offset++] = 0x01; + signature[offset++] = 0x00; + + signature[offset++] = ELEMENT_TYPE_MVAR; + signature[offset++] = 0x00; + + auto hr = module_metadata->metadata_emit->DefineMemberRef( + callTargetTypeRef, managed_profiler_calltarget_getdefaultvalue_name.data(), signature, signatureLength, + &getDefaultMemberRef); + if (FAILED(hr)) + { + Warn("Wrapper getDefaultMemberRef could not be defined."); + return hr; + } + } + + // *** Create de MethodSpec using the FunctionMethodArgument - mdMethodSpec getDefaultMethodSpec = mdMethodSpecNil; - ModuleMetadata* module_metadata = GetMetadata(); + // Gets the Return type signature + PCCOR_SIGNATURE methodArgumentSignature = nullptr; + ULONG methodArgumentSignatureSize; + methodArgumentSignatureSize = methodArgument->GetSignature(methodArgumentSignature); - // *** Ensure we have the CallTargetInvoker.GetDefaultValue<> memberRef - if (getDefaultMemberRef == mdMemberRefNil) { - auto signatureLength = 5; + auto signatureLength = 2 + methodArgumentSignatureSize; COR_SIGNATURE signature[signatureBufferSize]; unsigned offset = 0; - - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; signature[offset++] = 0x01; - signature[offset++] = 0x00; - signature[offset++] = ELEMENT_TYPE_MVAR; - signature[offset++] = 0x00; + memcpy(&signature[offset], methodArgumentSignature, methodArgumentSignatureSize); + offset += methodArgumentSignatureSize; + + hr = module_metadata->metadata_emit->DefineMethodSpec(getDefaultMemberRef, signature, signatureLength, + &getDefaultMethodSpec); + if (FAILED(hr)) + { + Warn("Error creating getDefaultMethodSpec."); + return mdMethodSpecNil; + } - auto hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetTypeRef, - managed_profiler_calltarget_getdefaultvalue_name.data(), signature, - signatureLength, &getDefaultMemberRef); - if (FAILED(hr)) { - Warn("Wrapper getDefaultMemberRef could not be defined."); - return hr; - } - } - - // *** Create de MethodSpec using the FunctionMethodArgument - - // Gets the Return type signature - PCCOR_SIGNATURE methodArgumentSignature = nullptr; - ULONG methodArgumentSignatureSize; - methodArgumentSignatureSize = - methodArgument->GetSignature(methodArgumentSignature); - - auto signatureLength = 2 + methodArgumentSignatureSize; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; - signature[offset++] = 0x01; - - memcpy(&signature[offset], methodArgumentSignature, - methodArgumentSignatureSize); - offset += methodArgumentSignatureSize; - - hr = module_metadata->metadata_emit->DefineMethodSpec( - getDefaultMemberRef, signature, signatureLength, &getDefaultMethodSpec); - if (FAILED(hr)) { - Warn("Error creating getDefaultMethodSpec."); - return mdMethodSpecNil; - } - - return getDefaultMethodSpec; + return getDefaultMethodSpec; } -mdToken CallTargetTokens::GetCurrentTypeRef(const TypeInfo* currentType, bool& isValueType) { - if (currentType->type_spec != mdTypeSpecNil) { - return currentType->type_spec; - } else { +mdToken CallTargetTokens::GetCurrentTypeRef(const TypeInfo* currentType, bool& isValueType) +{ + if (currentType->type_spec != mdTypeSpecNil) + { + return currentType->type_spec; + } + else + { - TypeInfo* cType = const_cast(currentType); - while (!cType->isGeneric) { + TypeInfo* cType = const_cast(currentType); + while (!cType->isGeneric) + { - if (cType->parent_type == nullptr) { - return cType->id; - } + if (cType->parent_type == nullptr) + { + return cType->id; + } - cType = const_cast(cType->parent_type); - } + cType = const_cast(cType->parent_type); + } - isValueType = false; - return objectTypeRef; - } + isValueType = false; + return objectTypeRef; + } } -HRESULT CallTargetTokens::ModifyLocalSig( - ILRewriter* reWriter, FunctionMethodArgument* methodReturnValue, - ULONG* callTargetStateIndex, ULONG* exceptionIndex, - ULONG* callTargetReturnIndex, ULONG* returnValueIndex, - mdToken* callTargetStateToken, mdToken* exceptionToken, - mdToken* callTargetReturnToken) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return hr; - } - - ModuleMetadata* module_metadata = GetMetadata(); - - PCCOR_SIGNATURE originalSignature = nullptr; - ULONG originalSignatureSize = 0; - mdToken localVarSig = reWriter->GetTkLocalVarSig(); - - if (localVarSig != mdTokenNil) { - IfFailRet(module_metadata->metadata_import->GetSigFromToken( - localVarSig, &originalSignature, &originalSignatureSize)); - - // Check if the localvarsig has been already rewritten (the last local - // should be the callTargetState) - unsigned temp = 0; - const auto len = CorSigCompressToken(callTargetStateTypeRef, &temp); - if (originalSignatureSize - len > 0) { - if (originalSignature[originalSignatureSize - len - 1] == - ELEMENT_TYPE_VALUETYPE) { - if (memcmp(&originalSignature[originalSignatureSize - len], &temp, - len) == 0) { - Warn("The signature for this method has been already modified."); - return E_FAIL; +HRESULT CallTargetTokens::ModifyLocalSig(ILRewriter* reWriter, FunctionMethodArgument* methodReturnValue, + ULONG* callTargetStateIndex, ULONG* exceptionIndex, + ULONG* callTargetReturnIndex, ULONG* returnValueIndex, + mdToken* callTargetStateToken, mdToken* exceptionToken, + mdToken* callTargetReturnToken) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return hr; + } + + ModuleMetadata* module_metadata = GetMetadata(); + + PCCOR_SIGNATURE originalSignature = nullptr; + ULONG originalSignatureSize = 0; + mdToken localVarSig = reWriter->GetTkLocalVarSig(); + + if (localVarSig != mdTokenNil) + { + IfFailRet( + module_metadata->metadata_import->GetSigFromToken(localVarSig, &originalSignature, &originalSignatureSize)); + + // Check if the localvarsig has been already rewritten (the last local + // should be the callTargetState) + unsigned temp = 0; + const auto len = CorSigCompressToken(callTargetStateTypeRef, &temp); + if (originalSignatureSize - len > 0) + { + if (originalSignature[originalSignatureSize - len - 1] == ELEMENT_TYPE_VALUETYPE) + { + if (memcmp(&originalSignature[originalSignatureSize - len], &temp, len) == 0) + { + Warn("The signature for this method has been already modified."); + return E_FAIL; + } + } } - } - } - } - - ULONG newLocalsCount = 3; - - // Gets the calltarget state type buffer and size - unsigned callTargetStateTypeRefBuffer; - auto callTargetStateTypeRefSize = CorSigCompressToken( - callTargetStateTypeRef, &callTargetStateTypeRefBuffer); - - // Gets the exception type buffer and size - unsigned exTypeRefBuffer; - auto exTypeRefSize = CorSigCompressToken(exTypeRef, &exTypeRefBuffer); - - // Gets the Return type signature - PCCOR_SIGNATURE returnSignatureType = nullptr; - ULONG returnSignatureTypeSize = 0; - - // Gets the CallTargetReturn mdTypeSpec - mdToken callTargetReturn = mdTokenNil; - PCCOR_SIGNATURE callTargetReturnSignature = nullptr; - ULONG callTargetReturnSignatureSize; - unsigned callTargetReturnBuffer; - ULONG callTargetReturnSize; - ULONG callTargetReturnSizeForNewSignature = 0; - unsigned retTypeElementType; - auto retTypeFlags = methodReturnValue->GetTypeFlags(retTypeElementType); - - if (retTypeFlags != TypeFlagVoid) { - returnSignatureTypeSize = - methodReturnValue->GetSignature(returnSignatureType); - callTargetReturn = GetTargetReturnValueTypeRef(methodReturnValue); - - hr = module_metadata->metadata_import->GetTypeSpecFromToken( - callTargetReturn, &callTargetReturnSignature, - &callTargetReturnSignatureSize); - if (FAILED(hr)) { - return E_FAIL; - } - - callTargetReturnSizeForNewSignature = callTargetReturnSignatureSize; - - newLocalsCount++; - } else { - callTargetReturn = GetTargetVoidReturnTypeRef(); - callTargetReturnSize = - CorSigCompressToken(callTargetReturn, &callTargetReturnBuffer); - callTargetReturnSizeForNewSignature = 1 + callTargetReturnSize; - } - - // New signature size - ULONG newSignatureSize = - originalSignatureSize + returnSignatureTypeSize + (1 + exTypeRefSize) + - callTargetReturnSizeForNewSignature + (1 + callTargetStateTypeRefSize); - ULONG newSignatureOffset = 0; - - - ULONG oldLocalsBuffer; - ULONG oldLocalsLen = 0; - unsigned newLocalsBuffer; - ULONG newLocalsLen; - - // Calculate the new locals count - if (originalSignatureSize == 0) { - newSignatureSize += 2; - newLocalsLen = CorSigCompressData(newLocalsCount, &newLocalsBuffer); - } else { - oldLocalsLen = - CorSigUncompressData(originalSignature + 1, &oldLocalsBuffer); - newLocalsCount += oldLocalsBuffer; - newLocalsLen = CorSigCompressData(newLocalsCount, &newLocalsBuffer); - newSignatureSize += newLocalsLen - oldLocalsLen; - } - - // New signature declaration - COR_SIGNATURE newSignatureBuffer[signatureBufferSize]; - newSignatureBuffer[newSignatureOffset++] = IMAGE_CEE_CS_CALLCONV_LOCAL_SIG; - - // Set the locals count - memcpy(&newSignatureBuffer[newSignatureOffset], &newLocalsBuffer, - newLocalsLen); - newSignatureOffset += newLocalsLen; - - // Copy previous locals to the signature - if (originalSignatureSize > 0) { - const auto copyLength = originalSignatureSize - 1 - oldLocalsLen; - memcpy(&newSignatureBuffer[newSignatureOffset], - originalSignature + 1 + oldLocalsLen, copyLength); - newSignatureOffset += copyLength; - } - - // Add new locals - - // Return value local - if (returnSignatureType != nullptr) { - memcpy(&newSignatureBuffer[newSignatureOffset], returnSignatureType, - returnSignatureTypeSize); - newSignatureOffset += returnSignatureTypeSize; - } - - // Exception value - newSignatureBuffer[newSignatureOffset++] = ELEMENT_TYPE_CLASS; - memcpy(&newSignatureBuffer[newSignatureOffset], &exTypeRefBuffer, - exTypeRefSize); - newSignatureOffset += exTypeRefSize; - - // CallTarget Return value - if (callTargetReturnSignature != nullptr) { - memcpy(&newSignatureBuffer[newSignatureOffset], callTargetReturnSignature, - callTargetReturnSignatureSize); - newSignatureOffset += callTargetReturnSignatureSize; - } else { + } + + ULONG newLocalsCount = 3; + + // Gets the calltarget state type buffer and size + unsigned callTargetStateTypeRefBuffer; + auto callTargetStateTypeRefSize = CorSigCompressToken(callTargetStateTypeRef, &callTargetStateTypeRefBuffer); + + // Gets the exception type buffer and size + unsigned exTypeRefBuffer; + auto exTypeRefSize = CorSigCompressToken(exTypeRef, &exTypeRefBuffer); + + // Gets the Return type signature + PCCOR_SIGNATURE returnSignatureType = nullptr; + ULONG returnSignatureTypeSize = 0; + + // Gets the CallTargetReturn mdTypeSpec + mdToken callTargetReturn = mdTokenNil; + PCCOR_SIGNATURE callTargetReturnSignature = nullptr; + ULONG callTargetReturnSignatureSize; + unsigned callTargetReturnBuffer; + ULONG callTargetReturnSize; + ULONG callTargetReturnSizeForNewSignature = 0; + unsigned retTypeElementType; + auto retTypeFlags = methodReturnValue->GetTypeFlags(retTypeElementType); + + if (retTypeFlags != TypeFlagVoid) + { + returnSignatureTypeSize = methodReturnValue->GetSignature(returnSignatureType); + callTargetReturn = GetTargetReturnValueTypeRef(methodReturnValue); + + hr = module_metadata->metadata_import->GetTypeSpecFromToken(callTargetReturn, &callTargetReturnSignature, + &callTargetReturnSignatureSize); + if (FAILED(hr)) + { + return E_FAIL; + } + + callTargetReturnSizeForNewSignature = callTargetReturnSignatureSize; + + newLocalsCount++; + } + else + { + callTargetReturn = GetTargetVoidReturnTypeRef(); + callTargetReturnSize = CorSigCompressToken(callTargetReturn, &callTargetReturnBuffer); + callTargetReturnSizeForNewSignature = 1 + callTargetReturnSize; + } + + // New signature size + ULONG newSignatureSize = originalSignatureSize + returnSignatureTypeSize + (1 + exTypeRefSize) + + callTargetReturnSizeForNewSignature + (1 + callTargetStateTypeRefSize); + ULONG newSignatureOffset = 0; + + ULONG oldLocalsBuffer; + ULONG oldLocalsLen = 0; + unsigned newLocalsBuffer; + ULONG newLocalsLen; + + // Calculate the new locals count + if (originalSignatureSize == 0) + { + newSignatureSize += 2; + newLocalsLen = CorSigCompressData(newLocalsCount, &newLocalsBuffer); + } + else + { + oldLocalsLen = CorSigUncompressData(originalSignature + 1, &oldLocalsBuffer); + newLocalsCount += oldLocalsBuffer; + newLocalsLen = CorSigCompressData(newLocalsCount, &newLocalsBuffer); + newSignatureSize += newLocalsLen - oldLocalsLen; + } + + // New signature declaration + COR_SIGNATURE newSignatureBuffer[signatureBufferSize]; + newSignatureBuffer[newSignatureOffset++] = IMAGE_CEE_CS_CALLCONV_LOCAL_SIG; + + // Set the locals count + memcpy(&newSignatureBuffer[newSignatureOffset], &newLocalsBuffer, newLocalsLen); + newSignatureOffset += newLocalsLen; + + // Copy previous locals to the signature + if (originalSignatureSize > 0) + { + const auto copyLength = originalSignatureSize - 1 - oldLocalsLen; + memcpy(&newSignatureBuffer[newSignatureOffset], originalSignature + 1 + oldLocalsLen, copyLength); + newSignatureOffset += copyLength; + } + + // Add new locals + + // Return value local + if (returnSignatureType != nullptr) + { + memcpy(&newSignatureBuffer[newSignatureOffset], returnSignatureType, returnSignatureTypeSize); + newSignatureOffset += returnSignatureTypeSize; + } + + // Exception value + newSignatureBuffer[newSignatureOffset++] = ELEMENT_TYPE_CLASS; + memcpy(&newSignatureBuffer[newSignatureOffset], &exTypeRefBuffer, exTypeRefSize); + newSignatureOffset += exTypeRefSize; + + // CallTarget Return value + if (callTargetReturnSignature != nullptr) + { + memcpy(&newSignatureBuffer[newSignatureOffset], callTargetReturnSignature, callTargetReturnSignatureSize); + newSignatureOffset += callTargetReturnSignatureSize; + } + else + { + newSignatureBuffer[newSignatureOffset++] = ELEMENT_TYPE_VALUETYPE; + memcpy(&newSignatureBuffer[newSignatureOffset], &callTargetReturnBuffer, callTargetReturnSize); + newSignatureOffset += callTargetReturnSize; + } + + // CallTarget state value newSignatureBuffer[newSignatureOffset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&newSignatureBuffer[newSignatureOffset], &callTargetReturnBuffer, - callTargetReturnSize); - newSignatureOffset += callTargetReturnSize; - } - - // CallTarget state value - newSignatureBuffer[newSignatureOffset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&newSignatureBuffer[newSignatureOffset], &callTargetStateTypeRefBuffer, - callTargetStateTypeRefSize); - newSignatureOffset += callTargetStateTypeRefSize; - - // Get new locals token - mdToken newLocalVarSig; - hr = module_metadata->metadata_emit->GetTokenFromSig( - newSignatureBuffer, newSignatureSize, &newLocalVarSig); - if (FAILED(hr)) { - Warn("Error creating new locals var signature."); + memcpy(&newSignatureBuffer[newSignatureOffset], &callTargetStateTypeRefBuffer, callTargetStateTypeRefSize); + newSignatureOffset += callTargetStateTypeRefSize; + + // Get new locals token + mdToken newLocalVarSig; + hr = module_metadata->metadata_emit->GetTokenFromSig(newSignatureBuffer, newSignatureSize, &newLocalVarSig); + if (FAILED(hr)) + { + Warn("Error creating new locals var signature."); + return hr; + } + + reWriter->SetTkLocalVarSig(newLocalVarSig); + *callTargetStateToken = callTargetStateTypeRef; + *exceptionToken = exTypeRef; + *callTargetReturnToken = callTargetReturn; + if (returnSignatureType != nullptr) + { + *returnValueIndex = newLocalsCount - 4; + } + else + { + *returnValueIndex = static_cast(ULONG_MAX); + } + *exceptionIndex = newLocalsCount - 3; + *callTargetReturnIndex = newLocalsCount - 2; + *callTargetStateIndex = newLocalsCount - 1; return hr; - } - - reWriter->SetTkLocalVarSig(newLocalVarSig); - *callTargetStateToken = callTargetStateTypeRef; - *exceptionToken = exTypeRef; - *callTargetReturnToken = callTargetReturn; - if (returnSignatureType != nullptr) { - *returnValueIndex = newLocalsCount - 4; - } else { - *returnValueIndex = static_cast(ULONG_MAX); - } - *exceptionIndex = newLocalsCount - 3; - *callTargetReturnIndex = newLocalsCount - 2; - *callTargetStateIndex = newLocalsCount - 1; - return hr; } // slowpath BeginMethod -HRESULT CallTargetTokens::WriteBeginMethodWithArgumentsArray( - void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, - const TypeInfo* currentType, ILInstr** instruction) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return hr; - } - ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*)rewriterWrapperPtr; - ModuleMetadata* module_metadata = GetMetadata(); +HRESULT CallTargetTokens::WriteBeginMethodWithArgumentsArray(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, + const TypeInfo* currentType, ILInstr** instruction) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return hr; + } + ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*) rewriterWrapperPtr; + ModuleMetadata* module_metadata = GetMetadata(); - if (beginArrayMemberRef == mdMemberRefNil) { - unsigned callTargetStateBuffer; - auto callTargetStateSize = - CorSigCompressToken(callTargetStateTypeRef, &callTargetStateBuffer); + if (beginArrayMemberRef == mdMemberRefNil) + { + unsigned callTargetStateBuffer; + auto callTargetStateSize = CorSigCompressToken(callTargetStateTypeRef, &callTargetStateBuffer); - auto signatureLength = 8 + callTargetStateSize; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; + auto signatureLength = 8 + callTargetStateSize; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; - signature[offset++] = 0x02; - signature[offset++] = 0x02; + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; + signature[offset++] = 0x02; + signature[offset++] = 0x02; - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &callTargetStateBuffer, callTargetStateSize); - offset += callTargetStateSize; + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + memcpy(&signature[offset], &callTargetStateBuffer, callTargetStateSize); + offset += callTargetStateSize; - signature[offset++] = ELEMENT_TYPE_MVAR; - signature[offset++] = 0x01; + signature[offset++] = ELEMENT_TYPE_MVAR; + signature[offset++] = 0x01; - signature[offset++] = ELEMENT_TYPE_SZARRAY; - signature[offset++] = ELEMENT_TYPE_OBJECT; + signature[offset++] = ELEMENT_TYPE_SZARRAY; + signature[offset++] = ELEMENT_TYPE_OBJECT; - auto hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetTypeRef, managed_profiler_calltarget_beginmethod_name.data(), - signature, signatureLength, &beginArrayMemberRef); - if (FAILED(hr)) { - Warn("Wrapper beginArrayMemberRef could not be defined."); - return hr; + auto hr = module_metadata->metadata_emit->DefineMemberRef(callTargetTypeRef, + managed_profiler_calltarget_beginmethod_name.data(), + signature, signatureLength, &beginArrayMemberRef); + if (FAILED(hr)) + { + Warn("Wrapper beginArrayMemberRef could not be defined."); + return hr; + } } - } - mdMethodSpec beginArrayMethodSpec = mdMethodSpecNil; + mdMethodSpec beginArrayMethodSpec = mdMethodSpecNil; - unsigned integrationTypeBuffer; - ULONG integrationTypeSize = - CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); + unsigned integrationTypeBuffer; + ULONG integrationTypeSize = CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); - bool isValueType = currentType->valueType; - mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); + bool isValueType = currentType->valueType; + mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); - unsigned currentTypeBuffer; - ULONG currentTypeSize = - CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); + unsigned currentTypeBuffer; + ULONG currentTypeSize = CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); - auto signatureLength = 4 + integrationTypeSize + currentTypeSize; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; - signature[offset++] = 0x02; - - signature[offset++] = ELEMENT_TYPE_CLASS; - memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); - offset += integrationTypeSize; + auto signatureLength = 4 + integrationTypeSize + currentTypeSize; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; + signature[offset++] = 0x02; - if (isValueType) { - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - } else { signature[offset++] = ELEMENT_TYPE_CLASS; - } - memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); - offset += currentTypeSize; - - hr = module_metadata->metadata_emit->DefineMethodSpec( - beginArrayMemberRef, signature, signatureLength, &beginArrayMethodSpec); - if (FAILED(hr)) { - Warn("Error creating begin method spec."); - return hr; - } + memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); + offset += integrationTypeSize; - *instruction = rewriterWrapper->CallMember(beginArrayMethodSpec, false); - return S_OK; + if (isValueType) + { + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + } + else + { + signature[offset++] = ELEMENT_TYPE_CLASS; + } + memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); + offset += currentTypeSize; + + hr = module_metadata->metadata_emit->DefineMethodSpec(beginArrayMemberRef, signature, signatureLength, + &beginArrayMethodSpec); + if (FAILED(hr)) + { + Warn("Error creating begin method spec."); + return hr; + } + + *instruction = rewriterWrapper->CallMember(beginArrayMethodSpec, false); + return S_OK; } /** * PUBLIC **/ -mdTypeRef CallTargetTokens::GetObjectTypeRef() { return objectTypeRef; } -mdTypeRef CallTargetTokens::GetExceptionTypeRef() { return exTypeRef; } -mdAssemblyRef CallTargetTokens::GetCorLibAssemblyRef() { return corLibAssemblyRef; } - -HRESULT CallTargetTokens::ModifyLocalSigAndInitialize( - void* rewriterWrapperPtr, FunctionInfo* functionInfo, - ULONG* callTargetStateIndex, ULONG* exceptionIndex, - ULONG* callTargetReturnIndex, ULONG* returnValueIndex, - mdToken* callTargetStateToken, mdToken* exceptionToken, - mdToken* callTargetReturnToken, ILInstr** firstInstruction) { - ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*)rewriterWrapperPtr; - - // Modify the Local Var Signature of the method - auto returnFunctionMethod = functionInfo->method_signature.GetRet(); - - auto hr = ModifyLocalSig(rewriterWrapper->GetILRewriter(), - &returnFunctionMethod, callTargetStateIndex, - exceptionIndex, callTargetReturnIndex, - returnValueIndex, callTargetStateToken, - exceptionToken, callTargetReturnToken); - - if (FAILED(hr)) { - Warn("ModifyLocalSig() failed."); - return hr; - } - - // Init locals - if (*returnValueIndex != static_cast(ULONG_MAX)) { - *firstInstruction = rewriterWrapper->CallMember( - GetCallTargetDefaultValueMethodSpec(&returnFunctionMethod), false); - rewriterWrapper->StLocal(*returnValueIndex); - - rewriterWrapper->CallMember( - GetCallTargetReturnValueDefaultMemberRef(*callTargetReturnToken), - false); - rewriterWrapper->StLocal(*callTargetReturnIndex); - } else { - *firstInstruction = rewriterWrapper->CallMember( - GetCallTargetReturnVoidDefaultMemberRef(), false); - rewriterWrapper->StLocal(*callTargetReturnIndex); - } - rewriterWrapper->LoadNull(); - rewriterWrapper->StLocal(*exceptionIndex); - // We don't need to initialize calltarget state because is going to be initialized right after this method call. - // So we can save 2 instructions. - /*rewriterWrapper->CallMember(GetCallTargetStateDefaultMemberRef(), false); - rewriterWrapper->StLocal(*callTargetStateIndex);*/ - return S_OK; +mdTypeRef CallTargetTokens::GetObjectTypeRef() +{ + return objectTypeRef; +} +mdTypeRef CallTargetTokens::GetExceptionTypeRef() +{ + return exTypeRef; +} +mdAssemblyRef CallTargetTokens::GetCorLibAssemblyRef() +{ + return corLibAssemblyRef; } -HRESULT CallTargetTokens::WriteBeginMethod( - void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, - const TypeInfo* currentType, - std::vector& methodArguments, - ILInstr** instruction) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return hr; - } +HRESULT CallTargetTokens::ModifyLocalSigAndInitialize(void* rewriterWrapperPtr, FunctionInfo* functionInfo, + ULONG* callTargetStateIndex, ULONG* exceptionIndex, + ULONG* callTargetReturnIndex, ULONG* returnValueIndex, + mdToken* callTargetStateToken, mdToken* exceptionToken, + mdToken* callTargetReturnToken, ILInstr** firstInstruction) +{ + ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*) rewriterWrapperPtr; + + // Modify the Local Var Signature of the method + auto returnFunctionMethod = functionInfo->method_signature.GetRet(); + + auto hr = ModifyLocalSig(rewriterWrapper->GetILRewriter(), &returnFunctionMethod, callTargetStateIndex, + exceptionIndex, callTargetReturnIndex, returnValueIndex, callTargetStateToken, + exceptionToken, callTargetReturnToken); + + if (FAILED(hr)) + { + Warn("ModifyLocalSig() failed."); + return hr; + } - ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*)rewriterWrapperPtr; - ModuleMetadata* module_metadata = GetMetadata(); + // Init locals + if (*returnValueIndex != static_cast(ULONG_MAX)) + { + *firstInstruction = + rewriterWrapper->CallMember(GetCallTargetDefaultValueMethodSpec(&returnFunctionMethod), false); + rewriterWrapper->StLocal(*returnValueIndex); - auto numArguments = (int)methodArguments.size(); - if (numArguments >= FASTPATH_COUNT) { - return WriteBeginMethodWithArgumentsArray( - rewriterWrapperPtr, integrationTypeRef, currentType, instruction); - } + rewriterWrapper->CallMember(GetCallTargetReturnValueDefaultMemberRef(*callTargetReturnToken), false); + rewriterWrapper->StLocal(*callTargetReturnIndex); + } + else + { + *firstInstruction = rewriterWrapper->CallMember(GetCallTargetReturnVoidDefaultMemberRef(), false); + rewriterWrapper->StLocal(*callTargetReturnIndex); + } + rewriterWrapper->LoadNull(); + rewriterWrapper->StLocal(*exceptionIndex); + // We don't need to initialize calltarget state because is going to be initialized right after this method call. + // So we can save 2 instructions. + /*rewriterWrapper->CallMember(GetCallTargetStateDefaultMemberRef(), false); + rewriterWrapper->StLocal(*callTargetStateIndex);*/ + return S_OK; +} - // - // FastPath - // +HRESULT CallTargetTokens::WriteBeginMethod(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, + const TypeInfo* currentType, + std::vector& methodArguments, ILInstr** instruction) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return hr; + } - if (beginMethodFastPathRefs[numArguments] == mdMemberRefNil) { - unsigned callTargetStateBuffer; - auto callTargetStateSize = CorSigCompressToken(callTargetStateTypeRef, &callTargetStateBuffer); + ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*) rewriterWrapperPtr; + ModuleMetadata* module_metadata = GetMetadata(); + + auto numArguments = (int) methodArguments.size(); + if (numArguments >= FASTPATH_COUNT) + { + return WriteBeginMethodWithArgumentsArray(rewriterWrapperPtr, integrationTypeRef, currentType, instruction); + } + + // + // FastPath + // + + if (beginMethodFastPathRefs[numArguments] == mdMemberRefNil) + { + unsigned callTargetStateBuffer; + auto callTargetStateSize = CorSigCompressToken(callTargetStateTypeRef, &callTargetStateBuffer); + + auto signatureLength = 6 + (numArguments * 2) + callTargetStateSize; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; + + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; + signature[offset++] = 0x02 + numArguments; + signature[offset++] = 0x01 + numArguments; + + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + memcpy(&signature[offset], &callTargetStateBuffer, callTargetStateSize); + offset += callTargetStateSize; + + signature[offset++] = ELEMENT_TYPE_MVAR; + signature[offset++] = 0x01; + + for (auto i = 0; i < numArguments; i++) + { + signature[offset++] = ELEMENT_TYPE_MVAR; + signature[offset++] = 0x01 + (i + 1); + } + + auto hr = module_metadata->metadata_emit->DefineMemberRef( + callTargetTypeRef, managed_profiler_calltarget_beginmethod_name.data(), signature, signatureLength, + &beginMethodFastPathRefs[numArguments]); + if (FAILED(hr)) + { + Warn("Wrapper beginMethod for ", numArguments, " arguments could not be defined."); + return hr; + } + } + + mdMethodSpec beginMethodSpec = mdMethodSpecNil; + + unsigned integrationTypeBuffer; + ULONG integrationTypeSize = CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); + + bool isValueType = currentType->valueType; + mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); + + unsigned currentTypeBuffer; + ULONG currentTypeSize = CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); + + auto signatureLength = 4 + integrationTypeSize + currentTypeSize; + + PCCOR_SIGNATURE argumentsSignatureBuffer[FASTPATH_COUNT]; + ULONG argumentsSignatureSize[FASTPATH_COUNT]; + for (auto i = 0; i < numArguments; i++) + { + auto signatureSize = methodArguments[i].GetSignature(argumentsSignatureBuffer[i]); + argumentsSignatureSize[i] = signatureSize; + signatureLength += signatureSize; + } - auto signatureLength = 6 + (numArguments * 2) + callTargetStateSize; COR_SIGNATURE signature[signatureBufferSize]; unsigned offset = 0; - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; signature[offset++] = 0x02 + numArguments; - signature[offset++] = 0x01 + numArguments; - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &callTargetStateBuffer, callTargetStateSize); - offset += callTargetStateSize; + signature[offset++] = ELEMENT_TYPE_CLASS; + memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); + offset += integrationTypeSize; - signature[offset++] = ELEMENT_TYPE_MVAR; - signature[offset++] = 0x01; + if (isValueType) + { + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + } + else + { + signature[offset++] = ELEMENT_TYPE_CLASS; + } + memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); + offset += currentTypeSize; - for (auto i = 0; i < numArguments; i++) { - signature[offset++] = ELEMENT_TYPE_MVAR; - signature[offset++] = 0x01 + (i + 1); + for (auto i = 0; i < numArguments; i++) + { + memcpy(&signature[offset], argumentsSignatureBuffer[i], argumentsSignatureSize[i]); + offset += argumentsSignatureSize[i]; } - auto hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetTypeRef, - managed_profiler_calltarget_beginmethod_name.data(), - signature, - signatureLength, - &beginMethodFastPathRefs[numArguments]); - if (FAILED(hr)) { - Warn("Wrapper beginMethod for ", numArguments," arguments could not be defined."); - return hr; + hr = module_metadata->metadata_emit->DefineMethodSpec(beginMethodFastPathRefs[numArguments], signature, + signatureLength, &beginMethodSpec); + if (FAILED(hr)) + { + Warn("Error creating begin method spec."); + return hr; } - } - mdMethodSpec beginMethodSpec = mdMethodSpecNil; + *instruction = rewriterWrapper->CallMember(beginMethodSpec, false); + return S_OK; +} - unsigned integrationTypeBuffer; - ULONG integrationTypeSize = CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); +// endmethod with void return +HRESULT CallTargetTokens::WriteEndVoidReturnMemberRef(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, + const TypeInfo* currentType, ILInstr** instruction) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return hr; + } + ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*) rewriterWrapperPtr; + ModuleMetadata* module_metadata = GetMetadata(); - bool isValueType = currentType->valueType; - mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); + if (endVoidMemberRef == mdMemberRefNil) + { + unsigned callTargetReturnVoidBuffer; + auto callTargetReturnVoidSize = CorSigCompressToken(callTargetReturnVoidTypeRef, &callTargetReturnVoidBuffer); - unsigned currentTypeBuffer; - ULONG currentTypeSize = CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); + unsigned exTypeRefBuffer; + auto exTypeRefSize = CorSigCompressToken(exTypeRef, &exTypeRefBuffer); - auto signatureLength = 4 + integrationTypeSize + currentTypeSize; + unsigned callTargetStateBuffer; + auto callTargetStateSize = CorSigCompressToken(callTargetStateTypeRef, &callTargetStateBuffer); - PCCOR_SIGNATURE argumentsSignatureBuffer[FASTPATH_COUNT]; - ULONG argumentsSignatureSize[FASTPATH_COUNT]; - for (auto i = 0; i < numArguments; i++) { - auto signatureSize = methodArguments[i].GetSignature(argumentsSignatureBuffer[i]); - argumentsSignatureSize[i] = signatureSize; - signatureLength += signatureSize; - } + auto signatureLength = 8 + callTargetReturnVoidSize + exTypeRefSize + callTargetStateSize; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; + signature[offset++] = 0x02; + signature[offset++] = 0x03; - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; - signature[offset++] = 0x02 + numArguments; + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + memcpy(&signature[offset], &callTargetReturnVoidBuffer, callTargetReturnVoidSize); + offset += callTargetReturnVoidSize; - signature[offset++] = ELEMENT_TYPE_CLASS; - memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); - offset += integrationTypeSize; + signature[offset++] = ELEMENT_TYPE_MVAR; + signature[offset++] = 0x01; + + signature[offset++] = ELEMENT_TYPE_CLASS; + memcpy(&signature[offset], &exTypeRefBuffer, exTypeRefSize); + offset += exTypeRefSize; + + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + memcpy(&signature[offset], &callTargetStateBuffer, callTargetStateSize); + offset += callTargetStateSize; + + auto hr = module_metadata->metadata_emit->DefineMemberRef(callTargetTypeRef, + managed_profiler_calltarget_endmethod_name.data(), + signature, signatureLength, &endVoidMemberRef); + if (FAILED(hr)) + { + Warn("Wrapper endVoidMemberRef could not be defined."); + return hr; + } + } + + mdMethodSpec endVoidMethodSpec = mdMethodSpecNil; + + unsigned integrationTypeBuffer; + ULONG integrationTypeSize = CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); + + bool isValueType = currentType->valueType; + mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); + + unsigned currentTypeBuffer; + ULONG currentTypeSize = CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); + + auto signatureLength = 4 + integrationTypeSize + currentTypeSize; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; + signature[offset++] = 0x02; - if (isValueType) { - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - } else { signature[offset++] = ELEMENT_TYPE_CLASS; - } - memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); - offset += currentTypeSize; - - for (auto i = 0; i < numArguments; i++) { - memcpy(&signature[offset], argumentsSignatureBuffer[i], argumentsSignatureSize[i]); - offset += argumentsSignatureSize[i]; - } - - hr = module_metadata->metadata_emit->DefineMethodSpec(beginMethodFastPathRefs[numArguments], signature, signatureLength, &beginMethodSpec); - if (FAILED(hr)) { - Warn("Error creating begin method spec."); - return hr; - } + memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); + offset += integrationTypeSize; - *instruction = rewriterWrapper->CallMember(beginMethodSpec, false); - return S_OK; + if (isValueType) + { + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + } + else + { + signature[offset++] = ELEMENT_TYPE_CLASS; + } + memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); + offset += currentTypeSize; + + hr = module_metadata->metadata_emit->DefineMethodSpec(endVoidMemberRef, signature, signatureLength, + &endVoidMethodSpec); + if (FAILED(hr)) + { + Warn("Error creating end void method method spec."); + return hr; + } + + *instruction = rewriterWrapper->CallMember(endVoidMethodSpec, false); + return S_OK; } -// endmethod with void return -HRESULT CallTargetTokens::WriteEndVoidReturnMemberRef( - void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, - const TypeInfo* currentType, ILInstr** instruction) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return hr; - } - ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*)rewriterWrapperPtr; - ModuleMetadata* module_metadata = GetMetadata(); +// endmethod with return type +HRESULT CallTargetTokens::WriteEndReturnMemberRef(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, + const TypeInfo* currentType, FunctionMethodArgument* returnArgument, + ILInstr** instruction) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return hr; + } + ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*) rewriterWrapperPtr; + ModuleMetadata* module_metadata = GetMetadata(); + GetTargetReturnValueTypeRef(returnArgument); + + // *** Define base MethodMemberRef for the type + + mdMemberRef endMethodMemberRef = mdMemberRefNil; - if (endVoidMemberRef == mdMemberRefNil) { - unsigned callTargetReturnVoidBuffer; - auto callTargetReturnVoidSize = CorSigCompressToken( - callTargetReturnVoidTypeRef, &callTargetReturnVoidBuffer); + unsigned callTargetReturnTypeRefBuffer; + auto callTargetReturnTypeRefSize = CorSigCompressToken(callTargetReturnTypeRef, &callTargetReturnTypeRefBuffer); unsigned exTypeRefBuffer; auto exTypeRefSize = CorSigCompressToken(exTypeRef, &exTypeRefBuffer); unsigned callTargetStateBuffer; - auto callTargetStateSize = - CorSigCompressToken(callTargetStateTypeRef, &callTargetStateBuffer); + auto callTargetStateSize = CorSigCompressToken(callTargetStateTypeRef, &callTargetStateBuffer); - auto signatureLength = - 8 + callTargetReturnVoidSize + exTypeRefSize + callTargetStateSize; + auto signatureLength = 14 + callTargetReturnTypeRefSize + exTypeRefSize + callTargetStateSize; COR_SIGNATURE signature[signatureBufferSize]; unsigned offset = 0; signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; - signature[offset++] = 0x02; signature[offset++] = 0x03; + signature[offset++] = 0x04; + signature[offset++] = ELEMENT_TYPE_GENERICINST; signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &callTargetReturnVoidBuffer, - callTargetReturnVoidSize); - offset += callTargetReturnVoidSize; + memcpy(&signature[offset], &callTargetReturnTypeRefBuffer, callTargetReturnTypeRefSize); + offset += callTargetReturnTypeRefSize; + signature[offset++] = 0x01; + signature[offset++] = ELEMENT_TYPE_MVAR; + signature[offset++] = 0x02; signature[offset++] = ELEMENT_TYPE_MVAR; signature[offset++] = 0x01; + signature[offset++] = ELEMENT_TYPE_MVAR; + signature[offset++] = 0x02; + signature[offset++] = ELEMENT_TYPE_CLASS; memcpy(&signature[offset], &exTypeRefBuffer, exTypeRefSize); offset += exTypeRefSize; @@ -952,290 +1112,185 @@ HRESULT CallTargetTokens::WriteEndVoidReturnMemberRef( memcpy(&signature[offset], &callTargetStateBuffer, callTargetStateSize); offset += callTargetStateSize; - auto hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetTypeRef, managed_profiler_calltarget_endmethod_name.data(), - signature, signatureLength, &endVoidMemberRef); - if (FAILED(hr)) { - Warn("Wrapper endVoidMemberRef could not be defined."); - return hr; + hr = module_metadata->metadata_emit->DefineMemberRef(callTargetTypeRef, + managed_profiler_calltarget_endmethod_name.data(), signature, + signatureLength, &endMethodMemberRef); + if (FAILED(hr)) + { + Warn("Wrapper endMethodMemberRef could not be defined."); + return hr; } - } - mdMethodSpec endVoidMethodSpec = mdMethodSpecNil; + // *** Define Method Spec - unsigned integrationTypeBuffer; - ULONG integrationTypeSize = - CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); + mdMethodSpec endMethodSpec = mdMethodSpecNil; - bool isValueType = currentType->valueType; - mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); + unsigned integrationTypeBuffer; + ULONG integrationTypeSize = CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); - unsigned currentTypeBuffer; - ULONG currentTypeSize = - CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); + bool isValueType = currentType->valueType; + mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); - auto signatureLength = 4 + integrationTypeSize + currentTypeSize; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; - signature[offset++] = 0x02; + unsigned currentTypeBuffer; + ULONG currentTypeSize = CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); - signature[offset++] = ELEMENT_TYPE_CLASS; - memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); - offset += integrationTypeSize; + PCCOR_SIGNATURE returnSignatureBuffer; + auto returnSignatureLength = returnArgument->GetSignature(returnSignatureBuffer); - if (isValueType) { - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - } else { - signature[offset++] = ELEMENT_TYPE_CLASS; - } - memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); - offset += currentTypeSize; - - hr = module_metadata->metadata_emit->DefineMethodSpec( - endVoidMemberRef, signature, signatureLength, &endVoidMethodSpec); - if (FAILED(hr)) { - Warn("Error creating end void method method spec."); - return hr; - } - - *instruction = rewriterWrapper->CallMember(endVoidMethodSpec, false); - return S_OK; -} - -// endmethod with return type -HRESULT CallTargetTokens::WriteEndReturnMemberRef( - void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, - const TypeInfo* currentType, FunctionMethodArgument* returnArgument, - ILInstr** instruction) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return hr; - } - ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*)rewriterWrapperPtr; - ModuleMetadata* module_metadata = GetMetadata(); - GetTargetReturnValueTypeRef(returnArgument); - - // *** Define base MethodMemberRef for the type - - mdMemberRef endMethodMemberRef = mdMemberRefNil; - - unsigned callTargetReturnTypeRefBuffer; - auto callTargetReturnTypeRefSize = CorSigCompressToken( - callTargetReturnTypeRef, &callTargetReturnTypeRefBuffer); - - unsigned exTypeRefBuffer; - auto exTypeRefSize = CorSigCompressToken(exTypeRef, &exTypeRefBuffer); - - unsigned callTargetStateBuffer; - auto callTargetStateSize = - CorSigCompressToken(callTargetStateTypeRef, &callTargetStateBuffer); - - auto signatureLength = - 14 + callTargetReturnTypeRefSize + exTypeRefSize + callTargetStateSize; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; - - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; - signature[offset++] = 0x03; - signature[offset++] = 0x04; - - signature[offset++] = ELEMENT_TYPE_GENERICINST; - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &callTargetReturnTypeRefBuffer, - callTargetReturnTypeRefSize); - offset += callTargetReturnTypeRefSize; - signature[offset++] = 0x01; - signature[offset++] = ELEMENT_TYPE_MVAR; - signature[offset++] = 0x02; - - signature[offset++] = ELEMENT_TYPE_MVAR; - signature[offset++] = 0x01; - - signature[offset++] = ELEMENT_TYPE_MVAR; - signature[offset++] = 0x02; - - signature[offset++] = ELEMENT_TYPE_CLASS; - memcpy(&signature[offset], &exTypeRefBuffer, exTypeRefSize); - offset += exTypeRefSize; - - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - memcpy(&signature[offset], &callTargetStateBuffer, callTargetStateSize); - offset += callTargetStateSize; - - hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetTypeRef, managed_profiler_calltarget_endmethod_name.data(), - signature, signatureLength, &endMethodMemberRef); - if (FAILED(hr)) { - Warn("Wrapper endMethodMemberRef could not be defined."); - return hr; - } - - // *** Define Method Spec + signatureLength = 4 + integrationTypeSize + currentTypeSize + returnSignatureLength; + offset = 0; - mdMethodSpec endMethodSpec = mdMethodSpecNil; - - unsigned integrationTypeBuffer; - ULONG integrationTypeSize = - CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); - - bool isValueType = currentType->valueType; - mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); - - unsigned currentTypeBuffer; - ULONG currentTypeSize = - CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); - - PCCOR_SIGNATURE returnSignatureBuffer; - auto returnSignatureLength = - returnArgument->GetSignature(returnSignatureBuffer); + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; + signature[offset++] = 0x03; - signatureLength = - 4 + integrationTypeSize + currentTypeSize + returnSignatureLength; - offset = 0; + signature[offset++] = ELEMENT_TYPE_CLASS; + memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); + offset += integrationTypeSize; - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; - signature[offset++] = 0x03; + if (isValueType) + { + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + } + else + { + signature[offset++] = ELEMENT_TYPE_CLASS; + } + memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); + offset += currentTypeSize; + + memcpy(&signature[offset], returnSignatureBuffer, returnSignatureLength); + offset += returnSignatureLength; + + hr = module_metadata->metadata_emit->DefineMethodSpec(endMethodMemberRef, signature, signatureLength, + &endMethodSpec); + if (FAILED(hr)) + { + Warn("Error creating end method member spec."); + return hr; + } - signature[offset++] = ELEMENT_TYPE_CLASS; - memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); - offset += integrationTypeSize; + *instruction = rewriterWrapper->CallMember(endMethodSpec, false); + return S_OK; +} - if (isValueType) { - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - } else { - signature[offset++] = ELEMENT_TYPE_CLASS; - } - memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); - offset += currentTypeSize; +// write log exception +HRESULT CallTargetTokens::WriteLogException(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, + const TypeInfo* currentType, ILInstr** instruction) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return hr; + } + ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*) rewriterWrapperPtr; + ModuleMetadata* module_metadata = GetMetadata(); - memcpy(&signature[offset], returnSignatureBuffer, returnSignatureLength); - offset += returnSignatureLength; + if (logExceptionRef == mdMemberRefNil) + { + unsigned exTypeRefBuffer; + auto exTypeRefSize = CorSigCompressToken(exTypeRef, &exTypeRefBuffer); + + auto signatureLength = 5 + exTypeRefSize; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; + + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; + signature[offset++] = 0x02; + signature[offset++] = 0x01; + + signature[offset++] = ELEMENT_TYPE_VOID; + signature[offset++] = ELEMENT_TYPE_CLASS; + memcpy(&signature[offset], &exTypeRefBuffer, exTypeRefSize); + offset += exTypeRefSize; + + auto hr = module_metadata->metadata_emit->DefineMemberRef(callTargetTypeRef, + managed_profiler_calltarget_logexception_name.data(), + signature, signatureLength, &logExceptionRef); + if (FAILED(hr)) + { + Warn("Wrapper logExceptionRef could not be defined."); + return hr; + } + } - hr = module_metadata->metadata_emit->DefineMethodSpec( - endMethodMemberRef, signature, signatureLength, &endMethodSpec); - if (FAILED(hr)) { - Warn("Error creating end method member spec."); - return hr; - } + mdMethodSpec logExceptionMethodSpec = mdMethodSpecNil; - *instruction = rewriterWrapper->CallMember(endMethodSpec, false); - return S_OK; -} + unsigned integrationTypeBuffer; + ULONG integrationTypeSize = CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); -// write log exception -HRESULT CallTargetTokens::WriteLogException(void* rewriterWrapperPtr, - mdTypeRef integrationTypeRef, - const TypeInfo* currentType, - ILInstr** instruction) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return hr; - } - ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*)rewriterWrapperPtr; - ModuleMetadata* module_metadata = GetMetadata(); + bool isValueType = currentType->valueType; + mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); - if (logExceptionRef == mdMemberRefNil) { - unsigned exTypeRefBuffer; - auto exTypeRefSize = CorSigCompressToken(exTypeRef, &exTypeRefBuffer); + unsigned currentTypeBuffer; + ULONG currentTypeSize = CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); - auto signatureLength = 5 + exTypeRefSize; + auto signatureLength = 4 + integrationTypeSize + currentTypeSize; COR_SIGNATURE signature[signatureBufferSize]; unsigned offset = 0; - - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERIC; + signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; signature[offset++] = 0x02; - signature[offset++] = 0x01; - signature[offset++] = ELEMENT_TYPE_VOID; signature[offset++] = ELEMENT_TYPE_CLASS; - memcpy(&signature[offset], &exTypeRefBuffer, exTypeRefSize); - offset += exTypeRefSize; + memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); + offset += integrationTypeSize; - auto hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetTypeRef, managed_profiler_calltarget_logexception_name.data(), - signature, signatureLength, &logExceptionRef); - if (FAILED(hr)) { - Warn("Wrapper logExceptionRef could not be defined."); - return hr; + if (isValueType) + { + signature[offset++] = ELEMENT_TYPE_VALUETYPE; + } + else + { + signature[offset++] = ELEMENT_TYPE_CLASS; + } + memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); + offset += currentTypeSize; + + hr = module_metadata->metadata_emit->DefineMethodSpec(logExceptionRef, signature, signatureLength, + &logExceptionMethodSpec); + if (FAILED(hr)) + { + Warn("Error creating log exception method spec."); + return hr; } - } - - mdMethodSpec logExceptionMethodSpec = mdMethodSpecNil; - - unsigned integrationTypeBuffer; - ULONG integrationTypeSize = - CorSigCompressToken(integrationTypeRef, &integrationTypeBuffer); - - bool isValueType = currentType->valueType; - mdToken currentTypeRef = GetCurrentTypeRef(currentType, isValueType); - unsigned currentTypeBuffer; - ULONG currentTypeSize = - CorSigCompressToken(currentTypeRef, ¤tTypeBuffer); + *instruction = rewriterWrapper->CallMember(logExceptionMethodSpec, false); + return S_OK; +} - auto signatureLength = 4 + integrationTypeSize + currentTypeSize; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; - signature[offset++] = IMAGE_CEE_CS_CALLCONV_GENERICINST; - signature[offset++] = 0x02; +HRESULT CallTargetTokens::WriteCallTargetReturnGetReturnValue(void* rewriterWrapperPtr, + mdTypeSpec callTargetReturnTypeSpec, + ILInstr** instruction) +{ + auto hr = EnsureBaseCalltargetTokens(); + if (FAILED(hr)) + { + return mdMemberRefNil; + } + ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*) rewriterWrapperPtr; + ModuleMetadata* module_metadata = GetMetadata(); - signature[offset++] = ELEMENT_TYPE_CLASS; - memcpy(&signature[offset], &integrationTypeBuffer, integrationTypeSize); - offset += integrationTypeSize; + // Ensure T CallTargetReturn.GetReturnValue() member ref + mdMemberRef callTargetReturnGetValueMemberRef = mdMemberRefNil; - if (isValueType) { - signature[offset++] = ELEMENT_TYPE_VALUETYPE; - } else { - signature[offset++] = ELEMENT_TYPE_CLASS; - } - memcpy(&signature[offset], ¤tTypeBuffer, currentTypeSize); - offset += currentTypeSize; - - hr = module_metadata->metadata_emit->DefineMethodSpec( - logExceptionRef, signature, signatureLength, &logExceptionMethodSpec); - if (FAILED(hr)) { - Warn("Error creating log exception method spec."); - return hr; - } + auto signatureLength = 4; + COR_SIGNATURE signature[signatureBufferSize]; + unsigned offset = 0; - *instruction = rewriterWrapper->CallMember(logExceptionMethodSpec, false); - return S_OK; -} + signature[offset++] = IMAGE_CEE_CS_CALLCONV_DEFAULT | IMAGE_CEE_CS_CALLCONV_HASTHIS; + signature[offset++] = 0x00; + signature[offset++] = ELEMENT_TYPE_VAR; + signature[offset++] = 0x00; + hr = module_metadata->metadata_emit->DefineMemberRef( + callTargetReturnTypeSpec, managed_profiler_calltarget_returntype_getreturnvalue_name.data(), signature, + signatureLength, &callTargetReturnGetValueMemberRef); + if (FAILED(hr)) + { + Warn("Wrapper callTargetReturnGetValueMemberRef could not be defined."); + return mdMemberRefNil; + } -HRESULT CallTargetTokens::WriteCallTargetReturnGetReturnValue( - void* rewriterWrapperPtr, mdTypeSpec callTargetReturnTypeSpec, - ILInstr** instruction) { - auto hr = EnsureBaseCalltargetTokens(); - if (FAILED(hr)) { - return mdMemberRefNil; - } - ILRewriterWrapper* rewriterWrapper = (ILRewriterWrapper*)rewriterWrapperPtr; - ModuleMetadata* module_metadata = GetMetadata(); - - // Ensure T CallTargetReturn.GetReturnValue() member ref - mdMemberRef callTargetReturnGetValueMemberRef = mdMemberRefNil; - - auto signatureLength = 4; - COR_SIGNATURE signature[signatureBufferSize]; - unsigned offset = 0; - - signature[offset++] = - IMAGE_CEE_CS_CALLCONV_DEFAULT | IMAGE_CEE_CS_CALLCONV_HASTHIS; - signature[offset++] = 0x00; - signature[offset++] = ELEMENT_TYPE_VAR; - signature[offset++] = 0x00; - hr = module_metadata->metadata_emit->DefineMemberRef( - callTargetReturnTypeSpec, - managed_profiler_calltarget_returntype_getreturnvalue_name.data(), - signature, signatureLength, &callTargetReturnGetValueMemberRef); - if (FAILED(hr)) { - Warn("Wrapper callTargetReturnGetValueMemberRef could not be defined."); - return mdMemberRefNil; - } - - *instruction = rewriterWrapper->CallMember(callTargetReturnGetValueMemberRef, false); - return S_OK; + *instruction = rewriterWrapper->CallMember(callTargetReturnGetValueMemberRef, false); + return S_OK; } -} // namespace trace \ No newline at end of file +} // namespace trace \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/calltarget_tokens.h b/src/Datadog.Trace.ClrProfiler.Native/calltarget_tokens.h index 79022c9c5e..03313f4393 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/calltarget_tokens.h +++ b/src/Datadog.Trace.ClrProfiler.Native/calltarget_tokens.h @@ -11,135 +11,122 @@ #include "com_ptr.h" #include "il_rewriter.h" #include "integration.h" -#include "string.h" // NOLINT +#include "string.h" // NOLINT #define FASTPATH_COUNT 9 -namespace trace { +namespace trace +{ /// /// Class to control all the token references of the module where the calltarget will be called. /// Also provides useful helpers for the rewriting process /// -class CallTargetTokens { - private: - void* module_metadata_ptr = nullptr; - - // CallTarget constants - WSTRING managed_profiler_calltarget_type = WStr("Datadog.Trace.ClrProfiler.CallTarget.CallTargetInvoker"); - WSTRING managed_profiler_calltarget_beginmethod_name = WStr("BeginMethod"); - WSTRING managed_profiler_calltarget_endmethod_name = WStr("EndMethod"); - WSTRING managed_profiler_calltarget_logexception_name = WStr("LogException"); - WSTRING managed_profiler_calltarget_getdefaultvalue_name = WStr("GetDefaultValue"); - - WSTRING managed_profiler_calltarget_statetype = WStr("Datadog.Trace.ClrProfiler.CallTarget.CallTargetState"); - WSTRING managed_profiler_calltarget_statetype_getdefault_name =WStr("GetDefault"); - - WSTRING managed_profiler_calltarget_returntype = WStr("Datadog.Trace.ClrProfiler.CallTarget.CallTargetReturn"); - WSTRING managed_profiler_calltarget_returntype_getdefault_name = WStr("GetDefault"); - - WSTRING managed_profiler_calltarget_returntype_generics = WStr("Datadog.Trace.ClrProfiler.CallTarget.CallTargetReturn`1"); - WSTRING managed_profiler_calltarget_returntype_getreturnvalue_name = WStr("GetReturnValue"); - - // CorLib tokens - mdAssemblyRef corLibAssemblyRef = mdAssemblyRefNil; - mdTypeRef objectTypeRef = mdTypeRefNil; - mdTypeRef exTypeRef = mdTypeRefNil; - mdTypeRef typeRef = mdTypeRefNil; - mdTypeRef runtimeTypeHandleRef = mdTypeRefNil; - mdToken getTypeFromHandleToken = mdTokenNil; - mdTypeRef runtimeMethodHandleRef = mdTypeRefNil; - - // CallTarget tokens - mdAssemblyRef profilerAssemblyRef = mdAssemblyRefNil; - mdTypeRef callTargetTypeRef = mdTypeRefNil; - mdTypeRef callTargetStateTypeRef = mdTypeRefNil; - mdTypeRef callTargetReturnVoidTypeRef = mdTypeRefNil; - mdTypeRef callTargetReturnTypeRef = mdTypeRefNil; - - mdMemberRef beginArrayMemberRef = mdMemberRefNil; - mdMemberRef beginMethodFastPathRefs[FASTPATH_COUNT]; - mdMemberRef endVoidMemberRef = mdMemberRefNil; - - mdMemberRef logExceptionRef = mdMemberRefNil; - - mdMemberRef callTargetStateTypeGetDefault = mdMemberRefNil; - mdMemberRef callTargetReturnVoidTypeGetDefault = mdMemberRefNil; - mdMemberRef getDefaultMemberRef = mdMemberRefNil; - - inline ModuleMetadata* GetMetadata() { - return (ModuleMetadata*)module_metadata_ptr; - } - HRESULT EnsureCorLibTokens(); - HRESULT EnsureBaseCalltargetTokens(); - mdTypeRef GetTargetStateTypeRef(); - mdTypeRef GetTargetVoidReturnTypeRef(); - mdTypeSpec GetTargetReturnValueTypeRef( - FunctionMethodArgument* returnArgument); - mdMemberRef GetCallTargetStateDefaultMemberRef(); - mdMemberRef GetCallTargetReturnVoidDefaultMemberRef(); - mdMemberRef GetCallTargetReturnValueDefaultMemberRef( - mdTypeSpec callTargetReturnTypeSpec); - mdMethodSpec GetCallTargetDefaultValueMethodSpec( - FunctionMethodArgument* methodArgument); - mdToken GetCurrentTypeRef(const TypeInfo* currentType, bool& isValueType); - - HRESULT ModifyLocalSig(ILRewriter* reWriter, - FunctionMethodArgument* methodReturnValue, - ULONG* callTargetStateIndex, ULONG* exceptionIndex, - ULONG* callTargetReturnIndex, ULONG* returnValueIndex, - mdToken* callTargetStateToken, mdToken* exceptionToken, - mdToken* callTargetReturnToken); - - HRESULT WriteBeginMethodWithArgumentsArray(void* rewriterWrapperPtr, - mdTypeRef integrationTypeRef, - const TypeInfo* currentType, - ILInstr** instruction); - - public: - CallTargetTokens(void* module_metadata_ptr) { - this->module_metadata_ptr = module_metadata_ptr; - for (int i = 0; i < FASTPATH_COUNT; i++) { - beginMethodFastPathRefs[i] = mdMemberRefNil; +class CallTargetTokens +{ +private: + void* module_metadata_ptr = nullptr; + + // CallTarget constants + WSTRING managed_profiler_calltarget_type = WStr("Datadog.Trace.ClrProfiler.CallTarget.CallTargetInvoker"); + WSTRING managed_profiler_calltarget_beginmethod_name = WStr("BeginMethod"); + WSTRING managed_profiler_calltarget_endmethod_name = WStr("EndMethod"); + WSTRING managed_profiler_calltarget_logexception_name = WStr("LogException"); + WSTRING managed_profiler_calltarget_getdefaultvalue_name = WStr("GetDefaultValue"); + + WSTRING managed_profiler_calltarget_statetype = WStr("Datadog.Trace.ClrProfiler.CallTarget.CallTargetState"); + WSTRING managed_profiler_calltarget_statetype_getdefault_name = WStr("GetDefault"); + + WSTRING managed_profiler_calltarget_returntype = WStr("Datadog.Trace.ClrProfiler.CallTarget.CallTargetReturn"); + WSTRING managed_profiler_calltarget_returntype_getdefault_name = WStr("GetDefault"); + + WSTRING managed_profiler_calltarget_returntype_generics = + WStr("Datadog.Trace.ClrProfiler.CallTarget.CallTargetReturn`1"); + WSTRING managed_profiler_calltarget_returntype_getreturnvalue_name = WStr("GetReturnValue"); + + // CorLib tokens + mdAssemblyRef corLibAssemblyRef = mdAssemblyRefNil; + mdTypeRef objectTypeRef = mdTypeRefNil; + mdTypeRef exTypeRef = mdTypeRefNil; + mdTypeRef typeRef = mdTypeRefNil; + mdTypeRef runtimeTypeHandleRef = mdTypeRefNil; + mdToken getTypeFromHandleToken = mdTokenNil; + mdTypeRef runtimeMethodHandleRef = mdTypeRefNil; + + // CallTarget tokens + mdAssemblyRef profilerAssemblyRef = mdAssemblyRefNil; + mdTypeRef callTargetTypeRef = mdTypeRefNil; + mdTypeRef callTargetStateTypeRef = mdTypeRefNil; + mdTypeRef callTargetReturnVoidTypeRef = mdTypeRefNil; + mdTypeRef callTargetReturnTypeRef = mdTypeRefNil; + + mdMemberRef beginArrayMemberRef = mdMemberRefNil; + mdMemberRef beginMethodFastPathRefs[FASTPATH_COUNT]; + mdMemberRef endVoidMemberRef = mdMemberRefNil; + + mdMemberRef logExceptionRef = mdMemberRefNil; + + mdMemberRef callTargetStateTypeGetDefault = mdMemberRefNil; + mdMemberRef callTargetReturnVoidTypeGetDefault = mdMemberRefNil; + mdMemberRef getDefaultMemberRef = mdMemberRefNil; + + inline ModuleMetadata* GetMetadata() + { + return (ModuleMetadata*) module_metadata_ptr; } - } - mdTypeRef GetObjectTypeRef(); - mdTypeRef GetExceptionTypeRef(); - mdAssemblyRef GetCorLibAssemblyRef(); - - HRESULT ModifyLocalSigAndInitialize( - void* rewriterWrapperPtr, FunctionInfo* functionInfo, - ULONG* callTargetStateIndex, ULONG* exceptionIndex, - ULONG* callTargetReturnIndex, ULONG* returnValueIndex, - mdToken* callTargetStateToken, mdToken* exceptionToken, - mdToken* callTargetReturnToken, ILInstr** firstInstruction); - - HRESULT WriteBeginMethod(void* rewriterWrapperPtr, - mdTypeRef integrationTypeRef, - const TypeInfo* currentType, - std::vector &methodArguments, - ILInstr** instruction); - - HRESULT WriteEndVoidReturnMemberRef(void* rewriterWrapperPtr, - mdTypeRef integrationTypeRef, - const TypeInfo* currentType, - ILInstr** instruction); - - HRESULT WriteEndReturnMemberRef(void* rewriterWrapperPtr, - mdTypeRef integrationTypeRef, - const TypeInfo* currentType, - FunctionMethodArgument* returnArgument, - ILInstr** instruction); - - HRESULT WriteLogException(void* rewriterWrapperPtr, - mdTypeRef integrationTypeRef, - const TypeInfo* currentType, ILInstr** instruction); - - HRESULT WriteCallTargetReturnGetReturnValue( - void* rewriterWrapperPtr, mdTypeSpec callTargetReturnTypeSpec, - ILInstr** instruction); + HRESULT EnsureCorLibTokens(); + HRESULT EnsureBaseCalltargetTokens(); + mdTypeRef GetTargetStateTypeRef(); + mdTypeRef GetTargetVoidReturnTypeRef(); + mdTypeSpec GetTargetReturnValueTypeRef(FunctionMethodArgument* returnArgument); + mdMemberRef GetCallTargetStateDefaultMemberRef(); + mdMemberRef GetCallTargetReturnVoidDefaultMemberRef(); + mdMemberRef GetCallTargetReturnValueDefaultMemberRef(mdTypeSpec callTargetReturnTypeSpec); + mdMethodSpec GetCallTargetDefaultValueMethodSpec(FunctionMethodArgument* methodArgument); + mdToken GetCurrentTypeRef(const TypeInfo* currentType, bool& isValueType); + + HRESULT ModifyLocalSig(ILRewriter* reWriter, FunctionMethodArgument* methodReturnValue, ULONG* callTargetStateIndex, + ULONG* exceptionIndex, ULONG* callTargetReturnIndex, ULONG* returnValueIndex, + mdToken* callTargetStateToken, mdToken* exceptionToken, mdToken* callTargetReturnToken); + + HRESULT WriteBeginMethodWithArgumentsArray(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, + const TypeInfo* currentType, ILInstr** instruction); + +public: + CallTargetTokens(void* module_metadata_ptr) + { + this->module_metadata_ptr = module_metadata_ptr; + for (int i = 0; i < FASTPATH_COUNT; i++) + { + beginMethodFastPathRefs[i] = mdMemberRefNil; + } + } + mdTypeRef GetObjectTypeRef(); + mdTypeRef GetExceptionTypeRef(); + mdAssemblyRef GetCorLibAssemblyRef(); + + HRESULT ModifyLocalSigAndInitialize(void* rewriterWrapperPtr, FunctionInfo* functionInfo, + ULONG* callTargetStateIndex, ULONG* exceptionIndex, + ULONG* callTargetReturnIndex, ULONG* returnValueIndex, + mdToken* callTargetStateToken, mdToken* exceptionToken, + mdToken* callTargetReturnToken, ILInstr** firstInstruction); + + HRESULT WriteBeginMethod(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, const TypeInfo* currentType, + std::vector& methodArguments, ILInstr** instruction); + + HRESULT WriteEndVoidReturnMemberRef(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, + const TypeInfo* currentType, ILInstr** instruction); + + HRESULT WriteEndReturnMemberRef(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, const TypeInfo* currentType, + FunctionMethodArgument* returnArgument, ILInstr** instruction); + + HRESULT WriteLogException(void* rewriterWrapperPtr, mdTypeRef integrationTypeRef, const TypeInfo* currentType, + ILInstr** instruction); + + HRESULT WriteCallTargetReturnGetReturnValue(void* rewriterWrapperPtr, mdTypeSpec callTargetReturnTypeSpec, + ILInstr** instruction); }; -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_CALLTARGET_TOKENS_H_ \ No newline at end of file +#endif // DD_CLR_PROFILER_CALLTARGET_TOKENS_H_ \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/class_factory.cpp b/src/Datadog.Trace.ClrProfiler.Native/class_factory.cpp index 3f6f4b1783..31a3ca3c0a 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/class_factory.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/class_factory.cpp @@ -7,69 +7,82 @@ #include "logging.h" #include "version.h" -ClassFactory::ClassFactory() : refCount(0) {} +ClassFactory::ClassFactory() : refCount(0) +{ +} -ClassFactory::~ClassFactory() {} +ClassFactory::~ClassFactory() +{ +} -HRESULT STDMETHODCALLTYPE ClassFactory::QueryInterface(REFIID riid, - void** ppvObject) { - if (riid == IID_IUnknown || riid == IID_IClassFactory) { - *ppvObject = this; - this->AddRef(); - return S_OK; - } +HRESULT STDMETHODCALLTYPE ClassFactory::QueryInterface(REFIID riid, void** ppvObject) +{ + if (riid == IID_IUnknown || riid == IID_IClassFactory) + { + *ppvObject = this; + this->AddRef(); + return S_OK; + } - *ppvObject = nullptr; - return E_NOINTERFACE; + *ppvObject = nullptr; + return E_NOINTERFACE; } -ULONG STDMETHODCALLTYPE ClassFactory::AddRef() { - return std::atomic_fetch_add(&this->refCount, 1) + 1; +ULONG STDMETHODCALLTYPE ClassFactory::AddRef() +{ + return std::atomic_fetch_add(&this->refCount, 1) + 1; } -ULONG STDMETHODCALLTYPE ClassFactory::Release() { - int count = std::atomic_fetch_sub(&this->refCount, 1) - 1; - if (count <= 0) { - delete this; - } +ULONG STDMETHODCALLTYPE ClassFactory::Release() +{ + int count = std::atomic_fetch_sub(&this->refCount, 1) - 1; + if (count <= 0) + { + delete this; + } - return count; + return count; } // profiler entry point -HRESULT STDMETHODCALLTYPE ClassFactory::CreateInstance(IUnknown* pUnkOuter, - REFIID riid, - void** ppvObject) { - if (pUnkOuter != nullptr) { - *ppvObject = nullptr; - return CLASS_E_NOAGGREGATION; - } +HRESULT STDMETHODCALLTYPE ClassFactory::CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) +{ + if (pUnkOuter != nullptr) + { + *ppvObject = nullptr; + return CLASS_E_NOAGGREGATION; + } - trace::Info("Datadog CLR Profiler ", PROFILER_VERSION, - " on", + trace::Info("Datadog CLR Profiler ", PROFILER_VERSION, " on", #ifdef _WIN32 - " Windows" + " Windows" #elif MACOS - " macOS" + " macOS" #else - " Linux" + " Linux" #endif #ifdef AMD64 - , " (amd64)" + , + " (amd64)" #elif X86 - , " (x86)" + , + " (x86)" #elif ARM64 - , " (arm64)" + , + " (arm64)" #elif ARM - , " (arm)" + , " (arm)" #endif - ); - trace::Debug("ClassFactory::CreateInstance"); + ); + trace::Debug("ClassFactory::CreateInstance"); - auto profiler = new trace::CorProfiler(); - return profiler->QueryInterface(riid, ppvObject); + auto profiler = new trace::CorProfiler(); + return profiler->QueryInterface(riid, ppvObject); } -HRESULT STDMETHODCALLTYPE ClassFactory::LockServer(BOOL fLock) { return S_OK; } +HRESULT STDMETHODCALLTYPE ClassFactory::LockServer(BOOL fLock) +{ + return S_OK; +} diff --git a/src/Datadog.Trace.ClrProfiler.Native/class_factory.h b/src/Datadog.Trace.ClrProfiler.Native/class_factory.h index c7a36b8daa..afbd942459 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/class_factory.h +++ b/src/Datadog.Trace.ClrProfiler.Native/class_factory.h @@ -5,23 +5,22 @@ // Licensed under the MIT license. See LICENSE file in the project root for full // license information. -#include #include "unknwn.h" +#include -class ClassFactory : public IClassFactory { - private: - std::atomic refCount; +class ClassFactory : public IClassFactory +{ +private: + std::atomic refCount; - public: - ClassFactory(); - virtual ~ClassFactory(); - HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, - void** ppvObject) override; - ULONG STDMETHODCALLTYPE AddRef(void) override; - ULONG STDMETHODCALLTYPE Release(void) override; - HRESULT STDMETHODCALLTYPE CreateInstance(IUnknown* pUnkOuter, REFIID riid, - void** ppvObject) override; - HRESULT STDMETHODCALLTYPE LockServer(BOOL fLock) override; +public: + ClassFactory(); + virtual ~ClassFactory(); + HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject) override; + ULONG STDMETHODCALLTYPE AddRef(void) override; + ULONG STDMETHODCALLTYPE Release(void) override; + HRESULT STDMETHODCALLTYPE CreateInstance(IUnknown* pUnkOuter, REFIID riid, void** ppvObject) override; + HRESULT STDMETHODCALLTYPE LockServer(BOOL fLock) override; }; -#endif // DD_CLR_PROFILER_CLASS_FACTORY_H_ +#endif // DD_CLR_PROFILER_CLASS_FACTORY_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/clr_helpers.cpp b/src/Datadog.Trace.ClrProfiler.Native/clr_helpers.cpp index 53b774b855..e11b68e5e9 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/clr_helpers.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/clr_helpers.cpp @@ -2,1380 +2,1493 @@ #include -#include -#include #include "dd_profiler_constants.h" #include "environment_variables.h" #include "logging.h" #include "macros.h" #include "pal.h" #include "sig_helpers.h" +#include +#include -namespace trace { - -RuntimeInformation GetRuntimeInformation(ICorProfilerInfo4* info) { - COR_PRF_RUNTIME_TYPE runtime_type; - USHORT major_version; - USHORT minor_version; - USHORT build_version; - USHORT qfe_version; - - auto hr = info->GetRuntimeInformation(nullptr, &runtime_type, &major_version, &minor_version, &build_version, &qfe_version, 0, nullptr, nullptr); - if (FAILED(hr)) { - return {}; - } +namespace trace +{ + +RuntimeInformation GetRuntimeInformation(ICorProfilerInfo4* info) +{ + COR_PRF_RUNTIME_TYPE runtime_type; + USHORT major_version; + USHORT minor_version; + USHORT build_version; + USHORT qfe_version; + + auto hr = info->GetRuntimeInformation(nullptr, &runtime_type, &major_version, &minor_version, &build_version, + &qfe_version, 0, nullptr, nullptr); + if (FAILED(hr)) + { + return {}; + } - return {runtime_type, major_version, minor_version, build_version, qfe_version}; + return {runtime_type, major_version, minor_version, build_version, qfe_version}; } -AssemblyInfo GetAssemblyInfo(ICorProfilerInfo4* info, - const AssemblyID& assembly_id) { - WCHAR assembly_name[kNameMaxSize]; - DWORD assembly_name_len = 0; - AppDomainID app_domain_id; - ModuleID manifest_module_id; +AssemblyInfo GetAssemblyInfo(ICorProfilerInfo4* info, const AssemblyID& assembly_id) +{ + WCHAR assembly_name[kNameMaxSize]; + DWORD assembly_name_len = 0; + AppDomainID app_domain_id; + ModuleID manifest_module_id; - auto hr = info->GetAssemblyInfo(assembly_id, kNameMaxSize, &assembly_name_len, - assembly_name, &app_domain_id, &manifest_module_id); + auto hr = info->GetAssemblyInfo(assembly_id, kNameMaxSize, &assembly_name_len, assembly_name, &app_domain_id, + &manifest_module_id); - if (FAILED(hr) || assembly_name_len == 0) { - return {}; - } + if (FAILED(hr) || assembly_name_len == 0) + { + return {}; + } - WCHAR app_domain_name[kNameMaxSize]; - DWORD app_domain_name_len = 0; + WCHAR app_domain_name[kNameMaxSize]; + DWORD app_domain_name_len = 0; - hr = info->GetAppDomainInfo(app_domain_id, kNameMaxSize, &app_domain_name_len, - app_domain_name, nullptr); + hr = info->GetAppDomainInfo(app_domain_id, kNameMaxSize, &app_domain_name_len, app_domain_name, nullptr); - if (FAILED(hr) || app_domain_name_len == 0) { - return {}; - } + if (FAILED(hr) || app_domain_name_len == 0) + { + return {}; + } - return {assembly_id, WSTRING(assembly_name), manifest_module_id, app_domain_id, - WSTRING(app_domain_name)}; + return {assembly_id, WSTRING(assembly_name), manifest_module_id, app_domain_id, WSTRING(app_domain_name)}; } -AssemblyMetadata GetAssemblyImportMetadata( - const ComPtr& assembly_import) { - mdAssembly current = mdAssemblyNil; - auto hr = assembly_import->GetAssemblyFromScope(¤t); - if (FAILED(hr)) { - return {}; - } - WCHAR name[kNameMaxSize]; - DWORD name_len = 0; - ASSEMBLYMETADATA assembly_metadata{}; - DWORD assembly_flags = 0; - const ModuleID placeholder_module_id = 0; - - hr = assembly_import->GetAssemblyProps(current, nullptr, nullptr, nullptr, - name, kNameMaxSize, &name_len, - &assembly_metadata, &assembly_flags); - if (FAILED(hr) || name_len == 0) { - return {}; - } - return AssemblyMetadata( - placeholder_module_id, name, current, assembly_metadata.usMajorVersion, - assembly_metadata.usMinorVersion, assembly_metadata.usBuildNumber, - assembly_metadata.usRevisionNumber); +AssemblyMetadata GetAssemblyImportMetadata(const ComPtr& assembly_import) +{ + mdAssembly current = mdAssemblyNil; + auto hr = assembly_import->GetAssemblyFromScope(¤t); + if (FAILED(hr)) + { + return {}; + } + WCHAR name[kNameMaxSize]; + DWORD name_len = 0; + ASSEMBLYMETADATA assembly_metadata{}; + DWORD assembly_flags = 0; + const ModuleID placeholder_module_id = 0; + + hr = assembly_import->GetAssemblyProps(current, nullptr, nullptr, nullptr, name, kNameMaxSize, &name_len, + &assembly_metadata, &assembly_flags); + if (FAILED(hr) || name_len == 0) + { + return {}; + } + return AssemblyMetadata(placeholder_module_id, name, current, assembly_metadata.usMajorVersion, + assembly_metadata.usMinorVersion, assembly_metadata.usBuildNumber, + assembly_metadata.usRevisionNumber); } -AssemblyMetadata GetReferencedAssemblyMetadata( - const ComPtr& assembly_import, - const mdAssemblyRef& assembly_ref) { - WCHAR name[kNameMaxSize]; - DWORD name_len = 0; - ASSEMBLYMETADATA assembly_metadata{}; - DWORD assembly_flags = 0; - const ModuleID module_id_placeholder = 0; - const auto hr = assembly_import->GetAssemblyRefProps( - assembly_ref, nullptr, nullptr, name, kNameMaxSize, &name_len, - &assembly_metadata, nullptr, nullptr, &assembly_flags); - if (FAILED(hr) || name_len == 0) { - return {}; - } - return AssemblyMetadata( - module_id_placeholder, name, assembly_ref, - assembly_metadata.usMajorVersion, assembly_metadata.usMinorVersion, - assembly_metadata.usBuildNumber, assembly_metadata.usRevisionNumber); +AssemblyMetadata GetReferencedAssemblyMetadata(const ComPtr& assembly_import, + const mdAssemblyRef& assembly_ref) +{ + WCHAR name[kNameMaxSize]; + DWORD name_len = 0; + ASSEMBLYMETADATA assembly_metadata{}; + DWORD assembly_flags = 0; + const ModuleID module_id_placeholder = 0; + const auto hr = assembly_import->GetAssemblyRefProps(assembly_ref, nullptr, nullptr, name, kNameMaxSize, &name_len, + &assembly_metadata, nullptr, nullptr, &assembly_flags); + if (FAILED(hr) || name_len == 0) + { + return {}; + } + return AssemblyMetadata(module_id_placeholder, name, assembly_ref, assembly_metadata.usMajorVersion, + assembly_metadata.usMinorVersion, assembly_metadata.usBuildNumber, + assembly_metadata.usRevisionNumber); } -std::vector GetSignatureByteRepresentation( - ULONG signature_length, PCCOR_SIGNATURE raw_signature) { - std::vector signature_data(signature_length); - for (ULONG i = 0; i < signature_length; i++) { - signature_data[i] = raw_signature[i]; - } +std::vector GetSignatureByteRepresentation(ULONG signature_length, PCCOR_SIGNATURE raw_signature) +{ + std::vector signature_data(signature_length); + for (ULONG i = 0; i < signature_length; i++) + { + signature_data[i] = raw_signature[i]; + } - return signature_data; + return signature_data; } -FunctionInfo GetFunctionInfo(const ComPtr& metadata_import, const mdToken& token) { - mdToken parent_token = mdTokenNil; - mdToken method_spec_token = mdTokenNil; - mdToken method_def_token = mdTokenNil; - WCHAR function_name[kNameMaxSize]{}; - DWORD function_name_len = 0; - - PCCOR_SIGNATURE raw_signature; - ULONG raw_signature_len; - BOOL is_generic = false; - std::vector final_signature_bytes; - std::vector method_spec_signature; - - HRESULT hr = E_FAIL; - const auto token_type = TypeFromToken(token); - switch (token_type) { - case mdtMemberRef: - hr = metadata_import->GetMemberRefProps( - token, &parent_token, function_name, kNameMaxSize, &function_name_len, - &raw_signature, &raw_signature_len); - break; - case mdtMethodDef: - hr = metadata_import->GetMemberProps( - token, &parent_token, function_name, kNameMaxSize, &function_name_len, - nullptr, &raw_signature, &raw_signature_len, nullptr, nullptr, - nullptr, nullptr, nullptr); - break; - case mdtMethodSpec: { - hr = metadata_import->GetMethodSpecProps( - token, &parent_token, &raw_signature, &raw_signature_len); - is_generic = true; - if (FAILED(hr)) { +FunctionInfo GetFunctionInfo(const ComPtr& metadata_import, const mdToken& token) +{ + mdToken parent_token = mdTokenNil; + mdToken method_spec_token = mdTokenNil; + mdToken method_def_token = mdTokenNil; + WCHAR function_name[kNameMaxSize]{}; + DWORD function_name_len = 0; + + PCCOR_SIGNATURE raw_signature; + ULONG raw_signature_len; + BOOL is_generic = false; + std::vector final_signature_bytes; + std::vector method_spec_signature; + + HRESULT hr = E_FAIL; + const auto token_type = TypeFromToken(token); + switch (token_type) + { + case mdtMemberRef: + hr = metadata_import->GetMemberRefProps(token, &parent_token, function_name, kNameMaxSize, + &function_name_len, &raw_signature, &raw_signature_len); + break; + case mdtMethodDef: + hr = metadata_import->GetMemberProps(token, &parent_token, function_name, kNameMaxSize, &function_name_len, + nullptr, &raw_signature, &raw_signature_len, nullptr, nullptr, nullptr, + nullptr, nullptr); + break; + case mdtMethodSpec: + { + hr = metadata_import->GetMethodSpecProps(token, &parent_token, &raw_signature, &raw_signature_len); + is_generic = true; + if (FAILED(hr)) + { + return {}; + } + const auto generic_info = GetFunctionInfo(metadata_import, parent_token); + final_signature_bytes = generic_info.signature.data; + method_spec_signature = GetSignatureByteRepresentation(raw_signature_len, raw_signature); + std::memcpy(function_name, generic_info.name.c_str(), sizeof(WCHAR) * (generic_info.name.length() + 1)); + function_name_len = DWORD(generic_info.name.length() + 1); + method_spec_token = token; + method_def_token = generic_info.id; + } + break; + default: + Warn("[trace::GetFunctionInfo] unknown token type: {}", token_type); + return {}; + } + if (FAILED(hr) || function_name_len == 0) + { return {}; - } - const auto generic_info = GetFunctionInfo(metadata_import, parent_token); - final_signature_bytes = generic_info.signature.data; - method_spec_signature = - GetSignatureByteRepresentation(raw_signature_len, raw_signature); - std::memcpy(function_name, generic_info.name.c_str(), - sizeof(WCHAR) * (generic_info.name.length() + 1)); - function_name_len = DWORD(generic_info.name.length() + 1); - method_spec_token = token; - method_def_token = generic_info.id; - } break; - default: - Warn("[trace::GetFunctionInfo] unknown token type: {}", token_type); - return {}; - } - if (FAILED(hr) || function_name_len == 0) { - return {}; - } - - // parent_token could be: TypeDef, TypeRef, TypeSpec, ModuleRef, MethodDef - const auto type_info = GetTypeInfo(metadata_import, parent_token); - - if (is_generic) { - // use the generic constructor and feed both method signatures - return {method_spec_token, - WSTRING(function_name), - type_info, - MethodSignature(final_signature_bytes), - MethodSignature(method_spec_signature), - method_def_token, FunctionMethodSignature(raw_signature, raw_signature_len)}; - } - - final_signature_bytes = - GetSignatureByteRepresentation(raw_signature_len, raw_signature); - - return {token, WSTRING(function_name), type_info, - MethodSignature(final_signature_bytes), - FunctionMethodSignature(raw_signature, raw_signature_len)}; -} + } -ModuleInfo GetModuleInfo(ICorProfilerInfo4* info, const ModuleID& module_id) { - const DWORD module_path_size = 260; - WCHAR module_path[module_path_size]{}; - DWORD module_path_len = 0; - LPCBYTE base_load_address; - AssemblyID assembly_id = 0; - DWORD module_flags = 0; - const HRESULT hr = info->GetModuleInfo2( - module_id, &base_load_address, module_path_size, &module_path_len, - module_path, &assembly_id, &module_flags); - if (FAILED(hr) || module_path_len == 0) { - return {}; - } - return {module_id, WSTRING(module_path), GetAssemblyInfo(info, assembly_id), - module_flags}; -} + // parent_token could be: TypeDef, TypeRef, TypeSpec, ModuleRef, MethodDef + const auto type_info = GetTypeInfo(metadata_import, parent_token); + + if (is_generic) + { + // use the generic constructor and feed both method signatures + return {method_spec_token, + WSTRING(function_name), + type_info, + MethodSignature(final_signature_bytes), + MethodSignature(method_spec_signature), + method_def_token, + FunctionMethodSignature(raw_signature, raw_signature_len)}; + } -TypeInfo GetTypeInfo(const ComPtr& metadata_import, - const mdToken& token) { - mdToken parent_token = mdTokenNil; - TypeInfo* parentTypeInfo = nullptr; - mdToken parent_type_token = mdTokenNil; - WCHAR type_name[kNameMaxSize]{}; - DWORD type_name_len = 0; - DWORD type_flags; - TypeInfo* extendsInfo = nullptr; - mdToken type_extends = mdTokenNil; - bool type_valueType = false; - bool type_isGeneric = false; - - HRESULT hr = E_FAIL; - const auto token_type = TypeFromToken(token); - - switch (token_type) { - case mdtTypeDef: - hr = metadata_import->GetTypeDefProps(token, type_name, kNameMaxSize, - &type_name_len, &type_flags, - &type_extends); - - metadata_import->GetNestedClassProps(token, &parent_type_token); - if (parent_type_token != mdTokenNil) { - parentTypeInfo = new TypeInfo(GetTypeInfo(metadata_import, parent_type_token)); - } - - if (type_extends != mdTokenNil) { - extendsInfo = new TypeInfo(GetTypeInfo(metadata_import, type_extends)); - type_valueType = extendsInfo->name == WStr("System.ValueType") || - extendsInfo->name == WStr("System.Enum"); - } - break; - case mdtTypeRef: - hr = metadata_import->GetTypeRefProps(token, &parent_token, type_name, - kNameMaxSize, &type_name_len); - break; - case mdtTypeSpec: { - PCCOR_SIGNATURE signature{}; - ULONG signature_length{}; - - hr = metadata_import->GetTypeSpecFromToken(token, &signature, - &signature_length); - - if (FAILED(hr) || signature_length < 3) { - return {}; - } - - if (signature[0] & ELEMENT_TYPE_GENERICINST) { - mdToken type_token; - CorSigUncompressToken(&signature[2], &type_token); - const auto baseType = GetTypeInfo(metadata_import, type_token); - return {baseType.id, baseType.name, token, token_type, - baseType.extend_from, - baseType.valueType, - baseType.isGeneric, - baseType.parent_type}; - } - } break; - case mdtModuleRef: - metadata_import->GetModuleRefProps(token, type_name, kNameMaxSize, &type_name_len); - break; - case mdtMemberRef: - return GetFunctionInfo(metadata_import, token).type; - break; - case mdtMethodDef: - return GetFunctionInfo(metadata_import, token).type; - break; - } - if (FAILED(hr) || type_name_len == 0) { - return {}; - } - - const auto type_name_string = WSTRING(type_name); - const auto generic_token_index = type_name_string.rfind(WStr("`")); - if (generic_token_index != std::string::npos) { - const auto idxFromRight = type_name_string.length() - generic_token_index - 1; - type_isGeneric = idxFromRight == 1 || idxFromRight == 2; - } - - return { token, type_name_string, mdTypeSpecNil, token_type, extendsInfo, type_valueType, type_isGeneric, parentTypeInfo }; + final_signature_bytes = GetSignatureByteRepresentation(raw_signature_len, raw_signature); + + return {token, WSTRING(function_name), type_info, MethodSignature(final_signature_bytes), + FunctionMethodSignature(raw_signature, raw_signature_len)}; } -mdAssemblyRef FindAssemblyRef( - const ComPtr& assembly_import, - const WSTRING& assembly_name) { - for (mdAssemblyRef assembly_ref : EnumAssemblyRefs(assembly_import)) { - if (GetReferencedAssemblyMetadata(assembly_import, assembly_ref).name == - assembly_name) { - return assembly_ref; +ModuleInfo GetModuleInfo(ICorProfilerInfo4* info, const ModuleID& module_id) +{ + const DWORD module_path_size = 260; + WCHAR module_path[module_path_size]{}; + DWORD module_path_len = 0; + LPCBYTE base_load_address; + AssemblyID assembly_id = 0; + DWORD module_flags = 0; + const HRESULT hr = info->GetModuleInfo2(module_id, &base_load_address, module_path_size, &module_path_len, + module_path, &assembly_id, &module_flags); + if (FAILED(hr) || module_path_len == 0) + { + return {}; } - } - return mdAssemblyRefNil; + return {module_id, WSTRING(module_path), GetAssemblyInfo(info, assembly_id), module_flags}; } -std::vector FilterIntegrationsByName( - const std::vector& integrations, - const std::vector& disabled_integration_names) { - std::vector enabled; - - for (auto& i : integrations) { - bool disabled = false; - for (auto& disabled_integration : disabled_integration_names) { - if (i.integration_name == disabled_integration) { - // this integration is disabled, skip it - disabled = true; +TypeInfo GetTypeInfo(const ComPtr& metadata_import, const mdToken& token) +{ + mdToken parent_token = mdTokenNil; + TypeInfo* parentTypeInfo = nullptr; + mdToken parent_type_token = mdTokenNil; + WCHAR type_name[kNameMaxSize]{}; + DWORD type_name_len = 0; + DWORD type_flags; + TypeInfo* extendsInfo = nullptr; + mdToken type_extends = mdTokenNil; + bool type_valueType = false; + bool type_isGeneric = false; + + HRESULT hr = E_FAIL; + const auto token_type = TypeFromToken(token); + + switch (token_type) + { + case mdtTypeDef: + hr = metadata_import->GetTypeDefProps(token, type_name, kNameMaxSize, &type_name_len, &type_flags, + &type_extends); + + metadata_import->GetNestedClassProps(token, &parent_type_token); + if (parent_type_token != mdTokenNil) + { + parentTypeInfo = new TypeInfo(GetTypeInfo(metadata_import, parent_type_token)); + } + + if (type_extends != mdTokenNil) + { + extendsInfo = new TypeInfo(GetTypeInfo(metadata_import, type_extends)); + type_valueType = + extendsInfo->name == WStr("System.ValueType") || extendsInfo->name == WStr("System.Enum"); + } + break; + case mdtTypeRef: + hr = metadata_import->GetTypeRefProps(token, &parent_token, type_name, kNameMaxSize, &type_name_len); + break; + case mdtTypeSpec: + { + PCCOR_SIGNATURE signature{}; + ULONG signature_length{}; + + hr = metadata_import->GetTypeSpecFromToken(token, &signature, &signature_length); + + if (FAILED(hr) || signature_length < 3) + { + return {}; + } + + if (signature[0] & ELEMENT_TYPE_GENERICINST) + { + mdToken type_token; + CorSigUncompressToken(&signature[2], &type_token); + const auto baseType = GetTypeInfo(metadata_import, type_token); + return {baseType.id, baseType.name, token, + token_type, baseType.extend_from, baseType.valueType, + baseType.isGeneric, baseType.parent_type}; + } + } break; - } + case mdtModuleRef: + metadata_import->GetModuleRefProps(token, type_name, kNameMaxSize, &type_name_len); + break; + case mdtMemberRef: + return GetFunctionInfo(metadata_import, token).type; + break; + case mdtMethodDef: + return GetFunctionInfo(metadata_import, token).type; + break; + } + if (FAILED(hr) || type_name_len == 0) + { + return {}; } - if (!disabled) { - enabled.push_back(i); + const auto type_name_string = WSTRING(type_name); + const auto generic_token_index = type_name_string.rfind(WStr("`")); + if (generic_token_index != std::string::npos) + { + const auto idxFromRight = type_name_string.length() - generic_token_index - 1; + type_isGeneric = idxFromRight == 1 || idxFromRight == 2; } - } - return enabled; + return {token, type_name_string, mdTypeSpecNil, token_type, + extendsInfo, type_valueType, type_isGeneric, parentTypeInfo}; } -std::vector FlattenIntegrations( - const std::vector& integrations, - bool is_calltarget_enabled) { - std::vector flattened; - - for (auto& i : integrations) { - for (auto& mr : i.method_replacements) { - const auto isCallTargetIntegration = - mr.wrapper_method.action == calltarget_modification_action; - - if (is_calltarget_enabled && isCallTargetIntegration) { - flattened.emplace_back(i.integration_name, mr); - } else if (!is_calltarget_enabled && !isCallTargetIntegration) { - flattened.emplace_back(i.integration_name, mr); - } +mdAssemblyRef FindAssemblyRef(const ComPtr& assembly_import, const WSTRING& assembly_name) +{ + for (mdAssemblyRef assembly_ref : EnumAssemblyRefs(assembly_import)) + { + if (GetReferencedAssemblyMetadata(assembly_import, assembly_ref).name == assembly_name) + { + return assembly_ref; + } } - } - - return flattened; + return mdAssemblyRefNil; } -std::vector FilterIntegrationsByCaller( - const std::vector& integration_methods, - const AssemblyInfo assembly) { - std::vector enabled; +std::vector FilterIntegrationsByName(const std::vector& integrations, + const std::vector& disabled_integration_names) +{ + std::vector enabled; + + for (auto& i : integrations) + { + bool disabled = false; + for (auto& disabled_integration : disabled_integration_names) + { + if (i.integration_name == disabled_integration) + { + // this integration is disabled, skip it + disabled = true; + break; + } + } - for (auto& i : integration_methods) { - if (i.replacement.caller_method.assembly.name.empty() || - i.replacement.caller_method.assembly.name == assembly.name) { - enabled.push_back(i); + if (!disabled) + { + enabled.push_back(i); + } } - } - return enabled; + return enabled; } -bool AssemblyMeetsIntegrationRequirements( - const AssemblyMetadata metadata, - const MethodReplacement method_replacement) { - const auto target = method_replacement.target_method; - - if (target.assembly.name != metadata.name) { - // not the expected assembly - return false; - } +std::vector FlattenIntegrations(const std::vector& integrations, + bool is_calltarget_enabled) +{ + std::vector flattened; - if (target.min_version > metadata.version) { - return false; - } + for (auto& i : integrations) + { + for (auto& mr : i.method_replacements) + { + const auto isCallTargetIntegration = mr.wrapper_method.action == calltarget_modification_action; - if (target.max_version < metadata.version) { - return false; - } + if (is_calltarget_enabled && isCallTargetIntegration) + { + flattened.emplace_back(i.integration_name, mr); + } + else if (!is_calltarget_enabled && !isCallTargetIntegration) + { + flattened.emplace_back(i.integration_name, mr); + } + } + } - return true; + return flattened; } -std::vector FilterIntegrationsByTarget( - const std::vector& integration_methods, - const ComPtr& assembly_import) { - std::vector enabled; - - const auto assembly_metadata = GetAssemblyImportMetadata(assembly_import); - - for (auto& i : integration_methods) { - bool found = false; - if (AssemblyMeetsIntegrationRequirements(assembly_metadata, i.replacement)) { - found = true; - } else { - for (auto& assembly_ref : EnumAssemblyRefs(assembly_import)) { - const auto metadata_ref = GetReferencedAssemblyMetadata(assembly_import, assembly_ref); - if (AssemblyMeetsIntegrationRequirements(metadata_ref, i.replacement)) { - found = true; - break; +std::vector FilterIntegrationsByCaller(const std::vector& integration_methods, + const AssemblyInfo assembly) +{ + std::vector enabled; + + for (auto& i : integration_methods) + { + if (i.replacement.caller_method.assembly.name.empty() || + i.replacement.caller_method.assembly.name == assembly.name) + { + enabled.push_back(i); } - } } - if (found) { - enabled.push_back(i); - } - } - - return enabled; + return enabled; } -std::vector FilterIntegrationsByTargetAssemblyName( - const std::vector& integration_methods, - const std::vector& excluded_assembly_names) { - std::vector methods; - - for (auto& i : integration_methods) { - bool assembly_excluded = false; +bool AssemblyMeetsIntegrationRequirements(const AssemblyMetadata metadata, const MethodReplacement method_replacement) +{ + const auto target = method_replacement.target_method; - for (auto& excluded_assembly_name : excluded_assembly_names) { - if (i.replacement.target_method.assembly.name == excluded_assembly_name) { - assembly_excluded = true; - break; - } + if (target.assembly.name != metadata.name) + { + // not the expected assembly + return false; } - if (!assembly_excluded) { - methods.emplace_back(i); + if (target.min_version > metadata.version) + { + return false; } - } - - return methods; -} - -mdMethodSpec DefineMethodSpec(const ComPtr& metadata_emit, - const mdToken& token, - const MethodSignature& signature) { - mdMethodSpec spec = mdMethodSpecNil; - auto hr = metadata_emit->DefineMethodSpec( - token, signature.data.data(), ULONG(signature.data.size()), &spec); - if (FAILED(hr)) { - Warn("[DefineMethodSpec] failed to define method spec"); - } - return spec; -} - -TypeInfo RetrieveTypeForSignature( - const ComPtr& metadata_import, - const FunctionInfo& function_info, const size_t current_index, - ULONG& token_length) { - mdToken type_token; - const auto type_token_start = - PCCOR_SIGNATURE(&function_info.signature.data[current_index]); - token_length = CorSigUncompressToken(type_token_start, &type_token); - auto type_data = GetTypeInfo(metadata_import, type_token); - return type_data; -} -bool TryParseSignatureTypes(const ComPtr& metadata_import, - const FunctionInfo& function_info, - std::vector& signature_result) { - try { - const auto signature_size = function_info.signature.data.size(); - const auto generic_count = function_info.signature.NumberOfTypeArguments(); - const auto param_count = function_info.signature.NumberOfArguments(); - size_t current_index = 2; // Where the parameters actually start - - if (generic_count > 0) { - current_index++; // offset by one because the method is generic + if (target.max_version < metadata.version) + { + return false; } - const auto expected_number_of_types = param_count + 1; - size_t current_type_index = 0; - std::vector type_names(expected_number_of_types); - - std::stack generic_arg_stack; - WSTRING append_to_type = WStr(""); - WSTRING current_type_name = WStr(""); - - for (; current_index < signature_size; current_index++) { - mdToken type_token; - ULONG token_length; - auto param_piece = function_info.signature.data[current_index]; - const auto cor_element_type = CorElementType(param_piece); - - switch (cor_element_type) { - case ELEMENT_TYPE_VOID: { - current_type_name.append(WStr("System.Void")); - break; - } - - case ELEMENT_TYPE_BOOLEAN: { - current_type_name.append(WStr("System.Boolean")); - break; - } - - case ELEMENT_TYPE_CHAR: { - current_type_name.append(WStr("System.Char16")); - break; - } + return true; +} - case ELEMENT_TYPE_I1: { - current_type_name.append(WStr("System.SByte")); - break; - } +std::vector FilterIntegrationsByTarget(const std::vector& integration_methods, + const ComPtr& assembly_import) +{ + std::vector enabled; - case ELEMENT_TYPE_U1: { - current_type_name.append(WStr("System.Byte")); - break; - } + const auto assembly_metadata = GetAssemblyImportMetadata(assembly_import); - case ELEMENT_TYPE_I2: { - current_type_name.append(WStr("System.Int16")); - break; + for (auto& i : integration_methods) + { + bool found = false; + if (AssemblyMeetsIntegrationRequirements(assembly_metadata, i.replacement)) + { + found = true; } - - case ELEMENT_TYPE_U2: { - current_type_name.append(WStr("System.UInt16")); - break; + else + { + for (auto& assembly_ref : EnumAssemblyRefs(assembly_import)) + { + const auto metadata_ref = GetReferencedAssemblyMetadata(assembly_import, assembly_ref); + if (AssemblyMeetsIntegrationRequirements(metadata_ref, i.replacement)) + { + found = true; + break; + } + } } - case ELEMENT_TYPE_I4: { - current_type_name.append(WStr("System.Int32")); - break; + if (found) + { + enabled.push_back(i); } + } - case ELEMENT_TYPE_U4: { - current_type_name.append(WStr("System.UInt32")); - break; - } + return enabled; +} - case ELEMENT_TYPE_I8: { - current_type_name.append(WStr("System.Int64")); - break; +std::vector +FilterIntegrationsByTargetAssemblyName(const std::vector& integration_methods, + const std::vector& excluded_assembly_names) +{ + std::vector methods; + + for (auto& i : integration_methods) + { + bool assembly_excluded = false; + + for (auto& excluded_assembly_name : excluded_assembly_names) + { + if (i.replacement.target_method.assembly.name == excluded_assembly_name) + { + assembly_excluded = true; + break; + } } - case ELEMENT_TYPE_U8: { - current_type_name.append(WStr("System.UInt64")); - break; + if (!assembly_excluded) + { + methods.emplace_back(i); } + } - case ELEMENT_TYPE_R4: { - current_type_name.append(WStr("System.Single")); - break; - } + return methods; +} - case ELEMENT_TYPE_R8: { - current_type_name.append(WStr("System.Double")); - break; - } +mdMethodSpec DefineMethodSpec(const ComPtr& metadata_emit, const mdToken& token, + const MethodSignature& signature) +{ + mdMethodSpec spec = mdMethodSpecNil; + auto hr = metadata_emit->DefineMethodSpec(token, signature.data.data(), ULONG(signature.data.size()), &spec); + if (FAILED(hr)) + { + Warn("[DefineMethodSpec] failed to define method spec"); + } + return spec; +} - case ELEMENT_TYPE_STRING: { - current_type_name.append(WStr("System.String")); - break; - } +TypeInfo RetrieveTypeForSignature(const ComPtr& metadata_import, const FunctionInfo& function_info, + const size_t current_index, ULONG& token_length) +{ + mdToken type_token; + const auto type_token_start = PCCOR_SIGNATURE(&function_info.signature.data[current_index]); + token_length = CorSigUncompressToken(type_token_start, &type_token); + auto type_data = GetTypeInfo(metadata_import, type_token); + return type_data; +} - case ELEMENT_TYPE_OBJECT: { - current_type_name.append(WStr("System.Object")); - break; +bool TryParseSignatureTypes(const ComPtr& metadata_import, const FunctionInfo& function_info, + std::vector& signature_result) +{ + try + { + const auto signature_size = function_info.signature.data.size(); + const auto generic_count = function_info.signature.NumberOfTypeArguments(); + const auto param_count = function_info.signature.NumberOfArguments(); + size_t current_index = 2; // Where the parameters actually start + + if (generic_count > 0) + { + current_index++; // offset by one because the method is generic } - case ELEMENT_TYPE_VALUETYPE: - case ELEMENT_TYPE_CLASS: { - current_index++; - auto type_data = RetrieveTypeForSignature( - metadata_import, function_info, current_index, token_length); - - mdToken examined_type_token = type_data.id; - auto examined_type_name = type_data.name; - auto ongoing_type_name = examined_type_name; - - // check for whether this may be a nested class - while (examined_type_name.find_first_of(WStr(".")) == std::string::npos) { - // This may possibly be a nested class, check for the parent - mdToken potentialParentToken; - metadata_import->GetNestedClassProps(examined_type_token, - &potentialParentToken); - - if (potentialParentToken == mdTokenNil) { - break; + const auto expected_number_of_types = param_count + 1; + size_t current_type_index = 0; + std::vector type_names(expected_number_of_types); + + std::stack generic_arg_stack; + WSTRING append_to_type = WStr(""); + WSTRING current_type_name = WStr(""); + + for (; current_index < signature_size; current_index++) + { + mdToken type_token; + ULONG token_length; + auto param_piece = function_info.signature.data[current_index]; + const auto cor_element_type = CorElementType(param_piece); + + switch (cor_element_type) + { + case ELEMENT_TYPE_VOID: + { + current_type_name.append(WStr("System.Void")); + break; + } + + case ELEMENT_TYPE_BOOLEAN: + { + current_type_name.append(WStr("System.Boolean")); + break; + } + + case ELEMENT_TYPE_CHAR: + { + current_type_name.append(WStr("System.Char16")); + break; + } + + case ELEMENT_TYPE_I1: + { + current_type_name.append(WStr("System.SByte")); + break; + } + + case ELEMENT_TYPE_U1: + { + current_type_name.append(WStr("System.Byte")); + break; + } + + case ELEMENT_TYPE_I2: + { + current_type_name.append(WStr("System.Int16")); + break; + } + + case ELEMENT_TYPE_U2: + { + current_type_name.append(WStr("System.UInt16")); + break; + } + + case ELEMENT_TYPE_I4: + { + current_type_name.append(WStr("System.Int32")); + break; + } + + case ELEMENT_TYPE_U4: + { + current_type_name.append(WStr("System.UInt32")); + break; + } + + case ELEMENT_TYPE_I8: + { + current_type_name.append(WStr("System.Int64")); + break; + } + + case ELEMENT_TYPE_U8: + { + current_type_name.append(WStr("System.UInt64")); + break; + } + + case ELEMENT_TYPE_R4: + { + current_type_name.append(WStr("System.Single")); + break; + } + + case ELEMENT_TYPE_R8: + { + current_type_name.append(WStr("System.Double")); + break; + } + + case ELEMENT_TYPE_STRING: + { + current_type_name.append(WStr("System.String")); + break; + } + + case ELEMENT_TYPE_OBJECT: + { + current_type_name.append(WStr("System.Object")); + break; + } + + case ELEMENT_TYPE_VALUETYPE: + case ELEMENT_TYPE_CLASS: + { + current_index++; + auto type_data = + RetrieveTypeForSignature(metadata_import, function_info, current_index, token_length); + + mdToken examined_type_token = type_data.id; + auto examined_type_name = type_data.name; + auto ongoing_type_name = examined_type_name; + + // check for whether this may be a nested class + while (examined_type_name.find_first_of(WStr(".")) == std::string::npos) + { + // This may possibly be a nested class, check for the parent + mdToken potentialParentToken; + metadata_import->GetNestedClassProps(examined_type_token, &potentialParentToken); + + if (potentialParentToken == mdTokenNil) + { + break; + } + + auto nesting_type = GetTypeInfo(metadata_import, potentialParentToken); + + examined_type_token = nesting_type.id; + examined_type_name = nesting_type.name; + + ongoing_type_name = examined_type_name + WStr("+") + ongoing_type_name; + } + + // index will be moved up one on every loop + // handle tokens which have more than one byte + current_index += token_length - 1; + current_type_name.append(ongoing_type_name); + break; + } + + case ELEMENT_TYPE_SZARRAY: + { + append_to_type.append(WStr("[]")); + while (function_info.signature.data[(current_index + 1)] == ELEMENT_TYPE_SZARRAY) + { + append_to_type.append(WStr("[]")); + current_index++; + } + // Next will be the type of the array(s) + continue; + } + + case ELEMENT_TYPE_MVAR: + { + // We are likely parsing a standalone generic param + token_length = CorSigUncompressToken(PCCOR_SIGNATURE(&function_info.signature.data[current_index]), + &type_token); + current_type_name.append(WStr("T")); + current_index += token_length; + // TODO: implement conventions for generics (eg., TC1, TC2, TM1, TM2) + // current_type_name.append(std::to_wstring(type_token)); + break; + } + + case ELEMENT_TYPE_VAR: + { + // We are likely within a generic variant + token_length = CorSigUncompressToken(PCCOR_SIGNATURE(&function_info.signature.data[current_index]), + &type_token); + current_type_name.append(WStr("T")); + current_index += token_length; + // TODO: implement conventions for generics (eg., TC1, TC2, TM1, TM2) + // current_type_name.append(std::to_wstring(type_token)); + break; + } + + case ELEMENT_TYPE_GENERICINST: + { + // skip past generic type indicator token + current_index++; + // skip past actual generic type token (probably a class) + current_index++; + const auto generic_type_data = + RetrieveTypeForSignature(metadata_import, function_info, current_index, token_length); + auto type_name = generic_type_data.name; + current_type_name.append(type_name); + current_type_name.append(WStr("<")); // Begin generic args + + // Because we are starting a new generic, decrement any existing level + if (!generic_arg_stack.empty()) + { + generic_arg_stack.top()--; + } + + // figure out how many generic args this type has + const auto index_of_tick = type_name.find_last_of('`'); + auto num_args_text = ToString(type_name.substr(index_of_tick + 1)); + auto actual_arg_count = std::stoi(num_args_text, nullptr); + generic_arg_stack.push(actual_arg_count); + current_index += token_length; + // Next will be the variants + continue; + } + + case ELEMENT_TYPE_BYREF: + { + // TODO: This hasn't been encountered yet + current_type_name.append(WStr("ref")); + break; + } + + case ELEMENT_TYPE_END: + { + // we already handle the generic by counting args + continue; + } + + default: + { + // This is unexpected and we should report that, and not instrument + current_type_name.append(ToWSTRING(ToString(cor_element_type))); + break; + } } - auto nesting_type = - GetTypeInfo(metadata_import, potentialParentToken); - - examined_type_token = nesting_type.id; - examined_type_name = nesting_type.name; + if (!append_to_type.empty()) + { + current_type_name.append(append_to_type); + append_to_type = WStr(""); + } - ongoing_type_name = examined_type_name + WStr("+") + ongoing_type_name; - } + if (!generic_arg_stack.empty()) + { + // decrement this level's args + generic_arg_stack.top()--; - // index will be moved up one on every loop - // handle tokens which have more than one byte - current_index += token_length - 1; - current_type_name.append(ongoing_type_name); - break; - } + if (generic_arg_stack.top() > 0) + { + // we're in the middle of generic type args + current_type_name.append(WStr(", ")); + } + } - case ELEMENT_TYPE_SZARRAY: { - append_to_type.append(WStr("[]")); - while (function_info.signature.data[(current_index + 1)] == - ELEMENT_TYPE_SZARRAY) { - append_to_type.append(WStr("[]")); - current_index++; - } - // Next will be the type of the array(s) - continue; - } + while (!generic_arg_stack.empty() && generic_arg_stack.top() == 0) + { + // unwind the generics with no args left + generic_arg_stack.pop(); + current_type_name.append(WStr(">")); + + if (!generic_arg_stack.empty() && generic_arg_stack.top() > 0) + { + // We are in a nested generic and we need a comma to separate args + current_type_name.append(WStr(", ")); + } + } - case ELEMENT_TYPE_MVAR: { - // We are likely parsing a standalone generic param - token_length = CorSigUncompressToken( - PCCOR_SIGNATURE(&function_info.signature.data[current_index]), - &type_token); - current_type_name.append(WStr("T")); - current_index += token_length; - // TODO: implement conventions for generics (eg., TC1, TC2, TM1, TM2) - // current_type_name.append(std::to_wstring(type_token)); - break; - } + if (!generic_arg_stack.empty()) + { + continue; + } - case ELEMENT_TYPE_VAR: { - // We are likely within a generic variant - token_length = CorSigUncompressToken( - PCCOR_SIGNATURE(&function_info.signature.data[current_index]), - &type_token); - current_type_name.append(WStr("T")); - current_index += token_length; - // TODO: implement conventions for generics (eg., TC1, TC2, TM1, TM2) - // current_type_name.append(std::to_wstring(type_token)); - break; - } + if (current_type_index >= expected_number_of_types) + { + // We missed something, drop out for safety + return false; + } - case ELEMENT_TYPE_GENERICINST: { - // skip past generic type indicator token - current_index++; - // skip past actual generic type token (probably a class) - current_index++; - const auto generic_type_data = RetrieveTypeForSignature( - metadata_import, function_info, current_index, token_length); - auto type_name = generic_type_data.name; - current_type_name.append(type_name); - current_type_name.append(WStr("<")); // Begin generic args - - // Because we are starting a new generic, decrement any existing level - if (!generic_arg_stack.empty()) { - generic_arg_stack.top()--; - } - - // figure out how many generic args this type has - const auto index_of_tick = type_name.find_last_of('`'); - auto num_args_text = ToString(type_name.substr(index_of_tick + 1)); - auto actual_arg_count = std::stoi(num_args_text, nullptr); - generic_arg_stack.push(actual_arg_count); - current_index += token_length; - // Next will be the variants - continue; + type_names[current_type_index] = current_type_name; + current_type_name = WStr(""); + current_type_index++; } - case ELEMENT_TYPE_BYREF: { - // TODO: This hasn't been encountered yet - current_type_name.append(WStr("ref")); - break; - } + signature_result = type_names; + } + catch (...) + { + // TODO: Add precise exceptions and log + // We were unable to parse for some reason + // Return that we've failed + return false; + } - case ELEMENT_TYPE_END: { - // we already handle the generic by counting args - continue; - } + return true; +} - default: { - // This is unexpected and we should report that, and not instrument - current_type_name.append(ToWSTRING(ToString(cor_element_type))); - break; - } - } +HRESULT GetCorLibAssemblyRef(const ComPtr& assembly_emit, AssemblyProperty& corAssemblyProperty, + mdAssemblyRef* corlib_ref) +{ + if (corAssemblyProperty.ppbPublicKey != nullptr) + { + // the corlib module is already loaded, use that information to create the assembly ref + Debug("Using existing corlib reference: ", corAssemblyProperty.szName); + return assembly_emit->DefineAssemblyRef(corAssemblyProperty.ppbPublicKey, corAssemblyProperty.pcbPublicKey, + corAssemblyProperty.szName.c_str(), &corAssemblyProperty.pMetaData, + NULL, 0, 0, corlib_ref); + } + else + { + // Define an AssemblyRef to mscorlib, needed to create TypeRefs later + ASSEMBLYMETADATA metadata{}; + metadata.usMajorVersion = 4; + metadata.usMinorVersion = 0; + metadata.usBuildNumber = 0; + metadata.usRevisionNumber = 0; + BYTE public_key[] = {0xB7, 0x7A, 0x5C, 0x56, 0x19, 0x34, 0xE0, 0x89}; + return assembly_emit->DefineAssemblyRef(public_key, sizeof(public_key), WStr("mscorlib"), &metadata, NULL, 0, 0, + corlib_ref); + } +} - if (!append_to_type.empty()) { - current_type_name.append(append_to_type); - append_to_type = WStr(""); - } +bool ReturnTypeTokenforValueTypeElementType(PCCOR_SIGNATURE p_sig, const ComPtr& metadata_emit, + const ComPtr& assembly_emit, + AssemblyProperty& corAssemblyProperty, mdToken* ret_type_token) +{ + const auto cor_element_type = CorElementType(*p_sig); + WSTRING managed_type_name = WStr(""); - if (!generic_arg_stack.empty()) { - // decrement this level's args - generic_arg_stack.top()--; + switch (cor_element_type) + { + case ELEMENT_TYPE_VALUETYPE: + { + ULONG result; + result = CorSigUncompressToken(p_sig + 1, ret_type_token); + if (result == -1) + { + Warn("[trace::ReturnTypeTokenforElementType] ELEMENT_TYPE_VALUETYPE failed to find uncompress TypeRef " + "or " + "TypeDef"); + return false; + } - if (generic_arg_stack.top() > 0) { - // we're in the middle of generic type args - current_type_name.append(WStr(", ")); + return true; } - } - - while (!generic_arg_stack.empty() && generic_arg_stack.top() == 0) { - // unwind the generics with no args left - generic_arg_stack.pop(); - current_type_name.append(WStr(">")); - if (!generic_arg_stack.empty() && generic_arg_stack.top() > 0) { - // We are in a nested generic and we need a comma to separate args - current_type_name.append(WStr(", ")); - } - } + case ELEMENT_TYPE_VOID: // 0x01 // System.Void (struct) + managed_type_name = WStr("System.Void"); + break; + case ELEMENT_TYPE_BOOLEAN: // 0x02 // System.Boolean (struct) + managed_type_name = WStr("System.Boolean"); + break; + case ELEMENT_TYPE_CHAR: // 0x03 // System.Char (struct) + managed_type_name = WStr("System.Char"); + break; + case ELEMENT_TYPE_I1: // 0x04 // System.SByte (struct) + managed_type_name = WStr("System.SByte"); + break; + case ELEMENT_TYPE_U1: // 0x05 // System.Byte (struct) + managed_type_name = WStr("System.Byte"); + break; + case ELEMENT_TYPE_I2: // 0x06 // System.Int16 (struct) + managed_type_name = WStr("System.Int16"); + break; + case ELEMENT_TYPE_U2: // 0x07 // System.UInt16 (struct) + managed_type_name = WStr("System.UInt16"); + break; + case ELEMENT_TYPE_I4: // 0x08 // System.Int32 (struct) + managed_type_name = WStr("System.Int32"); + break; + case ELEMENT_TYPE_U4: // 0x09 // System.UInt32 (struct) + managed_type_name = WStr("System.UInt32"); + break; + case ELEMENT_TYPE_I8: // 0x0a // System.Int64 (struct) + managed_type_name = WStr("System.Int64"); + break; + case ELEMENT_TYPE_U8: // 0x0b // System.UInt64 (struct) + managed_type_name = WStr("System.UInt64"); + break; + case ELEMENT_TYPE_R4: // 0x0c // System.Single (struct) + managed_type_name = WStr("System.Single"); + break; + case ELEMENT_TYPE_R8: // 0x0d // System.Double (struct) + managed_type_name = WStr("System.Double"); + break; + case ELEMENT_TYPE_TYPEDBYREF: // 0X16 // System.TypedReference (struct) + managed_type_name = WStr("System.TypedReference"); + break; + case ELEMENT_TYPE_I: // 0x18 // System.IntPtr (struct) + managed_type_name = WStr("System.IntPtr"); + break; + case ELEMENT_TYPE_U: // 0x19 // System.UIntPtr (struct) + managed_type_name = WStr("System.UIntPtr"); + break; + default: + return false; + } - if (!generic_arg_stack.empty()) { - continue; - } + // Create reference to Mscorlib + mdModuleRef mscorlib_ref; + HRESULT hr; + hr = GetCorLibAssemblyRef(assembly_emit, corAssemblyProperty, &mscorlib_ref); - if (current_type_index >= expected_number_of_types) { - // We missed something, drop out for safety + if (FAILED(hr)) + { + Warn("[trace::ReturnTypeTokenforElementType] failed to define AssemblyRef to mscorlib"); return false; - } - - type_names[current_type_index] = current_type_name; - current_type_name = WStr(""); - current_type_index++; } - signature_result = type_names; - - } catch (...) { - // TODO: Add precise exceptions and log - // We were unable to parse for some reason - // Return that we've failed - return false; - } - - return true; -} - -HRESULT GetCorLibAssemblyRef(const ComPtr& assembly_emit, - AssemblyProperty& corAssemblyProperty, - mdAssemblyRef* corlib_ref) { - if (corAssemblyProperty.ppbPublicKey != nullptr) { - // the corlib module is already loaded, use that information to create the assembly ref - Debug("Using existing corlib reference: ", corAssemblyProperty.szName); - return assembly_emit->DefineAssemblyRef( - corAssemblyProperty.ppbPublicKey, - corAssemblyProperty.pcbPublicKey, - corAssemblyProperty.szName.c_str(), - &corAssemblyProperty.pMetaData, - NULL, 0, 0, corlib_ref); - } else { - // Define an AssemblyRef to mscorlib, needed to create TypeRefs later - ASSEMBLYMETADATA metadata{}; - metadata.usMajorVersion = 4; - metadata.usMinorVersion = 0; - metadata.usBuildNumber = 0; - metadata.usRevisionNumber = 0; - BYTE public_key[] = {0xB7, 0x7A, 0x5C, 0x56, 0x19, 0x34, 0xE0, 0x89}; - return assembly_emit->DefineAssemblyRef( - public_key, - sizeof(public_key), - WStr("mscorlib"), - &metadata, - NULL, 0, 0, corlib_ref); - } -} - -bool ReturnTypeTokenforValueTypeElementType(PCCOR_SIGNATURE p_sig, - const ComPtr& metadata_emit, - const ComPtr& assembly_emit, - AssemblyProperty& corAssemblyProperty, - mdToken* ret_type_token) { - const auto cor_element_type = CorElementType(*p_sig); - WSTRING managed_type_name = WStr(""); - - switch (cor_element_type) { - case ELEMENT_TYPE_VALUETYPE: { - ULONG result; - result = CorSigUncompressToken(p_sig + 1, ret_type_token); - if (result == -1) { - Warn("[trace::ReturnTypeTokenforElementType] ELEMENT_TYPE_VALUETYPE failed to find uncompress TypeRef or TypeDef"); + // Create/Get TypeRef to the listed type + if (managed_type_name == WStr("")) + { + Warn("[trace::ReturnTypeTokenforElementType] no managed type name given"); return false; - } - - return true; } - case ELEMENT_TYPE_VOID: // 0x01 // System.Void (struct) - managed_type_name = WStr("System.Void"); - break; - case ELEMENT_TYPE_BOOLEAN: // 0x02 // System.Boolean (struct) - managed_type_name = WStr("System.Boolean"); - break; - case ELEMENT_TYPE_CHAR: // 0x03 // System.Char (struct) - managed_type_name = WStr("System.Char"); - break; - case ELEMENT_TYPE_I1: // 0x04 // System.SByte (struct) - managed_type_name = WStr("System.SByte"); - break; - case ELEMENT_TYPE_U1: // 0x05 // System.Byte (struct) - managed_type_name = WStr("System.Byte"); - break; - case ELEMENT_TYPE_I2: // 0x06 // System.Int16 (struct) - managed_type_name = WStr("System.Int16"); - break; - case ELEMENT_TYPE_U2: // 0x07 // System.UInt16 (struct) - managed_type_name = WStr("System.UInt16"); - break; - case ELEMENT_TYPE_I4: // 0x08 // System.Int32 (struct) - managed_type_name = WStr("System.Int32"); - break; - case ELEMENT_TYPE_U4: // 0x09 // System.UInt32 (struct) - managed_type_name = WStr("System.UInt32"); - break; - case ELEMENT_TYPE_I8: // 0x0a // System.Int64 (struct) - managed_type_name = WStr("System.Int64"); - break; - case ELEMENT_TYPE_U8: // 0x0b // System.UInt64 (struct) - managed_type_name = WStr("System.UInt64"); - break; - case ELEMENT_TYPE_R4: // 0x0c // System.Single (struct) - managed_type_name = WStr("System.Single"); - break; - case ELEMENT_TYPE_R8: // 0x0d // System.Double (struct) - managed_type_name = WStr("System.Double"); - break; - case ELEMENT_TYPE_TYPEDBYREF: // 0X16 // System.TypedReference (struct) - managed_type_name = WStr("System.TypedReference"); - break; - case ELEMENT_TYPE_I: // 0x18 // System.IntPtr (struct) - managed_type_name = WStr("System.IntPtr"); - break; - case ELEMENT_TYPE_U: // 0x19 // System.UIntPtr (struct) - managed_type_name = WStr("System.UIntPtr"); - break; - default: - return false; - } - - // Create reference to Mscorlib - mdModuleRef mscorlib_ref; - HRESULT hr; - hr = GetCorLibAssemblyRef(assembly_emit, corAssemblyProperty, &mscorlib_ref); - - if (FAILED(hr)) { - Warn("[trace::ReturnTypeTokenforElementType] failed to define AssemblyRef to mscorlib"); - return false; - } + hr = metadata_emit->DefineTypeRefByName(mscorlib_ref, managed_type_name.c_str(), ret_type_token); - // Create/Get TypeRef to the listed type - if (managed_type_name == WStr("")) { - Warn("[trace::ReturnTypeTokenforElementType] no managed type name given"); - return false; - } + if (FAILED(hr)) + { + Warn("[trace::ReturnTypeTokenforElementType] unable to create type ref for managed_type_name=", + managed_type_name); + return false; + } - hr = metadata_emit->DefineTypeRefByName( - mscorlib_ref, managed_type_name.c_str(), ret_type_token); + return true; +} - if (FAILED(hr)) { - Warn("[trace::ReturnTypeTokenforElementType] unable to create type ref for managed_type_name=", managed_type_name); - return false; - } +bool ReturnTypeIsValueTypeOrGeneric(const ComPtr& metadata_import, + const ComPtr& metadata_emit, + const ComPtr& assembly_emit, + AssemblyProperty& corAssemblyProperty, const mdToken targetFunctionToken, + const MethodSignature targetFunctionSignature, mdToken* ret_type_token) +{ + + // MethodDefSig Format: [[HASTHIS] [EXPLICITTHIS]] (DEFAULT|VARARG|GENERIC GenParamCount) ParamCount RetType Param* + // [SENTINEL Param+] + const auto generic_count = targetFunctionSignature.NumberOfTypeArguments(); + size_t method_def_sig_index = generic_count == 0 ? 2 : 3; // Initialize the index to point to RetType + auto ret_type_byte = targetFunctionSignature.data[method_def_sig_index]; + const auto ret_type = CorElementType(ret_type_byte); + + switch (ret_type) + { + case ELEMENT_TYPE_VOID: + // No object is returned, so return false. + return false; - return true; -} + case ELEMENT_TYPE_GENERICINST: + { + // Format: GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * + // Example: Task. Return true if the type is a VALUETYPE + if (targetFunctionSignature.data[method_def_sig_index + 1] != ELEMENT_TYPE_VALUETYPE) + { + return false; + } -bool ReturnTypeIsValueTypeOrGeneric( - const ComPtr& metadata_import, - const ComPtr& metadata_emit, - const ComPtr& assembly_emit, - AssemblyProperty& corAssemblyProperty, - const mdToken targetFunctionToken, - const MethodSignature targetFunctionSignature, - mdToken* ret_type_token) { - - // MethodDefSig Format: [[HASTHIS] [EXPLICITTHIS]] (DEFAULT|VARARG|GENERIC GenParamCount) ParamCount RetType Param* [SENTINEL Param+] - const auto generic_count = targetFunctionSignature.NumberOfTypeArguments(); - size_t method_def_sig_index = generic_count == 0 ? 2 : 3; // Initialize the index to point to RetType - auto ret_type_byte = targetFunctionSignature.data[method_def_sig_index]; - const auto ret_type = CorElementType(ret_type_byte); - - switch (ret_type) { - case ELEMENT_TYPE_VOID: - // No object is returned, so return false. - return false; - - case ELEMENT_TYPE_GENERICINST: { - // Format: GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * - // Example: Task. Return true if the type is a VALUETYPE - if (targetFunctionSignature.data[method_def_sig_index + 1] != ELEMENT_TYPE_VALUETYPE) { - return false; - } + PCCOR_SIGNATURE p_start_byte = PCCOR_SIGNATURE(&targetFunctionSignature.data[method_def_sig_index]); + PCCOR_SIGNATURE p_end_byte = p_start_byte; + if (!ParseType(&p_end_byte)) + { + return false; + } - PCCOR_SIGNATURE p_start_byte = PCCOR_SIGNATURE(&targetFunctionSignature.data[method_def_sig_index]); - PCCOR_SIGNATURE p_end_byte = p_start_byte; - if (!ParseType(&p_end_byte)) { - return false; - } + size_t length = p_end_byte - p_start_byte; + HRESULT hr = metadata_emit->GetTokenFromTypeSpec(p_start_byte, (ULONG) length, ret_type_token); + return SUCCEEDED(hr); + } - size_t length = p_end_byte - p_start_byte; - HRESULT hr = metadata_emit->GetTokenFromTypeSpec(p_start_byte, (ULONG) length, ret_type_token); - return SUCCEEDED(hr); - } + case ELEMENT_TYPE_VAR: + case ELEMENT_TYPE_MVAR: + { + // Format: VAR number + // Format: MVAR number + + // Extract the number, which is an index into the generic type arguments of the method or the type + method_def_sig_index++; // Advance the current_index to point to "number" + ULONG generic_type_index; + if (CorSigUncompressData(PCCOR_SIGNATURE(&targetFunctionSignature.data[method_def_sig_index]), + &generic_type_index) == -1) + { + Warn("[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, + ": unable to read VAR|MVAR index"); + return false; + } - case ELEMENT_TYPE_VAR: - case ELEMENT_TYPE_MVAR: { - // Format: VAR number - // Format: MVAR number - - // Extract the number, which is an index into the generic type arguments of the method or the type - method_def_sig_index++; // Advance the current_index to point to "number" - ULONG generic_type_index; - if (CorSigUncompressData(PCCOR_SIGNATURE(&targetFunctionSignature.data[method_def_sig_index]), - &generic_type_index) == -1) { - Warn("[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, ": unable to read VAR|MVAR index"); - return false; - } + // Get the signature of the MethodSpec or the method's parent TypeSpec + // Each spec will clearly list the types used for the generic type variables + const auto token_type = TypeFromToken(targetFunctionToken); + mdToken parent_token = mdTokenNil; + HRESULT hr; + PCCOR_SIGNATURE spec_signature{}; + ULONG spec_signature_length{}; + + switch (token_type) + { + case mdtMemberRef: + // The compiler will never make method calls to generic methods without + // the generic context, so we never expect to hit this at + // run-time. If we are evaluating the MethodDef/MethodRef of a generic + // method return false because it is invalid. + if (generic_count > 0) + { + return false; + } + + hr = metadata_import->GetMemberRefProps(targetFunctionToken, &parent_token, nullptr, 0, nullptr, + nullptr, nullptr); + if (SUCCEEDED(hr)) + { + hr = metadata_import->GetTypeSpecFromToken(parent_token, &spec_signature, + &spec_signature_length); + } + break; + case mdtMethodDef: + // The compiler will never make method calls to generic methods without + // the generic context, so we never expect to hit this at + // run-time. If we are evaluating the MethodDef/MethodRef of a generic + // method return false because it is invalid. + if (generic_count > 0) + { + return false; + } + + hr = metadata_import->GetMemberProps(targetFunctionToken, &parent_token, nullptr, 0, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr); + if (SUCCEEDED(hr)) + { + hr = metadata_import->GetTypeSpecFromToken(parent_token, &spec_signature, + &spec_signature_length); + } + break; + case mdtMethodSpec: + hr = metadata_import->GetMethodSpecProps(targetFunctionToken, &parent_token, &spec_signature, + &spec_signature_length); + break; + default: + Warn("[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, + ": function token was not a MemberRef, MethodDef, or MethodSpec"); + return false; + } - // Get the signature of the MethodSpec or the method's parent TypeSpec - // Each spec will clearly list the types used for the generic type variables - const auto token_type = TypeFromToken(targetFunctionToken); - mdToken parent_token = mdTokenNil; - HRESULT hr; - PCCOR_SIGNATURE spec_signature{}; - ULONG spec_signature_length{}; + if (FAILED(hr)) + { + Warn("[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, + ": failed to get parent token or signature"); + return false; + } - switch (token_type) { - case mdtMemberRef: - // The compiler will never make method calls to generic methods without - // the generic context, so we never expect to hit this at - // run-time. If we are evaluating the MethodDef/MethodRef of a generic - // method return false because it is invalid. - if (generic_count > 0) { - return false; - } - - hr = metadata_import->GetMemberRefProps(targetFunctionToken, - &parent_token, nullptr, 0, - nullptr, nullptr, nullptr); - if (SUCCEEDED(hr)) { - hr = metadata_import->GetTypeSpecFromToken(parent_token, &spec_signature, - &spec_signature_length); - } - break; - case mdtMethodDef: - // The compiler will never make method calls to generic methods without - // the generic context, so we never expect to hit this at - // run-time. If we are evaluating the MethodDef/MethodRef of a generic - // method return false because it is invalid. - if (generic_count > 0) { - return false; - } - - hr = metadata_import->GetMemberProps( - targetFunctionToken, &parent_token, nullptr, 0, nullptr, - nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, - nullptr); - if (SUCCEEDED(hr)) { - hr = metadata_import->GetTypeSpecFromToken(parent_token, &spec_signature, - &spec_signature_length); - } - break; - case mdtMethodSpec: - hr = metadata_import->GetMethodSpecProps(targetFunctionToken, - &parent_token, &spec_signature, &spec_signature_length); - break; - default: - Warn("[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, ": function token was not a MemberRef, MethodDef, or MethodSpec"); - return false; - } + // Determine the index of GenArgCount in the signature + size_t parent_token_index; + if (token_type == mdtMemberRef || token_type == mdtMethodDef) + { + // TypeSpec Format: GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type Type* + // Skip over TypeDefOrRefEncoded by parsing the signature at index 2 + parent_token_index = 2; + mdToken dummy_token; + ULONG token_length = CorSigUncompressToken(&spec_signature[parent_token_index], &dummy_token); + parent_token_index += token_length; + } + else if (token_type == mdtMethodSpec) + { + // MethodSpec Format: GENRICINST GenArgCount Type Type* + parent_token_index = 1; + } + else + { + Warn("[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, ": token_type (", token_type, + ") not recognized"); + return false; + } - if (FAILED(hr)) { - Warn("[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, ": failed to get parent token or signature"); - return false; - } - - // Determine the index of GenArgCount in the signature - size_t parent_token_index; - if (token_type == mdtMemberRef || token_type == mdtMethodDef) { - // TypeSpec Format: GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type Type* - // Skip over TypeDefOrRefEncoded by parsing the signature at index 2 - parent_token_index = 2; - mdToken dummy_token; - ULONG token_length = CorSigUncompressToken( - &spec_signature[parent_token_index], &dummy_token); - parent_token_index += token_length; - } else if (token_type == mdtMethodSpec) { - // MethodSpec Format: GENRICINST GenArgCount Type Type* - parent_token_index = 1; - } else { - Warn("[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, ": token_type (", token_type , ") not recognized"); - return false; - } - - // Read the value of GenArgCount in the signature - ULONG num_generic_arguments; - parent_token_index += CorSigUncompressData( - &spec_signature[parent_token_index], &num_generic_arguments); - - // Get a pointer to first type after GenArgCount that we can increment to read the signature - PCCOR_SIGNATURE p_current_byte = spec_signature + parent_token_index; - - // Iterate to specified generic type argument index and return the appropriate class token or TypeSpec - for (size_t i = 0; i < num_generic_arguments; i++) { - if (i != generic_type_index) { - if (!ParseType(&p_current_byte)) { - Warn( - "[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, ": Unable to parse " - "generic type argument ", i, - "from signature of parent_token:", parent_token); - return false; - } - } else if (*p_current_byte == ELEMENT_TYPE_MVAR || - *p_current_byte == ELEMENT_TYPE_VAR) { - // The method was defined with a method-level generic type argument from the caller. Return the TypeSpec token for the `M#` MVAR description, or - // The method was defined with a type-level generic type argument from the caller. Return the TypeSpec token for the `T#` VAR description - hr = metadata_emit->GetTokenFromTypeSpec(p_current_byte, 2, - ret_type_token); - return SUCCEEDED(hr); - } else if (*p_current_byte == ELEMENT_TYPE_GENERICINST) { - // Format: GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * - // Example: Task. Return true if the type is a VALUETYPE - if (*(p_current_byte + 1) != ELEMENT_TYPE_VALUETYPE) { - return false; - } + // Read the value of GenArgCount in the signature + ULONG num_generic_arguments; + parent_token_index += CorSigUncompressData(&spec_signature[parent_token_index], &num_generic_arguments); + + // Get a pointer to first type after GenArgCount that we can increment to read the signature + PCCOR_SIGNATURE p_current_byte = spec_signature + parent_token_index; + + // Iterate to specified generic type argument index and return the appropriate class token or TypeSpec + for (size_t i = 0; i < num_generic_arguments; i++) + { + if (i != generic_type_index) + { + if (!ParseType(&p_current_byte)) + { + Warn("[trace::ReturnTypeIsValueTypeOrGeneric] element_type=", ret_type, + ": Unable to parse " + "generic type argument ", + i, "from signature of parent_token:", parent_token); + return false; + } + } + else if (*p_current_byte == ELEMENT_TYPE_MVAR || *p_current_byte == ELEMENT_TYPE_VAR) + { + // The method was defined with a method-level generic type argument from the caller. Return the + // TypeSpec token for the `M#` MVAR description, or The method was defined with a type-level generic + // type argument from the caller. Return the TypeSpec token for the `T#` VAR description + hr = metadata_emit->GetTokenFromTypeSpec(p_current_byte, 2, ret_type_token); + return SUCCEEDED(hr); + } + else if (*p_current_byte == ELEMENT_TYPE_GENERICINST) + { + // Format: GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * + // Example: Task. Return true if the type is a VALUETYPE + if (*(p_current_byte + 1) != ELEMENT_TYPE_VALUETYPE) + { + return false; + } + + PCCOR_SIGNATURE p_start_byte = p_current_byte; + PCCOR_SIGNATURE p_end_byte = p_start_byte; + if (!ParseType(&p_end_byte)) + { + return false; + } + + size_t length = p_end_byte - p_start_byte; + HRESULT hr = metadata_emit->GetTokenFromTypeSpec(p_start_byte, (ULONG) length, ret_type_token); + return SUCCEEDED(hr); + } + else + { + return ReturnTypeTokenforValueTypeElementType(p_current_byte, metadata_emit, assembly_emit, + corAssemblyProperty, ret_type_token); + } + } - PCCOR_SIGNATURE p_start_byte = p_current_byte; - PCCOR_SIGNATURE p_end_byte = p_start_byte; - if (!ParseType(&p_end_byte)) { return false; - } - - size_t length = p_end_byte - p_start_byte; - HRESULT hr = metadata_emit->GetTokenFromTypeSpec(p_start_byte, (ULONG) length, - ret_type_token); - return SUCCEEDED(hr); - } else { - return ReturnTypeTokenforValueTypeElementType( - p_current_byte, - metadata_emit, - assembly_emit, - corAssemblyProperty, - ret_type_token); } - } - return false; + default: + return ReturnTypeTokenforValueTypeElementType( + PCCOR_SIGNATURE(&targetFunctionSignature.data[method_def_sig_index]), metadata_emit, assembly_emit, + corAssemblyProperty, ret_type_token); } - - default: - return ReturnTypeTokenforValueTypeElementType( - PCCOR_SIGNATURE(&targetFunctionSignature.data[method_def_sig_index]), - metadata_emit, - assembly_emit, - corAssemblyProperty, - ret_type_token); - } } - // FunctionMethodArgument -int FunctionMethodArgument::GetTypeFlags(unsigned& elementType) const { - int flag = 0; - PCCOR_SIGNATURE pbCur = &pbBase[offset]; +int FunctionMethodArgument::GetTypeFlags(unsigned& elementType) const +{ + int flag = 0; + PCCOR_SIGNATURE pbCur = &pbBase[offset]; + + if (*pbCur == ELEMENT_TYPE_VOID) + { + elementType = ELEMENT_TYPE_VOID; + flag |= TypeFlagVoid; + return flag; + } + + if (*pbCur == ELEMENT_TYPE_BYREF) + { + pbCur++; + flag |= TypeFlagByRef; + } - if (*pbCur == ELEMENT_TYPE_VOID) { - elementType = ELEMENT_TYPE_VOID; - flag |= TypeFlagVoid; + elementType = *pbCur; + + switch (*pbCur) + { + case ELEMENT_TYPE_BOOLEAN: + case ELEMENT_TYPE_CHAR: + case ELEMENT_TYPE_I1: + case ELEMENT_TYPE_U1: + case ELEMENT_TYPE_U2: + case ELEMENT_TYPE_I2: + case ELEMENT_TYPE_I4: + case ELEMENT_TYPE_U4: + case ELEMENT_TYPE_I8: + case ELEMENT_TYPE_U8: + case ELEMENT_TYPE_R4: + case ELEMENT_TYPE_R8: + case ELEMENT_TYPE_I: + case ELEMENT_TYPE_U: + case ELEMENT_TYPE_VALUETYPE: + case ELEMENT_TYPE_MVAR: + case ELEMENT_TYPE_VAR: + flag |= TypeFlagBoxedType; + break; + case ELEMENT_TYPE_GENERICINST: + pbCur++; + if (*pbCur == ELEMENT_TYPE_VALUETYPE) + { + flag |= TypeFlagBoxedType; + } + break; + default: + break; + } return flag; - } - - if (*pbCur == ELEMENT_TYPE_BYREF) { - pbCur++; - flag |= TypeFlagByRef; - } - - elementType = *pbCur; - - switch (*pbCur) { - case ELEMENT_TYPE_BOOLEAN: - case ELEMENT_TYPE_CHAR: - case ELEMENT_TYPE_I1: - case ELEMENT_TYPE_U1: - case ELEMENT_TYPE_U2: - case ELEMENT_TYPE_I2: - case ELEMENT_TYPE_I4: - case ELEMENT_TYPE_U4: - case ELEMENT_TYPE_I8: - case ELEMENT_TYPE_U8: - case ELEMENT_TYPE_R4: - case ELEMENT_TYPE_R8: - case ELEMENT_TYPE_I: - case ELEMENT_TYPE_U: - case ELEMENT_TYPE_VALUETYPE: - case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_VAR: - flag |= TypeFlagBoxedType; - break; - case ELEMENT_TYPE_GENERICINST: - pbCur++; - if (*pbCur == ELEMENT_TYPE_VALUETYPE) { - flag |= TypeFlagBoxedType; - } - break; - default: - break; - } - return flag; } -mdToken FunctionMethodArgument::GetTypeTok(ComPtr& pEmit, mdAssemblyRef corLibRef) const { - mdToken token = mdTokenNil; - PCCOR_SIGNATURE pbCur = &pbBase[offset]; - const PCCOR_SIGNATURE pStart = pbCur; - - if (*pbCur == ELEMENT_TYPE_BYREF) { - pbCur++; - } - - switch (*pbCur) { - case ELEMENT_TYPE_BOOLEAN: - pEmit->DefineTypeRefByName(corLibRef, SystemBoolean, &token); - break; - case ELEMENT_TYPE_CHAR: - pEmit->DefineTypeRefByName(corLibRef, SystemChar, &token); - break; - case ELEMENT_TYPE_I1: - pEmit->DefineTypeRefByName(corLibRef, SystemSByte, &token); - break; - case ELEMENT_TYPE_U1: - pEmit->DefineTypeRefByName(corLibRef, SystemByte, &token); - break; - case ELEMENT_TYPE_U2: - pEmit->DefineTypeRefByName(corLibRef, SystemUInt16, &token); - break; - case ELEMENT_TYPE_I2: - pEmit->DefineTypeRefByName(corLibRef, SystemInt16, &token); - break; - case ELEMENT_TYPE_I4: - pEmit->DefineTypeRefByName(corLibRef, SystemInt32, &token); - break; - case ELEMENT_TYPE_U4: - pEmit->DefineTypeRefByName(corLibRef, SystemUInt32, &token); - break; - case ELEMENT_TYPE_I8: - pEmit->DefineTypeRefByName(corLibRef, SystemInt64, &token); - break; - case ELEMENT_TYPE_U8: - pEmit->DefineTypeRefByName(corLibRef, SystemUInt64, &token); - break; - case ELEMENT_TYPE_R4: - pEmit->DefineTypeRefByName(corLibRef, SystemSingle, &token); - break; - case ELEMENT_TYPE_R8: - pEmit->DefineTypeRefByName(corLibRef, SystemDouble, &token); - break; - case ELEMENT_TYPE_I: - pEmit->DefineTypeRefByName(corLibRef, SystemIntPtr, &token); - break; - case ELEMENT_TYPE_U: - pEmit->DefineTypeRefByName(corLibRef, SystemUIntPtr, &token); - break; - case ELEMENT_TYPE_STRING: - pEmit->DefineTypeRefByName(corLibRef, SystemString, &token); - break; - case ELEMENT_TYPE_OBJECT: - pEmit->DefineTypeRefByName(corLibRef, SystemObject, &token); - break; - case ELEMENT_TYPE_CLASS: - pbCur++; - token = CorSigUncompressToken(pbCur); - break; - case ELEMENT_TYPE_VALUETYPE: - pbCur++; - token = CorSigUncompressToken(pbCur); - break; - case ELEMENT_TYPE_GENERICINST: - case ELEMENT_TYPE_SZARRAY: - case ELEMENT_TYPE_MVAR: - case ELEMENT_TYPE_VAR: - pEmit->GetTokenFromTypeSpec( - pbCur, length - static_cast(pbCur - pStart), &token); - break; - default: - break; - } - return token; -} +mdToken FunctionMethodArgument::GetTypeTok(ComPtr& pEmit, mdAssemblyRef corLibRef) const +{ + mdToken token = mdTokenNil; + PCCOR_SIGNATURE pbCur = &pbBase[offset]; + const PCCOR_SIGNATURE pStart = pbCur; -WSTRING GetSigTypeTokName(PCCOR_SIGNATURE& pbCur, const ComPtr& pImport) { - WSTRING tokenName = WStr(""); - bool ref_flag = false; - if (*pbCur == ELEMENT_TYPE_BYREF) { - pbCur++; - ref_flag = true; - } - - switch (*pbCur) { - case ELEMENT_TYPE_BOOLEAN: - tokenName = SystemBoolean; - pbCur++; - break; - case ELEMENT_TYPE_CHAR: - tokenName = SystemChar; - pbCur++; - break; - case ELEMENT_TYPE_I1: - tokenName = SystemSByte; - pbCur++; - break; - case ELEMENT_TYPE_U1: - tokenName = SystemByte; - pbCur++; - break; - case ELEMENT_TYPE_U2: - tokenName = SystemUInt16; - pbCur++; - break; - case ELEMENT_TYPE_I2: - tokenName = SystemInt16; - pbCur++; - break; - case ELEMENT_TYPE_I4: - tokenName = SystemInt32; - pbCur++; - break; - case ELEMENT_TYPE_U4: - tokenName = SystemUInt32; - pbCur++; - break; - case ELEMENT_TYPE_I8: - tokenName = SystemInt64; - pbCur++; - break; - case ELEMENT_TYPE_U8: - tokenName = SystemUInt64; - pbCur++; - break; - case ELEMENT_TYPE_R4: - tokenName = SystemSingle; - pbCur++; - break; - case ELEMENT_TYPE_R8: - tokenName = SystemDouble; - pbCur++; - break; - case ELEMENT_TYPE_I: - tokenName = SystemIntPtr; - pbCur++; - break; - case ELEMENT_TYPE_U: - tokenName = SystemUIntPtr; - pbCur++; - break; - case ELEMENT_TYPE_STRING: - tokenName = SystemString; - pbCur++; - break; - case ELEMENT_TYPE_OBJECT: - tokenName = SystemObject; - pbCur++; - break; - case ELEMENT_TYPE_CLASS: - case ELEMENT_TYPE_VALUETYPE: { - pbCur++; - mdToken token; - pbCur += CorSigUncompressToken(pbCur, &token); - tokenName = GetTypeInfo(pImport, token).name; - break; + if (*pbCur == ELEMENT_TYPE_BYREF) + { + pbCur++; + } + + switch (*pbCur) + { + case ELEMENT_TYPE_BOOLEAN: + pEmit->DefineTypeRefByName(corLibRef, SystemBoolean, &token); + break; + case ELEMENT_TYPE_CHAR: + pEmit->DefineTypeRefByName(corLibRef, SystemChar, &token); + break; + case ELEMENT_TYPE_I1: + pEmit->DefineTypeRefByName(corLibRef, SystemSByte, &token); + break; + case ELEMENT_TYPE_U1: + pEmit->DefineTypeRefByName(corLibRef, SystemByte, &token); + break; + case ELEMENT_TYPE_U2: + pEmit->DefineTypeRefByName(corLibRef, SystemUInt16, &token); + break; + case ELEMENT_TYPE_I2: + pEmit->DefineTypeRefByName(corLibRef, SystemInt16, &token); + break; + case ELEMENT_TYPE_I4: + pEmit->DefineTypeRefByName(corLibRef, SystemInt32, &token); + break; + case ELEMENT_TYPE_U4: + pEmit->DefineTypeRefByName(corLibRef, SystemUInt32, &token); + break; + case ELEMENT_TYPE_I8: + pEmit->DefineTypeRefByName(corLibRef, SystemInt64, &token); + break; + case ELEMENT_TYPE_U8: + pEmit->DefineTypeRefByName(corLibRef, SystemUInt64, &token); + break; + case ELEMENT_TYPE_R4: + pEmit->DefineTypeRefByName(corLibRef, SystemSingle, &token); + break; + case ELEMENT_TYPE_R8: + pEmit->DefineTypeRefByName(corLibRef, SystemDouble, &token); + break; + case ELEMENT_TYPE_I: + pEmit->DefineTypeRefByName(corLibRef, SystemIntPtr, &token); + break; + case ELEMENT_TYPE_U: + pEmit->DefineTypeRefByName(corLibRef, SystemUIntPtr, &token); + break; + case ELEMENT_TYPE_STRING: + pEmit->DefineTypeRefByName(corLibRef, SystemString, &token); + break; + case ELEMENT_TYPE_OBJECT: + pEmit->DefineTypeRefByName(corLibRef, SystemObject, &token); + break; + case ELEMENT_TYPE_CLASS: + pbCur++; + token = CorSigUncompressToken(pbCur); + break; + case ELEMENT_TYPE_VALUETYPE: + pbCur++; + token = CorSigUncompressToken(pbCur); + break; + case ELEMENT_TYPE_GENERICINST: + case ELEMENT_TYPE_SZARRAY: + case ELEMENT_TYPE_MVAR: + case ELEMENT_TYPE_VAR: + pEmit->GetTokenFromTypeSpec(pbCur, length - static_cast(pbCur - pStart), &token); + break; + default: + break; } - case ELEMENT_TYPE_SZARRAY: { - pbCur++; - tokenName = GetSigTypeTokName(pbCur, pImport) + WStr("[]"); - break; + return token; +} + +WSTRING GetSigTypeTokName(PCCOR_SIGNATURE& pbCur, const ComPtr& pImport) +{ + WSTRING tokenName = WStr(""); + bool ref_flag = false; + if (*pbCur == ELEMENT_TYPE_BYREF) + { + pbCur++; + ref_flag = true; } - case ELEMENT_TYPE_GENERICINST: { - pbCur++; - tokenName = GetSigTypeTokName(pbCur, pImport); - tokenName += WStr("["); - ULONG num = 0; - pbCur += CorSigUncompressData(pbCur, &num); - for (ULONG i = 0; i < num; i++) { - tokenName += GetSigTypeTokName(pbCur, pImport); - if (i != num - 1) { - tokenName += WStr(","); + + switch (*pbCur) + { + case ELEMENT_TYPE_BOOLEAN: + tokenName = SystemBoolean; + pbCur++; + break; + case ELEMENT_TYPE_CHAR: + tokenName = SystemChar; + pbCur++; + break; + case ELEMENT_TYPE_I1: + tokenName = SystemSByte; + pbCur++; + break; + case ELEMENT_TYPE_U1: + tokenName = SystemByte; + pbCur++; + break; + case ELEMENT_TYPE_U2: + tokenName = SystemUInt16; + pbCur++; + break; + case ELEMENT_TYPE_I2: + tokenName = SystemInt16; + pbCur++; + break; + case ELEMENT_TYPE_I4: + tokenName = SystemInt32; + pbCur++; + break; + case ELEMENT_TYPE_U4: + tokenName = SystemUInt32; + pbCur++; + break; + case ELEMENT_TYPE_I8: + tokenName = SystemInt64; + pbCur++; + break; + case ELEMENT_TYPE_U8: + tokenName = SystemUInt64; + pbCur++; + break; + case ELEMENT_TYPE_R4: + tokenName = SystemSingle; + pbCur++; + break; + case ELEMENT_TYPE_R8: + tokenName = SystemDouble; + pbCur++; + break; + case ELEMENT_TYPE_I: + tokenName = SystemIntPtr; + pbCur++; + break; + case ELEMENT_TYPE_U: + tokenName = SystemUIntPtr; + pbCur++; + break; + case ELEMENT_TYPE_STRING: + tokenName = SystemString; + pbCur++; + break; + case ELEMENT_TYPE_OBJECT: + tokenName = SystemObject; + pbCur++; + break; + case ELEMENT_TYPE_CLASS: + case ELEMENT_TYPE_VALUETYPE: + { + pbCur++; + mdToken token; + pbCur += CorSigUncompressToken(pbCur, &token); + tokenName = GetTypeInfo(pImport, token).name; + break; } - } - tokenName += WStr("]"); - break; - } - case ELEMENT_TYPE_MVAR: { - pbCur++; - ULONG num = 0; - pbCur += CorSigUncompressData(pbCur, &num); - tokenName = WStr("!!") + ToWSTRING(std::to_string(num)); - break; + case ELEMENT_TYPE_SZARRAY: + { + pbCur++; + tokenName = GetSigTypeTokName(pbCur, pImport) + WStr("[]"); + break; + } + case ELEMENT_TYPE_GENERICINST: + { + pbCur++; + tokenName = GetSigTypeTokName(pbCur, pImport); + tokenName += WStr("["); + ULONG num = 0; + pbCur += CorSigUncompressData(pbCur, &num); + for (ULONG i = 0; i < num; i++) + { + tokenName += GetSigTypeTokName(pbCur, pImport); + if (i != num - 1) + { + tokenName += WStr(","); + } + } + tokenName += WStr("]"); + break; + } + case ELEMENT_TYPE_MVAR: + { + pbCur++; + ULONG num = 0; + pbCur += CorSigUncompressData(pbCur, &num); + tokenName = WStr("!!") + ToWSTRING(std::to_string(num)); + break; + } + case ELEMENT_TYPE_VAR: + { + pbCur++; + ULONG num = 0; + pbCur += CorSigUncompressData(pbCur, &num); + tokenName = WStr("!") + ToWSTRING(std::to_string(num)); + break; + } + default: + break; } - case ELEMENT_TYPE_VAR: { - pbCur++; - ULONG num = 0; - pbCur += CorSigUncompressData(pbCur, &num); - tokenName = WStr("!") + ToWSTRING(std::to_string(num)); - break; + + if (ref_flag) + { + tokenName += WStr("&"); } - default: - break; - } - - if (ref_flag) { - tokenName += WStr("&"); - } - return tokenName; + return tokenName; } -WSTRING FunctionMethodArgument::GetTypeTokName(ComPtr& pImport) const { - PCCOR_SIGNATURE pbCur = &pbBase[offset]; - return GetSigTypeTokName(pbCur, pImport); +WSTRING FunctionMethodArgument::GetTypeTokName(ComPtr& pImport) const +{ + PCCOR_SIGNATURE pbCur = &pbBase[offset]; + return GetSigTypeTokName(pbCur, pImport); } -ULONG FunctionMethodArgument::GetSignature(PCCOR_SIGNATURE& data) const { - data = &pbBase[offset]; - return length; +ULONG FunctionMethodArgument::GetSignature(PCCOR_SIGNATURE& data) const +{ + data = &pbBase[offset]; + return length; } // FunctionMethodSignature -bool ParseByte(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd, unsigned char* pbOut) { - if (pbCur < pbEnd) { - *pbOut = *pbCur; - pbCur++; - return true; - } +bool ParseByte(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd, unsigned char* pbOut) +{ + if (pbCur < pbEnd) + { + *pbOut = *pbCur; + pbCur++; + return true; + } - return false; + return false; } -bool ParseNumber(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd, unsigned* pOut) { - // parse the variable length number format (0-4 bytes) +bool ParseNumber(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd, unsigned* pOut) +{ + // parse the variable length number format (0-4 bytes) - unsigned char b1 = 0, b2 = 0, b3 = 0, b4 = 0; + unsigned char b1 = 0, b2 = 0, b3 = 0, b4 = 0; - // at least one byte in the encoding, read that + // at least one byte in the encoding, read that - if (!ParseByte(pbCur, pbEnd, &b1)) return false; + if (!ParseByte(pbCur, pbEnd, &b1)) return false; - if (b1 == 0xff) { - // special encoding of 'NULL' - // not sure what this means as a number, don't expect to see it except for - // string lengths which we don't encounter anyway so calling it an error - return false; - } + if (b1 == 0xff) + { + // special encoding of 'NULL' + // not sure what this means as a number, don't expect to see it except for + // string lengths which we don't encounter anyway so calling it an error + return false; + } - // early out on 1 byte encoding - if ((b1 & 0x80) == 0) { - *pOut = (int)b1; - return true; - } + // early out on 1 byte encoding + if ((b1 & 0x80) == 0) + { + *pOut = (int) b1; + return true; + } - // now at least 2 bytes in the encoding, read 2nd byte - if (!ParseByte(pbCur, pbEnd, &b2)) return false; + // now at least 2 bytes in the encoding, read 2nd byte + if (!ParseByte(pbCur, pbEnd, &b2)) return false; - // early out on 2 byte encoding - if ((b1 & 0x40) == 0) { - *pOut = (((b1 & 0x3f) << 8) | b2); - return true; - } + // early out on 2 byte encoding + if ((b1 & 0x40) == 0) + { + *pOut = (((b1 & 0x3f) << 8) | b2); + return true; + } - // must be a 4 byte encoding - if ((b1 & 0x20) != 0) { - // 4 byte encoding has this bit clear -- error if not - return false; - } + // must be a 4 byte encoding + if ((b1 & 0x20) != 0) + { + // 4 byte encoding has this bit clear -- error if not + return false; + } - if (!ParseByte(pbCur, pbEnd, &b3)) return false; + if (!ParseByte(pbCur, pbEnd, &b3)) return false; - if (!ParseByte(pbCur, pbEnd, &b4)) return false; + if (!ParseByte(pbCur, pbEnd, &b4)) return false; - *pOut = ((b1 & 0x1f) << 24) | (b2 << 16) | (b3 << 8) | b4; - return true; + *pOut = ((b1 & 0x1f) << 24) | (b2 << 16) | (b3 << 8) | b4; + return true; } -bool ParseTypeDefOrRefEncoded(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd, - unsigned char* pIndexTypeOut, - unsigned* pIndexOut) { - // parse an encoded typedef or typeref - unsigned encoded = 0; +bool ParseTypeDefOrRefEncoded(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd, unsigned char* pIndexTypeOut, + unsigned* pIndexOut) +{ + // parse an encoded typedef or typeref + unsigned encoded = 0; - if (!ParseNumber(pbCur, pbEnd, &encoded)) return false; + if (!ParseNumber(pbCur, pbEnd, &encoded)) return false; - *pIndexTypeOut = (unsigned char)(encoded & 0x3); - *pIndexOut = (encoded >> 2); - return true; + *pIndexTypeOut = (unsigned char) (encoded & 0x3); + *pIndexOut = (encoded >> 2); + return true; } /* we don't support @@ -1386,252 +1499,251 @@ bool ParseTypeDefOrRefEncoded(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd, ARRAY Type ArrayShape SZARRAY CustomMod+ Type (but we do support SZARRAY Type) */ -bool ParseType(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd) { - /* - Type ::= ( BOOLEAN | CHAR | I1 | U1 | U2 | U2 | I4 | U4 | I8 | U8 | R4 | R8 | - I | U | | VALUETYPE TypeDefOrRefEncoded | CLASS TypeDefOrRefEncoded | STRING - | OBJECT - | PTR CustomMod* VOID - | PTR CustomMod* Type - | FNPTR MethodDefSig - | FNPTR MethodRefSig - | ARRAY Type ArrayShape - | SZARRAY CustomMod* Type - | GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * - | VAR Number - | MVAR Number - */ - - unsigned char elem_type; - unsigned index; - unsigned number; - unsigned char indexType; - - if (!ParseByte(pbCur, pbEnd, &elem_type)) return false; - - switch (elem_type) { - case ELEMENT_TYPE_BOOLEAN: - case ELEMENT_TYPE_CHAR: - case ELEMENT_TYPE_I1: - case ELEMENT_TYPE_U1: - case ELEMENT_TYPE_U2: - case ELEMENT_TYPE_I2: - case ELEMENT_TYPE_I4: - case ELEMENT_TYPE_U4: - case ELEMENT_TYPE_I8: - case ELEMENT_TYPE_U8: - case ELEMENT_TYPE_R4: - case ELEMENT_TYPE_R8: - case ELEMENT_TYPE_I: - case ELEMENT_TYPE_U: - case ELEMENT_TYPE_STRING: - case ELEMENT_TYPE_OBJECT: - // simple types - break; - - case ELEMENT_TYPE_PTR: - return false; - - case ELEMENT_TYPE_CLASS: - // CLASS TypeDefOrRefEncoded - if (!ParseTypeDefOrRefEncoded(pbCur, pbEnd, &indexType, &index)) - return false; - break; +bool ParseType(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd) +{ + /* + Type ::= ( BOOLEAN | CHAR | I1 | U1 | U2 | U2 | I4 | U4 | I8 | U8 | R4 | R8 | + I | U | | VALUETYPE TypeDefOrRefEncoded | CLASS TypeDefOrRefEncoded | STRING + | OBJECT + | PTR CustomMod* VOID + | PTR CustomMod* Type + | FNPTR MethodDefSig + | FNPTR MethodRefSig + | ARRAY Type ArrayShape + | SZARRAY CustomMod* Type + | GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * + | VAR Number + | MVAR Number + */ + + unsigned char elem_type; + unsigned index; + unsigned number; + unsigned char indexType; + + if (!ParseByte(pbCur, pbEnd, &elem_type)) return false; + + switch (elem_type) + { + case ELEMENT_TYPE_BOOLEAN: + case ELEMENT_TYPE_CHAR: + case ELEMENT_TYPE_I1: + case ELEMENT_TYPE_U1: + case ELEMENT_TYPE_U2: + case ELEMENT_TYPE_I2: + case ELEMENT_TYPE_I4: + case ELEMENT_TYPE_U4: + case ELEMENT_TYPE_I8: + case ELEMENT_TYPE_U8: + case ELEMENT_TYPE_R4: + case ELEMENT_TYPE_R8: + case ELEMENT_TYPE_I: + case ELEMENT_TYPE_U: + case ELEMENT_TYPE_STRING: + case ELEMENT_TYPE_OBJECT: + // simple types + break; + + case ELEMENT_TYPE_PTR: + return false; - case ELEMENT_TYPE_VALUETYPE: - // VALUETYPE TypeDefOrRefEncoded - if (!ParseTypeDefOrRefEncoded(pbCur, pbEnd, &indexType, &index)) - return false; + case ELEMENT_TYPE_CLASS: + // CLASS TypeDefOrRefEncoded + if (!ParseTypeDefOrRefEncoded(pbCur, pbEnd, &indexType, &index)) return false; + break; - break; + case ELEMENT_TYPE_VALUETYPE: + // VALUETYPE TypeDefOrRefEncoded + if (!ParseTypeDefOrRefEncoded(pbCur, pbEnd, &indexType, &index)) return false; - case ELEMENT_TYPE_FNPTR: - // FNPTR MethodDefSig - // FNPTR MethodRefSig + break; - return false; + case ELEMENT_TYPE_FNPTR: + // FNPTR MethodDefSig + // FNPTR MethodRefSig - case ELEMENT_TYPE_ARRAY: - // ARRAY Type ArrayShape - return false; + return false; - case ELEMENT_TYPE_SZARRAY: - // SZARRAY Type + case ELEMENT_TYPE_ARRAY: + // ARRAY Type ArrayShape + return false; - if (*pbCur == ELEMENT_TYPE_CMOD_OPT || *pbCur == ELEMENT_TYPE_CMOD_REQD) - return false; + case ELEMENT_TYPE_SZARRAY: + // SZARRAY Type - if (!ParseType(pbCur, pbEnd)) return false; + if (*pbCur == ELEMENT_TYPE_CMOD_OPT || *pbCur == ELEMENT_TYPE_CMOD_REQD) return false; - break; + if (!ParseType(pbCur, pbEnd)) return false; - case ELEMENT_TYPE_GENERICINST: - // GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * - if (!ParseByte(pbCur, pbEnd, &elem_type)) return false; + break; - if (elem_type != ELEMENT_TYPE_CLASS && - elem_type != ELEMENT_TYPE_VALUETYPE) - return false; + case ELEMENT_TYPE_GENERICINST: + // GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * + if (!ParseByte(pbCur, pbEnd, &elem_type)) return false; - if (!ParseTypeDefOrRefEncoded(pbCur, pbEnd, &indexType, &index)) - return false; + if (elem_type != ELEMENT_TYPE_CLASS && elem_type != ELEMENT_TYPE_VALUETYPE) return false; - if (!ParseNumber(pbCur, pbEnd, &number)) return false; + if (!ParseTypeDefOrRefEncoded(pbCur, pbEnd, &indexType, &index)) return false; - for (unsigned i = 0; i < number; i++) { - if (!ParseType(pbCur, pbEnd)) return false; - } - break; + if (!ParseNumber(pbCur, pbEnd, &number)) return false; - case ELEMENT_TYPE_VAR: - // VAR Number - if (!ParseNumber(pbCur, pbEnd, &number)) return false; + for (unsigned i = 0; i < number; i++) + { + if (!ParseType(pbCur, pbEnd)) return false; + } + break; - break; + case ELEMENT_TYPE_VAR: + // VAR Number + if (!ParseNumber(pbCur, pbEnd, &number)) return false; - case ELEMENT_TYPE_MVAR: - // MVAR Number - if (!ParseNumber(pbCur, pbEnd, &number)) return false; + break; - break; - } + case ELEMENT_TYPE_MVAR: + // MVAR Number + if (!ParseNumber(pbCur, pbEnd, &number)) return false; - return true; + break; + } + + return true; } // Param ::= CustomMod* ( TYPEDBYREF | [BYREF] Type ) // CustomMod* TYPEDBYREF we don't support -bool ParseParam(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd) { - if (*pbCur == ELEMENT_TYPE_CMOD_OPT || *pbCur == ELEMENT_TYPE_CMOD_REQD) { - return false; - } +bool ParseParam(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd) +{ + if (*pbCur == ELEMENT_TYPE_CMOD_OPT || *pbCur == ELEMENT_TYPE_CMOD_REQD) + { + return false; + } - if (pbCur >= pbEnd) return false; + if (pbCur >= pbEnd) return false; - if (*pbCur == ELEMENT_TYPE_TYPEDBYREF) return false; + if (*pbCur == ELEMENT_TYPE_TYPEDBYREF) return false; - if (*pbCur == ELEMENT_TYPE_BYREF) pbCur++; + if (*pbCur == ELEMENT_TYPE_BYREF) pbCur++; - return ParseType(pbCur, pbEnd); + return ParseType(pbCur, pbEnd); } // RetType ::= CustomMod* ( VOID | TYPEDBYREF | [BYREF] Type ) // CustomMod* TYPEDBYREF we don't support -bool ParseRetType(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd) { +bool ParseRetType(PCCOR_SIGNATURE& pbCur, PCCOR_SIGNATURE pbEnd) +{ - if (*pbCur == ELEMENT_TYPE_CMOD_OPT || *pbCur == ELEMENT_TYPE_CMOD_REQD) - return false; + if (*pbCur == ELEMENT_TYPE_CMOD_OPT || *pbCur == ELEMENT_TYPE_CMOD_REQD) return false; - if (pbCur >= pbEnd) - return false; + if (pbCur >= pbEnd) return false; - if (*pbCur == ELEMENT_TYPE_TYPEDBYREF) - return false; + if (*pbCur == ELEMENT_TYPE_TYPEDBYREF) return false; - if (*pbCur == ELEMENT_TYPE_VOID) { - pbCur++; - return true; - } + if (*pbCur == ELEMENT_TYPE_VOID) + { + pbCur++; + return true; + } - if (*pbCur == ELEMENT_TYPE_BYREF) - pbCur++; + if (*pbCur == ELEMENT_TYPE_BYREF) pbCur++; - return ParseType(pbCur, pbEnd); + return ParseType(pbCur, pbEnd); } +HRESULT FunctionMethodSignature::TryParse() +{ + PCCOR_SIGNATURE pbCur = pbBase; + PCCOR_SIGNATURE pbEnd = pbBase + len; + unsigned char elem_type; -HRESULT FunctionMethodSignature::TryParse() { - PCCOR_SIGNATURE pbCur = pbBase; - PCCOR_SIGNATURE pbEnd = pbBase + len; - unsigned char elem_type; - - IfFalseRetFAIL(ParseByte(pbCur, pbEnd, &elem_type)); + IfFalseRetFAIL(ParseByte(pbCur, pbEnd, &elem_type)); - if (elem_type & IMAGE_CEE_CS_CALLCONV_GENERIC) { - unsigned gen_param_count; - IfFalseRetFAIL(ParseNumber(pbCur, pbEnd, &gen_param_count)); - numberOfTypeArguments = gen_param_count; - } + if (elem_type & IMAGE_CEE_CS_CALLCONV_GENERIC) + { + unsigned gen_param_count; + IfFalseRetFAIL(ParseNumber(pbCur, pbEnd, &gen_param_count)); + numberOfTypeArguments = gen_param_count; + } - unsigned param_count; - IfFalseRetFAIL(ParseNumber(pbCur, pbEnd, ¶m_count)); - numberOfArguments = param_count; + unsigned param_count; + IfFalseRetFAIL(ParseNumber(pbCur, pbEnd, ¶m_count)); + numberOfArguments = param_count; - const PCCOR_SIGNATURE pbRet = pbCur; + const PCCOR_SIGNATURE pbRet = pbCur; - IfFalseRetFAIL(ParseRetType(pbCur, pbEnd)); - ret.pbBase = pbBase; - ret.length = (ULONG)(pbCur - pbRet); - ret.offset = (ULONG)(pbCur - pbBase - ret.length); + IfFalseRetFAIL(ParseRetType(pbCur, pbEnd)); + ret.pbBase = pbBase; + ret.length = (ULONG)(pbCur - pbRet); + ret.offset = (ULONG)(pbCur - pbBase - ret.length); - auto fEncounteredSentinal = false; - for (unsigned i = 0; i < param_count; i++) { - if (pbCur >= pbEnd) return E_FAIL; + auto fEncounteredSentinal = false; + for (unsigned i = 0; i < param_count; i++) + { + if (pbCur >= pbEnd) return E_FAIL; - if (*pbCur == ELEMENT_TYPE_SENTINEL) { - if (fEncounteredSentinal) return E_FAIL; + if (*pbCur == ELEMENT_TYPE_SENTINEL) + { + if (fEncounteredSentinal) return E_FAIL; - fEncounteredSentinal = true; - pbCur++; - } + fEncounteredSentinal = true; + pbCur++; + } - const PCCOR_SIGNATURE pbParam = pbCur; + const PCCOR_SIGNATURE pbParam = pbCur; - IfFalseRetFAIL(ParseParam(pbCur, pbEnd)); + IfFalseRetFAIL(ParseParam(pbCur, pbEnd)); - FunctionMethodArgument argument{}; - argument.pbBase = pbBase; - argument.length = (ULONG)(pbCur - pbParam); - argument.offset = (ULONG)(pbCur - pbBase - argument.length); + FunctionMethodArgument argument{}; + argument.pbBase = pbBase; + argument.length = (ULONG)(pbCur - pbParam); + argument.offset = (ULONG)(pbCur - pbBase - argument.length); - params.push_back(argument); - } + params.push_back(argument); + } - return S_OK; + return S_OK; } -bool FindTypeDefByName( - const trace::WSTRING instrumentationTargetMethodTypeName, - const trace::WSTRING assemblyName, - const ComPtr& metadata_import, mdTypeDef& typeDef) { - mdTypeDef parentTypeDef = mdTypeDefNil; - auto nameParts = Split(instrumentationTargetMethodTypeName, '+'); - auto instrumentedMethodTypeName = instrumentationTargetMethodTypeName; - - if (nameParts.size() == 2) { - // We're instrumenting a nested class, find the parent first - auto hr = metadata_import->FindTypeDefByName(nameParts[0].c_str(), - mdTokenNil, &parentTypeDef); - - if (FAILED(hr)) { - // This can happen between .NET framework and .NET core, not all apis are - // available in both. Eg: WinHttpHandler, CurlHandler, and some methods in - // System.Data - Debug("Can't load the parent TypeDef: ", nameParts[0], - " for nested class: ", instrumentationTargetMethodTypeName, - ", Module: ", assemblyName); - return false; +bool FindTypeDefByName(const trace::WSTRING instrumentationTargetMethodTypeName, const trace::WSTRING assemblyName, + const ComPtr& metadata_import, mdTypeDef& typeDef) +{ + mdTypeDef parentTypeDef = mdTypeDefNil; + auto nameParts = Split(instrumentationTargetMethodTypeName, '+'); + auto instrumentedMethodTypeName = instrumentationTargetMethodTypeName; + + if (nameParts.size() == 2) + { + // We're instrumenting a nested class, find the parent first + auto hr = metadata_import->FindTypeDefByName(nameParts[0].c_str(), mdTokenNil, &parentTypeDef); + + if (FAILED(hr)) + { + // This can happen between .NET framework and .NET core, not all apis are + // available in both. Eg: WinHttpHandler, CurlHandler, and some methods in + // System.Data + Debug("Can't load the parent TypeDef: ", nameParts[0], + " for nested class: ", instrumentationTargetMethodTypeName, ", Module: ", assemblyName); + return false; + } + instrumentedMethodTypeName = nameParts[1]; + } + else if (nameParts.size() > 2) + { + Warn("Invalid TypeDef-only one layer of nested classes are supported: ", instrumentationTargetMethodTypeName, + ", Module: ", assemblyName); + return false; } - instrumentedMethodTypeName = nameParts[1]; - } else if (nameParts.size() > 2) { - Warn("Invalid TypeDef-only one layer of nested classes are supported: ", - instrumentationTargetMethodTypeName, ", Module: ", assemblyName); - return false; - } - - // Find the type we're instrumenting - auto hr = metadata_import->FindTypeDefByName( - instrumentedMethodTypeName.c_str(), parentTypeDef, &typeDef); - if (FAILED(hr)) { - // This can happen between .NET framework and .NET core, not all apis are - // available in both. Eg: WinHttpHandler, CurlHandler, and some methods in - // System.Data - Debug("Can't load the TypeDef for: ", instrumentedMethodTypeName, - ", Module: ", assemblyName); - return false; - } + // Find the type we're instrumenting + auto hr = metadata_import->FindTypeDefByName(instrumentedMethodTypeName.c_str(), parentTypeDef, &typeDef); + if (FAILED(hr)) + { + // This can happen between .NET framework and .NET core, not all apis are + // available in both. Eg: WinHttpHandler, CurlHandler, and some methods in + // System.Data + Debug("Can't load the TypeDef for: ", instrumentedMethodTypeName, ", Module: ", assemblyName); + return false; + } - return true; + return true; } -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/clr_helpers.h b/src/Datadog.Trace.ClrProfiler.Native/clr_helpers.h index 028017cf2b..1a6a47ecea 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/clr_helpers.h +++ b/src/Datadog.Trace.ClrProfiler.Native/clr_helpers.h @@ -8,10 +8,11 @@ #include "com_ptr.h" #include "integration.h" -#include #include "util.h" +#include -namespace trace { +namespace trace +{ class ModuleMetadata; const size_t kNameMaxSize = 1024; @@ -45,457 +46,517 @@ template class EnumeratorIterator; template -class Enumerator { - private: - const std::function callback_; - const std::function close_; - mutable HCORENUM ptr_; - - public: - Enumerator(std::function callback, - std::function close) - : callback_(callback), close_(close), ptr_(nullptr) {} +class Enumerator +{ +private: + const std::function callback_; + const std::function close_; + mutable HCORENUM ptr_; + +public: + Enumerator(std::function callback, std::function close) : + callback_(callback), close_(close), ptr_(nullptr) + { + } - Enumerator(const Enumerator& other) = default; + Enumerator(const Enumerator& other) = default; - Enumerator& operator=(const Enumerator& other) = default; + Enumerator& operator=(const Enumerator& other) = default; - ~Enumerator() { close_(ptr_); } + ~Enumerator() + { + close_(ptr_); + } - EnumeratorIterator begin() const { - return EnumeratorIterator(this, S_OK); - } + EnumeratorIterator begin() const + { + return EnumeratorIterator(this, S_OK); + } - EnumeratorIterator end() const { - return EnumeratorIterator(this, S_FALSE); - } + EnumeratorIterator end() const + { + return EnumeratorIterator(this, S_FALSE); + } - HRESULT Next(T arr[], ULONG max, ULONG* cnt) const { - return callback_(&ptr_, arr, max, cnt); - } + HRESULT Next(T arr[], ULONG max, ULONG* cnt) const + { + return callback_(&ptr_, arr, max, cnt); + } }; template -class EnumeratorIterator { - private: - const Enumerator* enumerator_; - HRESULT status_ = S_FALSE; - T arr_[kEnumeratorMax]{}; - ULONG idx_ = 0; - ULONG sz_ = 0; - - public: - EnumeratorIterator(const Enumerator* enumerator, HRESULT status) - : enumerator_(enumerator) { - if (status == S_OK) { - status_ = enumerator_->Next(arr_, kEnumeratorMax, &sz_); - if (status_ == S_OK && sz_ == 0) { - status_ = S_FALSE; - } - } else { - status_ = status; - } - } - - bool operator!=(EnumeratorIterator const& other) const { - return enumerator_ != other.enumerator_ || - (status_ == S_OK) != (other.status_ == S_OK); - } - - T const& operator*() const { return arr_[idx_]; } - - EnumeratorIterator& operator++() { - if (idx_ < sz_ - 1) { - idx_++; - } else { - idx_ = 0; - status_ = enumerator_->Next(arr_, kEnumeratorMax, &sz_); - if (status_ == S_OK && sz_ == 0) { - status_ = S_FALSE; - } - } - return *this; - } +class EnumeratorIterator +{ +private: + const Enumerator* enumerator_; + HRESULT status_ = S_FALSE; + T arr_[kEnumeratorMax]{}; + ULONG idx_ = 0; + ULONG sz_ = 0; + +public: + EnumeratorIterator(const Enumerator* enumerator, HRESULT status) : enumerator_(enumerator) + { + if (status == S_OK) + { + status_ = enumerator_->Next(arr_, kEnumeratorMax, &sz_); + if (status_ == S_OK && sz_ == 0) + { + status_ = S_FALSE; + } + } + else + { + status_ = status; + } + } + + bool operator!=(EnumeratorIterator const& other) const + { + return enumerator_ != other.enumerator_ || (status_ == S_OK) != (other.status_ == S_OK); + } + + T const& operator*() const + { + return arr_[idx_]; + } + + EnumeratorIterator& operator++() + { + if (idx_ < sz_ - 1) + { + idx_++; + } + else + { + idx_ = 0; + status_ = enumerator_->Next(arr_, kEnumeratorMax, &sz_); + if (status_ == S_OK && sz_ == 0) + { + status_ = S_FALSE; + } + } + return *this; + } }; -static Enumerator EnumTypeDefs( - const ComPtr& metadata_import) { - return Enumerator( - [metadata_import](HCORENUM* ptr, mdTypeDef arr[], ULONG max, - ULONG* cnt) -> HRESULT { - return metadata_import->EnumTypeDefs(ptr, arr, max, cnt); - }, - [metadata_import](HCORENUM ptr) -> void { - metadata_import->CloseEnum(ptr); - }); +static Enumerator EnumTypeDefs(const ComPtr& metadata_import) +{ + return Enumerator( + [metadata_import](HCORENUM* ptr, mdTypeDef arr[], ULONG max, ULONG* cnt) -> HRESULT { + return metadata_import->EnumTypeDefs(ptr, arr, max, cnt); + }, + [metadata_import](HCORENUM ptr) -> void { metadata_import->CloseEnum(ptr); }); } -static Enumerator EnumTypeRefs( - const ComPtr& metadata_import) { - return Enumerator( - [metadata_import](HCORENUM* ptr, mdTypeRef arr[], ULONG max, - ULONG* cnt) -> HRESULT { - return metadata_import->EnumTypeRefs(ptr, arr, max, cnt); - }, - [metadata_import](HCORENUM ptr) -> void { - metadata_import->CloseEnum(ptr); - }); +static Enumerator EnumTypeRefs(const ComPtr& metadata_import) +{ + return Enumerator( + [metadata_import](HCORENUM* ptr, mdTypeRef arr[], ULONG max, ULONG* cnt) -> HRESULT { + return metadata_import->EnumTypeRefs(ptr, arr, max, cnt); + }, + [metadata_import](HCORENUM ptr) -> void { metadata_import->CloseEnum(ptr); }); } -static Enumerator EnumMethods( - const ComPtr& metadata_import, - const mdToken& parent_token) { - return Enumerator( - [metadata_import, parent_token](HCORENUM* ptr, mdMethodDef arr[], - ULONG max, ULONG* cnt) -> HRESULT { - return metadata_import->EnumMethods(ptr, parent_token, arr, max, cnt); - }, - [metadata_import](HCORENUM ptr) -> void { - metadata_import->CloseEnum(ptr); - }); +static Enumerator EnumMethods(const ComPtr& metadata_import, const mdToken& parent_token) +{ + return Enumerator( + [metadata_import, parent_token](HCORENUM* ptr, mdMethodDef arr[], ULONG max, ULONG* cnt) -> HRESULT { + return metadata_import->EnumMethods(ptr, parent_token, arr, max, cnt); + }, + [metadata_import](HCORENUM ptr) -> void { metadata_import->CloseEnum(ptr); }); } -static Enumerator EnumMemberRefs( - const ComPtr& metadata_import, - const mdToken& parent_token) { - return Enumerator( - [metadata_import, parent_token](HCORENUM* ptr, mdMemberRef arr[], - ULONG max, ULONG* cnt) -> HRESULT { - return metadata_import->EnumMemberRefs(ptr, parent_token, arr, max, - cnt); - }, - [metadata_import](HCORENUM ptr) -> void { - metadata_import->CloseEnum(ptr); - }); +static Enumerator EnumMemberRefs(const ComPtr& metadata_import, + const mdToken& parent_token) +{ + return Enumerator( + [metadata_import, parent_token](HCORENUM* ptr, mdMemberRef arr[], ULONG max, ULONG* cnt) -> HRESULT { + return metadata_import->EnumMemberRefs(ptr, parent_token, arr, max, cnt); + }, + [metadata_import](HCORENUM ptr) -> void { metadata_import->CloseEnum(ptr); }); } -static Enumerator EnumModuleRefs( - const ComPtr& metadata_import) { - return Enumerator( - [metadata_import](HCORENUM* ptr, mdModuleRef arr[], ULONG max, - ULONG* cnt) -> HRESULT { - return metadata_import->EnumModuleRefs(ptr, arr, max, cnt); - }, - [metadata_import](HCORENUM ptr) -> void { - metadata_import->CloseEnum(ptr); - }); +static Enumerator EnumModuleRefs(const ComPtr& metadata_import) +{ + return Enumerator( + [metadata_import](HCORENUM* ptr, mdModuleRef arr[], ULONG max, ULONG* cnt) -> HRESULT { + return metadata_import->EnumModuleRefs(ptr, arr, max, cnt); + }, + [metadata_import](HCORENUM ptr) -> void { metadata_import->CloseEnum(ptr); }); } -static Enumerator EnumAssemblyRefs( - const ComPtr& assembly_import) { - return Enumerator( - [assembly_import](HCORENUM* ptr, mdAssemblyRef arr[], ULONG max, - ULONG* cnt) -> HRESULT { - return assembly_import->EnumAssemblyRefs(ptr, arr, max, cnt); - }, - [assembly_import](HCORENUM ptr) -> void { - assembly_import->CloseEnum(ptr); - }); +static Enumerator EnumAssemblyRefs(const ComPtr& assembly_import) +{ + return Enumerator( + [assembly_import](HCORENUM* ptr, mdAssemblyRef arr[], ULONG max, ULONG* cnt) -> HRESULT { + return assembly_import->EnumAssemblyRefs(ptr, arr, max, cnt); + }, + [assembly_import](HCORENUM ptr) -> void { assembly_import->CloseEnum(ptr); }); } -struct RuntimeInformation { - COR_PRF_RUNTIME_TYPE runtime_type; - USHORT major_version; - USHORT minor_version; - USHORT build_version; - USHORT qfe_version; - - RuntimeInformation() : runtime_type((COR_PRF_RUNTIME_TYPE)0x0), major_version(0), minor_version(0), build_version(0), qfe_version(0) {} - - RuntimeInformation(COR_PRF_RUNTIME_TYPE runtime_type, USHORT major_version, USHORT minor_version, USHORT build_version, USHORT qfe_version) - : runtime_type(runtime_type), - major_version(major_version), - minor_version(minor_version), - build_version(build_version), - qfe_version(qfe_version) {} - - RuntimeInformation& operator=(const RuntimeInformation& other) { - runtime_type = other.runtime_type; - major_version = other.major_version; - minor_version = other.minor_version; - build_version = other.build_version; - qfe_version = other.qfe_version; - return *this; - } - - bool is_desktop() const { return runtime_type == COR_PRF_DESKTOP_CLR; } - bool is_core() const { return runtime_type == COR_PRF_CORE_CLR; } +struct RuntimeInformation +{ + COR_PRF_RUNTIME_TYPE runtime_type; + USHORT major_version; + USHORT minor_version; + USHORT build_version; + USHORT qfe_version; + + RuntimeInformation() : + runtime_type((COR_PRF_RUNTIME_TYPE) 0x0), major_version(0), minor_version(0), build_version(0), qfe_version(0) + { + } + + RuntimeInformation(COR_PRF_RUNTIME_TYPE runtime_type, USHORT major_version, USHORT minor_version, + USHORT build_version, USHORT qfe_version) : + runtime_type(runtime_type), + major_version(major_version), + minor_version(minor_version), + build_version(build_version), + qfe_version(qfe_version) + { + } + + RuntimeInformation& operator=(const RuntimeInformation& other) + { + runtime_type = other.runtime_type; + major_version = other.major_version; + minor_version = other.minor_version; + build_version = other.build_version; + qfe_version = other.qfe_version; + return *this; + } + + bool is_desktop() const + { + return runtime_type == COR_PRF_DESKTOP_CLR; + } + bool is_core() const + { + return runtime_type == COR_PRF_CORE_CLR; + } }; -struct AssemblyInfo { - const AssemblyID id; - const WSTRING name; - const ModuleID manifest_module_id; - const AppDomainID app_domain_id; - const WSTRING app_domain_name; +struct AssemblyInfo +{ + const AssemblyID id; + const WSTRING name; + const ModuleID manifest_module_id; + const AppDomainID app_domain_id; + const WSTRING app_domain_name; - AssemblyInfo() : id(0), name(WStr("")), manifest_module_id(0), app_domain_id(0), app_domain_name(WStr("")) {} + AssemblyInfo() : id(0), name(WStr("")), manifest_module_id(0), app_domain_id(0), app_domain_name(WStr("")) + { + } - AssemblyInfo(AssemblyID id, WSTRING name, ModuleID manifest_module_id, AppDomainID app_domain_id, - WSTRING app_domain_name) - : id(id), + AssemblyInfo(AssemblyID id, WSTRING name, ModuleID manifest_module_id, AppDomainID app_domain_id, + WSTRING app_domain_name) : + id(id), name(name), manifest_module_id(manifest_module_id), app_domain_id(app_domain_id), - app_domain_name(app_domain_name) {} + app_domain_name(app_domain_name) + { + } - bool IsValid() const { return id != 0; } + bool IsValid() const + { + return id != 0; + } }; -struct AssemblyMetadata { - const ModuleID module_id; - const WSTRING name; - const mdAssembly assembly_token; - const Version version; +struct AssemblyMetadata +{ + const ModuleID module_id; + const WSTRING name; + const mdAssembly assembly_token; + const Version version; - AssemblyMetadata() : module_id(0), name(WStr("")), assembly_token(mdTokenNil) {} + AssemblyMetadata() : module_id(0), name(WStr("")), assembly_token(mdTokenNil) + { + } - AssemblyMetadata(ModuleID module_id, WSTRING name, mdAssembly assembly_token, - USHORT major, USHORT minor, USHORT build, USHORT revision) - : module_id(module_id), + AssemblyMetadata(ModuleID module_id, WSTRING name, mdAssembly assembly_token, USHORT major, USHORT minor, + USHORT build, USHORT revision) : + module_id(module_id), name(name), assembly_token(assembly_token), - version(Version(major, minor, build, revision)) {} + version(Version(major, minor, build, revision)) + { + } - bool IsValid() const { return module_id != 0; } + bool IsValid() const + { + return module_id != 0; + } }; -struct AssemblyProperty { - const void* ppbPublicKey; - ULONG pcbPublicKey; - ULONG pulHashAlgId; - ASSEMBLYMETADATA pMetaData{}; - WSTRING szName; - DWORD assemblyFlags = 0; - - AssemblyProperty() - : ppbPublicKey(nullptr), pcbPublicKey(0), pulHashAlgId(0), szName(WStr("")) {} +struct AssemblyProperty +{ + const void* ppbPublicKey; + ULONG pcbPublicKey; + ULONG pulHashAlgId; + ASSEMBLYMETADATA pMetaData{}; + WSTRING szName; + DWORD assemblyFlags = 0; + + AssemblyProperty() : ppbPublicKey(nullptr), pcbPublicKey(0), pulHashAlgId(0), szName(WStr("")) + { + } }; -struct ModuleInfo { - const ModuleID id; - const WSTRING path; - const AssemblyInfo assembly; - const DWORD flags; +struct ModuleInfo +{ + const ModuleID id; + const WSTRING path; + const AssemblyInfo assembly; + const DWORD flags; - ModuleInfo() : id(0), path(WStr("")), assembly({}), flags(0) {} - ModuleInfo(ModuleID id, WSTRING path, AssemblyInfo assembly, DWORD flags) - : id(id), path(path), assembly(assembly), flags(flags) {} + ModuleInfo() : id(0), path(WStr("")), assembly({}), flags(0) + { + } + ModuleInfo(ModuleID id, WSTRING path, AssemblyInfo assembly, DWORD flags) : + id(id), path(path), assembly(assembly), flags(flags) + { + } - bool IsValid() const { return id != 0; } + bool IsValid() const + { + return id != 0; + } - bool IsWindowsRuntime() const { - return ((flags & COR_PRF_MODULE_WINDOWS_RUNTIME) != 0); - } + bool IsWindowsRuntime() const + { + return ((flags & COR_PRF_MODULE_WINDOWS_RUNTIME) != 0); + } }; -struct TypeInfo { - const mdToken id; - const WSTRING name; - const mdTypeSpec type_spec; - const ULONG32 token_type; - const TypeInfo* extend_from; - const bool valueType; - const bool isGeneric; - const TypeInfo* parent_type; - - TypeInfo() - : id(0), +struct TypeInfo +{ + const mdToken id; + const WSTRING name; + const mdTypeSpec type_spec; + const ULONG32 token_type; + const TypeInfo* extend_from; + const bool valueType; + const bool isGeneric; + const TypeInfo* parent_type; + + TypeInfo() : + id(0), name(WStr("")), type_spec(0), token_type(0), extend_from(nullptr), valueType(false), isGeneric(false), - parent_type(nullptr) {} - TypeInfo(mdToken id, WSTRING name, mdTypeSpec type_spec, ULONG32 token_type, - const TypeInfo* extend_from, bool valueType, bool isGeneric, - const TypeInfo* parent_type) - : id(id), + parent_type(nullptr) + { + } + TypeInfo(mdToken id, WSTRING name, mdTypeSpec type_spec, ULONG32 token_type, const TypeInfo* extend_from, + bool valueType, bool isGeneric, const TypeInfo* parent_type) : + id(id), name(name), type_spec(type_spec), token_type(token_type), extend_from(extend_from), valueType(valueType), isGeneric(isGeneric), - parent_type(parent_type) {} + parent_type(parent_type) + { + } - bool IsValid() const { return id != 0; } + bool IsValid() const + { + return id != 0; + } }; -enum MethodArgumentTypeFlag { - TypeFlagByRef = 0x01, - TypeFlagVoid = 0x02, - TypeFlagBoxedType = 0x04 +enum MethodArgumentTypeFlag +{ + TypeFlagByRef = 0x01, + TypeFlagVoid = 0x02, + TypeFlagBoxedType = 0x04 }; -struct FunctionMethodArgument { - ULONG offset; - ULONG length; - PCCOR_SIGNATURE pbBase; - mdToken GetTypeTok(ComPtr& pEmit, - mdAssemblyRef corLibRef) const; - WSTRING GetTypeTokName(ComPtr& pImport) const; - int GetTypeFlags(unsigned& elementType) const; - ULONG GetSignature(PCCOR_SIGNATURE& data) const; +struct FunctionMethodArgument +{ + ULONG offset; + ULONG length; + PCCOR_SIGNATURE pbBase; + mdToken GetTypeTok(ComPtr& pEmit, mdAssemblyRef corLibRef) const; + WSTRING GetTypeTokName(ComPtr& pImport) const; + int GetTypeFlags(unsigned& elementType) const; + ULONG GetSignature(PCCOR_SIGNATURE& data) const; }; -struct FunctionMethodSignature { - private: - PCCOR_SIGNATURE pbBase; - unsigned len; - ULONG numberOfTypeArguments = 0; - ULONG numberOfArguments = 0; - FunctionMethodArgument ret{}; - std::vector params; - - public: - FunctionMethodSignature() : pbBase(nullptr), len(0) {} - FunctionMethodSignature(PCCOR_SIGNATURE pb, unsigned cbBuffer) { - pbBase = pb; - len = cbBuffer; - }; - ULONG NumberOfTypeArguments() const { return numberOfTypeArguments; } - ULONG NumberOfArguments() const { return numberOfArguments; } - WSTRING str() const { return HexStr(pbBase, len); } - FunctionMethodArgument GetRet() const { return ret; } - std::vector GetMethodArguments() const { return params; } - HRESULT TryParse(); - bool operator==(const FunctionMethodSignature& other) const { - return memcmp(pbBase, other.pbBase, len); - } - CorCallingConvention CallingConvention() const { - return CorCallingConvention(len == 0 ? 0 : pbBase[0]); - } - bool IsEmpty() const { return len == 0; } +struct FunctionMethodSignature +{ +private: + PCCOR_SIGNATURE pbBase; + unsigned len; + ULONG numberOfTypeArguments = 0; + ULONG numberOfArguments = 0; + FunctionMethodArgument ret{}; + std::vector params; + +public: + FunctionMethodSignature() : pbBase(nullptr), len(0) + { + } + FunctionMethodSignature(PCCOR_SIGNATURE pb, unsigned cbBuffer) + { + pbBase = pb; + len = cbBuffer; + }; + ULONG NumberOfTypeArguments() const + { + return numberOfTypeArguments; + } + ULONG NumberOfArguments() const + { + return numberOfArguments; + } + WSTRING str() const + { + return HexStr(pbBase, len); + } + FunctionMethodArgument GetRet() const + { + return ret; + } + std::vector GetMethodArguments() const + { + return params; + } + HRESULT TryParse(); + bool operator==(const FunctionMethodSignature& other) const + { + return memcmp(pbBase, other.pbBase, len); + } + CorCallingConvention CallingConvention() const + { + return CorCallingConvention(len == 0 ? 0 : pbBase[0]); + } + bool IsEmpty() const + { + return len == 0; + } }; +struct FunctionInfo +{ + const mdToken id; + const WSTRING name; + const TypeInfo type; + const BOOL is_generic; + const MethodSignature signature; + const MethodSignature function_spec_signature; + const mdToken method_def_id; + FunctionMethodSignature method_signature; + + FunctionInfo() : id(0), name(WStr("")), type({}), is_generic(false), method_def_id(0), method_signature({}) + { + } -struct FunctionInfo { - const mdToken id; - const WSTRING name; - const TypeInfo type; - const BOOL is_generic; - const MethodSignature signature; - const MethodSignature function_spec_signature; - const mdToken method_def_id; - FunctionMethodSignature method_signature; - - FunctionInfo() - : id(0), name(WStr("")), type({}), is_generic(false), method_def_id(0), method_signature({}) {} - - FunctionInfo(mdToken id, WSTRING name, TypeInfo type, - MethodSignature signature, - MethodSignature function_spec_signature, - mdToken method_def_id, - FunctionMethodSignature method_signature) - : id(id), + FunctionInfo(mdToken id, WSTRING name, TypeInfo type, MethodSignature signature, + MethodSignature function_spec_signature, mdToken method_def_id, + FunctionMethodSignature method_signature) : + id(id), name(name), type(type), is_generic(true), signature(signature), function_spec_signature(function_spec_signature), method_def_id(method_def_id), - method_signature(method_signature) {} + method_signature(method_signature) + { + } - FunctionInfo(mdToken id, WSTRING name, TypeInfo type, - MethodSignature signature, - FunctionMethodSignature method_signature) - : id(id), + FunctionInfo(mdToken id, WSTRING name, TypeInfo type, MethodSignature signature, + FunctionMethodSignature method_signature) : + id(id), name(name), type(type), is_generic(false), signature(signature), method_def_id(0), - method_signature(method_signature) {} + method_signature(method_signature) + { + } - bool IsValid() const { return id != 0; } + bool IsValid() const + { + return id != 0; + } }; RuntimeInformation GetRuntimeInformation(ICorProfilerInfo4* info); -AssemblyInfo GetAssemblyInfo(ICorProfilerInfo4* info, - const AssemblyID& assembly_id); +AssemblyInfo GetAssemblyInfo(ICorProfilerInfo4* info, const AssemblyID& assembly_id); -AssemblyMetadata GetAssemblyMetadata( - const ModuleID& module_id, - const ComPtr& assembly_import); +AssemblyMetadata GetAssemblyMetadata(const ModuleID& module_id, const ComPtr& assembly_import); -AssemblyMetadata GetAssemblyImportMetadata( - const ComPtr& assembly_import); +AssemblyMetadata GetAssemblyImportMetadata(const ComPtr& assembly_import); -AssemblyMetadata GetReferencedAssemblyMetadata( - const ComPtr& assembly_import, - const mdAssemblyRef& assembly_ref); +AssemblyMetadata GetReferencedAssemblyMetadata(const ComPtr& assembly_import, + const mdAssemblyRef& assembly_ref); -FunctionInfo GetFunctionInfo(const ComPtr& metadata_import, - const mdToken& token); +FunctionInfo GetFunctionInfo(const ComPtr& metadata_import, const mdToken& token); ModuleInfo GetModuleInfo(ICorProfilerInfo4* info, const ModuleID& module_id); -TypeInfo GetTypeInfo(const ComPtr& metadata_import, - const mdToken& token); +TypeInfo GetTypeInfo(const ComPtr& metadata_import, const mdToken& token); -mdAssemblyRef FindAssemblyRef( - const ComPtr& assembly_import, - const WSTRING& assembly_name); +mdAssemblyRef FindAssemblyRef(const ComPtr& assembly_import, const WSTRING& assembly_name); // FilterIntegrationsByName removes integrations whose names are specified in // disabled_integration_names -std::vector FilterIntegrationsByName( - const std::vector& integrations, - const std::vector& disabled_integration_names); +std::vector FilterIntegrationsByName(const std::vector& integrations, + const std::vector& disabled_integration_names); // FlattenIntegrations flattens integrations to per method structures -std::vector FlattenIntegrations( - const std::vector& integrations, bool is_calltarget_enabled); +std::vector FlattenIntegrations(const std::vector& integrations, + bool is_calltarget_enabled); // FilterIntegrationsByCaller removes any integrations which have a caller and // its not set to the module -std::vector FilterIntegrationsByCaller( - const std::vector& integration_methods, - const AssemblyInfo assembly); +std::vector FilterIntegrationsByCaller(const std::vector& integration_methods, + const AssemblyInfo assembly); // FilterIntegrationsByTarget removes any integrations which have a target not // referenced by the module's assembly import -std::vector FilterIntegrationsByTarget( - const std::vector& integration_methods, - const ComPtr& assembly_import); +std::vector FilterIntegrationsByTarget(const std::vector& integration_methods, + const ComPtr& assembly_import); // FilterIntegrationsByTargetAssemblyName removes any integrations which target any // of the specified assemblies -std::vector FilterIntegrationsByTargetAssemblyName( - const std::vector& integration_methods, - const std::vector& excluded_assembly_names); +std::vector +FilterIntegrationsByTargetAssemblyName(const std::vector& integration_methods, + const std::vector& excluded_assembly_names); -mdMethodSpec DefineMethodSpec(const ComPtr& metadata_emit, - const mdToken& token, +mdMethodSpec DefineMethodSpec(const ComPtr& metadata_emit, const mdToken& token, const MethodSignature& signature); bool DisableOptimizations(); bool EnableInlining(bool defaultValue); -bool IsCallTargetEnabled(); +bool IsCallTargetEnabled(bool defaultValue); -bool TryParseSignatureTypes(const ComPtr& metadata_import, - const FunctionInfo& function_info, - std::vector& signature_result); +bool TryParseSignatureTypes(const ComPtr& metadata_import, const FunctionInfo& function_info, + std::vector& signature_result); -HRESULT GetCorLibAssemblyRef(const ComPtr& assembly_emit, - AssemblyProperty& corAssemblyProperty, +HRESULT GetCorLibAssemblyRef(const ComPtr& assembly_emit, AssemblyProperty& corAssemblyProperty, mdAssemblyRef* corlib_ref); bool ReturnTypeIsValueTypeOrGeneric(const ComPtr& metadata_import, - const ComPtr& metadata_emit, - const ComPtr& assembly_emit, - AssemblyProperty& corAssemblyProperty, - const mdToken targetFunctionToken, - const MethodSignature targetFunctionSignature, - mdToken* ret_type_token); - -bool FindTypeDefByName(const trace::WSTRING instrumentationTargetMethodTypeName, - const trace::WSTRING assemblyName, - const ComPtr& metadata_import, - mdTypeDef& typeDef); -} // namespace trace - -#endif // DD_CLR_PROFILER_CLR_HELPERS_H_ + const ComPtr& metadata_emit, + const ComPtr& assembly_emit, + AssemblyProperty& corAssemblyProperty, const mdToken targetFunctionToken, + const MethodSignature targetFunctionSignature, mdToken* ret_type_token); + +bool FindTypeDefByName(const trace::WSTRING instrumentationTargetMethodTypeName, const trace::WSTRING assemblyName, + const ComPtr& metadata_import, mdTypeDef& typeDef); +} // namespace trace + +#endif // DD_CLR_PROFILER_CLR_HELPERS_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/com_ptr.h b/src/Datadog.Trace.ClrProfiler.Native/com_ptr.h index e18ee72ad9..31cd595474 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/com_ptr.h +++ b/src/Datadog.Trace.ClrProfiler.Native/com_ptr.h @@ -1,144 +1,186 @@ #ifndef DD_CLR_PROFILER_COM_PTR_H_ #define DD_CLR_PROFILER_COM_PTR_H_ -#include #include +#include // https://msdn.microsoft.com/en-us/magazine/dn904668.aspx template -class RemoveAddRefRelease : public Interface { - ULONG __stdcall AddRef(); - ULONG __stdcall Release(); +class RemoveAddRefRelease : public Interface +{ + ULONG __stdcall AddRef(); + ULONG __stdcall Release(); }; template -class ComPtr { - public: - ComPtr() noexcept = default; - - ComPtr(ComPtr const& other) noexcept : m_ptr(other.m_ptr) { - InternalAddRef(); - } - - template - friend class ComPtr; +class ComPtr +{ +public: + ComPtr() noexcept = default; + + ComPtr(ComPtr const& other) noexcept : m_ptr(other.m_ptr) + { + InternalAddRef(); + } + + template + friend class ComPtr; + + template + ComPtr(ComPtr const& other) noexcept : m_ptr(other.m_ptr) + { + InternalAddRef(); + } + + template + ComPtr(ComPtr&& other) noexcept : m_ptr(other.m_ptr) + { + other.m_ptr = nullptr; + } + + ~ComPtr() noexcept + { + InternalRelease(); + } + + void Swap(ComPtr& other) noexcept + { + Interface* temp = m_ptr; + m_ptr = other.m_ptr; + other.m_ptr = temp; + } - template - ComPtr(ComPtr const& other) noexcept : m_ptr(other.m_ptr) { - InternalAddRef(); - } - - template - ComPtr(ComPtr&& other) noexcept : m_ptr(other.m_ptr) { - other.m_ptr = nullptr; - } - - ~ComPtr() noexcept { InternalRelease(); } - - void Swap(ComPtr& other) noexcept { - Interface* temp = m_ptr; - m_ptr = other.m_ptr; - other.m_ptr = temp; - } - - void Reset() noexcept { InternalRelease(); } - - Interface* Get() const noexcept { return m_ptr; } - - Interface* Detach() noexcept { - Interface* temp = m_ptr; - m_ptr = nullptr; - return temp; - } - - void Copy(Interface* other) noexcept { InternalCopy(other); } - - void Attach(Interface* other) noexcept { - InternalRelease(); - m_ptr = other; - } - - Interface** GetAddressOf() noexcept { - assert(m_ptr == nullptr); - return &m_ptr; - } - - void CopyTo(Interface** other) const noexcept { - InternalAddRef(); - *other = m_ptr; - } - - template - ComPtr As(IID iid) const noexcept { - ComPtr temp; - m_ptr->QueryInterface(iid, reinterpret_cast(temp.GetAddressOf())); - return temp; - } - - bool IsNull() const noexcept { return nullptr == m_ptr; } - - ComPtr& operator=(ComPtr const& other) noexcept { - InternalCopy(other.m_ptr); - return *this; - } - - template - ComPtr& operator=(ComPtr const& other) noexcept { - InternalCopy(other.m_ptr); - return *this; - } - - template - ComPtr& operator=(ComPtr&& other) noexcept { - InternalMove(other); - return *this; - } - - RemoveAddRefRelease* operator->() const noexcept { - return static_cast*>(m_ptr); - } - - explicit operator bool() const noexcept { return nullptr != m_ptr; } - - private: - Interface* m_ptr = nullptr; - - void InternalAddRef() const noexcept { - if (m_ptr) { - m_ptr->AddRef(); - } - } - - void InternalRelease() noexcept { - Interface* temp = m_ptr; - if (temp) { - m_ptr = nullptr; - temp->Release(); + void Reset() noexcept + { + InternalRelease(); } - } - - void InternalCopy(Interface* other) noexcept { - if (m_ptr != other) { - InternalRelease(); - m_ptr = other; - InternalAddRef(); + + Interface* Get() const noexcept + { + return m_ptr; + } + + Interface* Detach() noexcept + { + Interface* temp = m_ptr; + m_ptr = nullptr; + return temp; + } + + void Copy(Interface* other) noexcept + { + InternalCopy(other); + } + + void Attach(Interface* other) noexcept + { + InternalRelease(); + m_ptr = other; + } + + Interface** GetAddressOf() noexcept + { + assert(m_ptr == nullptr); + return &m_ptr; + } + + void CopyTo(Interface** other) const noexcept + { + InternalAddRef(); + *other = m_ptr; } - } - - template - void InternalMove(ComPtr& other) noexcept { - if (m_ptr != other.m_ptr) { - InternalRelease(); - m_ptr = other.m_ptr; - other.m_ptr = nullptr; + + template + ComPtr As(IID iid) const noexcept + { + ComPtr temp; + m_ptr->QueryInterface(iid, reinterpret_cast(temp.GetAddressOf())); + return temp; + } + + bool IsNull() const noexcept + { + return nullptr == m_ptr; + } + + ComPtr& operator=(ComPtr const& other) noexcept + { + InternalCopy(other.m_ptr); + return *this; + } + + template + ComPtr& operator=(ComPtr const& other) noexcept + { + InternalCopy(other.m_ptr); + return *this; + } + + template + ComPtr& operator=(ComPtr&& other) noexcept + { + InternalMove(other); + return *this; + } + + RemoveAddRefRelease* operator->() const noexcept + { + return static_cast*>(m_ptr); + } + + explicit operator bool() const noexcept + { + return nullptr != m_ptr; + } + +private: + Interface* m_ptr = nullptr; + + void InternalAddRef() const noexcept + { + if (m_ptr) + { + m_ptr->AddRef(); + } + } + + void InternalRelease() noexcept + { + Interface* temp = m_ptr; + if (temp) + { + m_ptr = nullptr; + temp->Release(); + } + } + + void InternalCopy(Interface* other) noexcept + { + if (m_ptr != other) + { + InternalRelease(); + m_ptr = other; + InternalAddRef(); + } + } + + template + void InternalMove(ComPtr& other) noexcept + { + if (m_ptr != other.m_ptr) + { + InternalRelease(); + m_ptr = other.m_ptr; + other.m_ptr = nullptr; + } } - } }; template -void swap(ComPtr& left, ComPtr& right) noexcept { - left.Swap(right); +void swap(ComPtr& left, ComPtr& right) noexcept +{ + left.Swap(right); } -#endif // DD_CLR_PROFILER_COM_PTR_H_ +#endif // DD_CLR_PROFILER_COM_PTR_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/cor_profiler.cpp b/src/Datadog.Trace.ClrProfiler.Native/cor_profiler.cpp index 6b24ea00d8..142659ed9e 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/cor_profiler.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/cor_profiler.cpp @@ -1,10 +1,9 @@ #include "cor_profiler.h" +#include "corhlpr.h" #include #include -#include "corhlpr.h" -#include "version.h" #include "clr_helpers.h" #include "dd_profiler_constants.h" #include "dllmain.h" @@ -17,1479 +16,1585 @@ #include "metadata_builder.h" #include "module_metadata.h" #include "pal.h" -#include "sig_helpers.h" #include "resource.h" -#include "util.h" +#include "sig_helpers.h" #include "stats.h" +#include "util.h" +#include "version.h" #ifdef MACOS -#include #include +#include #endif -namespace trace { +namespace trace +{ CorProfiler* profiler = nullptr; // // ICorProfilerCallback methods // -HRESULT STDMETHODCALLTYPE -CorProfiler::Initialize(IUnknown* cor_profiler_info_unknown) { - auto _ = trace::Stats::Instance()->InitializeMeasure(); +HRESULT STDMETHODCALLTYPE CorProfiler::Initialize(IUnknown* cor_profiler_info_unknown) +{ + auto _ = trace::Stats::Instance()->InitializeMeasure(); - // check if debug mode is enabled - debug_logging_enabled = IsDebugEnabled(); + // check if debug mode is enabled + debug_logging_enabled = IsDebugEnabled(); - // check if dump il rewrite is enabled - dump_il_rewrite_enabled = IsDumpILRewriteEnabled(); + // check if dump il rewrite is enabled + dump_il_rewrite_enabled = IsDumpILRewriteEnabled(); - CorProfilerBase::Initialize(cor_profiler_info_unknown); + CorProfilerBase::Initialize(cor_profiler_info_unknown); - // check if tracing is completely disabled - if (IsTracingDisabled()) { - Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled in ", environment::tracing_enabled); - return E_FAIL; - } + // check if tracing is completely disabled + if (IsTracingDisabled()) + { + Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled in ", environment::tracing_enabled); + return E_FAIL; + } - #if defined(ARM64) || defined(ARM) - // - // In ARM64 and ARM, complete ReJIT support is only available from .NET 5.0 - // - ICorProfilerInfo12* info12; - HRESULT hrInfo12 = cor_profiler_info_unknown->QueryInterface(__uuidof(ICorProfilerInfo12), (void**)&info12); - if (SUCCEEDED(hrInfo12)) { - Info(".NET 5.0 runtime or greater was detected."); - } else { - Warn("DATADOG TRACER DIAGNOSTICS - Profiler disabled: .NET 5.0 runtime or greater is required on this architecture."); - return E_FAIL; - } +#if defined(ARM64) || defined(ARM) + // + // In ARM64 and ARM, complete ReJIT support is only available from .NET 5.0 + // + ICorProfilerInfo12* info12; + HRESULT hrInfo12 = cor_profiler_info_unknown->QueryInterface(__uuidof(ICorProfilerInfo12), (void**) &info12); + if (SUCCEEDED(hrInfo12)) + { + Info(".NET 5.0 runtime or greater was detected."); + } + else + { + Warn("DATADOG TRACER DIAGNOSTICS - Profiler disabled: .NET 5.0 runtime or greater is required on this " + "architecture."); + return E_FAIL; + } #endif - const auto process_name = GetCurrentProcessName(); - const auto include_process_names = - GetEnvironmentValues(environment::include_process_names); - - // if there is a process inclusion list, attach profiler only if this - // process's name is on the list - if (!include_process_names.empty() && - !Contains(include_process_names, process_name)) { - Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", process_name, " not found in ", - environment::include_process_names, "."); - return E_FAIL; - } - - const auto exclude_process_names = - GetEnvironmentValues(environment::exclude_process_names); - - // attach profiler only if this process's name is NOT on the list - if (Contains(exclude_process_names, process_name)) { - Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", process_name, " found in ", - environment::exclude_process_names, "."); - return E_FAIL; - } - - // get Profiler interface - HRESULT hr = cor_profiler_info_unknown->QueryInterface(__uuidof(ICorProfilerInfo4), (void**)&this->info_); - if (FAILED(hr)) { - Warn("DATADOG TRACER DIAGNOSTICS - Failed to attach profiler: interface ICorProfilerInfo4 not found."); - return E_FAIL; - } + const auto process_name = GetCurrentProcessName(); + const auto include_process_names = GetEnvironmentValues(environment::include_process_names); - Info("Environment variables:"); - for (auto&& env_var : env_vars_to_display) { - WSTRING env_var_value = GetEnvironmentValue(env_var); - if (debug_logging_enabled || !env_var_value.empty()) { - Info(" ", env_var, "=", env_var_value); + // if there is a process inclusion list, attach profiler only if this + // process's name is on the list + if (!include_process_names.empty() && !Contains(include_process_names, process_name)) + { + Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", process_name, " not found in ", + environment::include_process_names, "."); + return E_FAIL; } - } - if (IsAzureAppServices()) { - Info("Profiler is operating within Azure App Services context."); - in_azure_app_services = true; + const auto exclude_process_names = GetEnvironmentValues(environment::exclude_process_names); - const auto app_pool_id_value = - GetEnvironmentValue(environment::azure_app_services_app_pool_id); + // attach profiler only if this process's name is NOT on the list + if (Contains(exclude_process_names, process_name)) + { + Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", process_name, " found in ", + environment::exclude_process_names, "."); + return E_FAIL; + } - if (app_pool_id_value.size() > 1 && app_pool_id_value.at(0) == '~') { - Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", environment::azure_app_services_app_pool_id, - " ", app_pool_id_value, - " is recognized as an Azure App Services infrastructure process."); - return E_FAIL; + // get Profiler interface + HRESULT hr = cor_profiler_info_unknown->QueryInterface(__uuidof(ICorProfilerInfo4), (void**) &this->info_); + if (FAILED(hr)) + { + Warn("DATADOG TRACER DIAGNOSTICS - Failed to attach profiler: interface ICorProfilerInfo4 not found."); + return E_FAIL; } - const auto cli_telemetry_profile_value = GetEnvironmentValue( - environment::azure_app_services_cli_telemetry_profile_value); + // get ICorProfilerInfo6 for net46+ + ICorProfilerInfo6* info6; + hr = cor_profiler_info_unknown->QueryInterface(__uuidof(ICorProfilerInfo6), (void**)&info6); - if (cli_telemetry_profile_value == WStr("AzureKudu")) { - Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", app_pool_id_value, - " is recognized as Kudu, an Azure App Services reserved process."); - return E_FAIL; - } + if (SUCCEEDED(hr)) { + Debug("Interface ICorProfilerInfo6 found."); + is_net46_or_greater = true; } - // get path to integration definition JSON files - const WSTRING integrations_paths = GetEnvironmentValue(environment::integrations_path); + Info("Environment variables:"); + for (auto&& env_var : env_vars_to_display) + { + WSTRING env_var_value = GetEnvironmentValue(env_var); + if (debug_logging_enabled || !env_var_value.empty()) + { + Info(" ", env_var, "=", env_var_value); + } + } - if (integrations_paths.empty()) { - Warn("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", environment::integrations_path, - " environment variable not set."); - return E_FAIL; - } + if (IsAzureAppServices()) + { + Info("Profiler is operating within Azure App Services context."); + in_azure_app_services = true; - const auto is_calltarget_enabled = IsCallTargetEnabled(); + const auto app_pool_id_value = GetEnvironmentValue(environment::azure_app_services_app_pool_id); - // Initialize ReJIT handler and define the Rewriter Callback - if (is_calltarget_enabled) { - rejit_handler = new RejitHandler(this->info_, [this](RejitHandlerModule* mod, RejitHandlerModuleMethod* method) { - return this->CallTarget_RewriterCallback(mod, method); - }); - } else { - rejit_handler = nullptr; - } + if (app_pool_id_value.size() > 1 && app_pool_id_value.at(0) == '~') + { + Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", environment::azure_app_services_app_pool_id, " ", + app_pool_id_value, " is recognized as an Azure App Services infrastructure process."); + return E_FAIL; + } - // load all available integrations from JSON files - const std::vector all_integrations = - LoadIntegrationsFromEnvironment(); + const auto cli_telemetry_profile_value = + GetEnvironmentValue(environment::azure_app_services_cli_telemetry_profile_value); - // get list of disabled integration names - const std::vector disabled_integration_names = - GetEnvironmentValues(environment::disabled_integrations); + if (cli_telemetry_profile_value == WStr("AzureKudu")) + { + Info("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", app_pool_id_value, + " is recognized as Kudu, an Azure App Services reserved process."); + return E_FAIL; + } + } - // remove disabled integrations - const std::vector integrations = - FilterIntegrationsByName(all_integrations, disabled_integration_names); + // get path to integration definition JSON files + const WSTRING integrations_paths = GetEnvironmentValue(environment::integrations_path); - integration_methods_ = - FlattenIntegrations(integrations, is_calltarget_enabled); + if (integrations_paths.empty()) + { + Warn("DATADOG TRACER DIAGNOSTICS - Profiler disabled: ", environment::integrations_path, + " environment variable not set."); + return E_FAIL; + } - // check if there are any enabled integrations left - if (integration_methods_.empty()) { - Warn("DATADOG TRACER DIAGNOSTICS - Profiler disabled: no enabled integrations found."); - return E_FAIL; - } else { - Debug("Number of Integrations loaded: ", integration_methods_.size()); - } + const auto is_calltarget_enabled = IsCallTargetEnabled(is_net46_or_greater); - // temporarily skip the calls into netstandard.dll that were added in - // https://github.com/DataDog/dd-trace-dotnet/pull/753. - // users can opt-in to the additional instrumentation by setting environment - // variable OTEL_TRACE_NETSTANDARD_ENABLED - if (!IsNetstandardEnabled()) { - integration_methods_ = FilterIntegrationsByTargetAssemblyName( - integration_methods_, {WStr("netstandard")}); - } + // Initialize ReJIT handler and define the Rewriter Callback + if (is_calltarget_enabled) + { + rejit_handler = + new RejitHandler(this->info_, [this](RejitHandlerModule* mod, RejitHandlerModuleMethod* method) { + return this->CallTarget_RewriterCallback(mod, method); + }); + } + else + { + rejit_handler = nullptr; + } - DWORD event_mask = COR_PRF_MONITOR_JIT_COMPILATION | - COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST | - COR_PRF_MONITOR_MODULE_LOADS | - COR_PRF_MONITOR_ASSEMBLY_LOADS | - COR_PRF_DISABLE_ALL_NGEN_IMAGES; - - if (is_calltarget_enabled) { - Info("CallTarget instrumentation is enabled."); - event_mask |= COR_PRF_ENABLE_REJIT; - } else { - Info("CallTarget instrumentation is disabled."); - } + // load all available integrations from JSON files + const std::vector all_integrations = LoadIntegrationsFromEnvironment(); - if (!EnableInlining(is_calltarget_enabled)) { - Info("JIT Inlining is disabled."); - event_mask |= COR_PRF_DISABLE_INLINING; - } else { - Info("JIT Inlining is enabled."); - } + // get list of disabled integration names + const std::vector disabled_integration_names = GetEnvironmentValues(environment::disabled_integrations); - if (DisableOptimizations()) { - Info("Disabling all code optimizations."); - event_mask |= COR_PRF_DISABLE_OPTIMIZATIONS; - } + // remove disabled integrations + const std::vector integrations = + FilterIntegrationsByName(all_integrations, disabled_integration_names); - const WSTRING domain_neutral_instrumentation = - GetEnvironmentValue(environment::domain_neutral_instrumentation); + integration_methods_ = FlattenIntegrations(integrations, is_calltarget_enabled); - if (domain_neutral_instrumentation == WStr("1") || domain_neutral_instrumentation == WStr("true")) { - instrument_domain_neutral_assemblies = true; - } + // check if there are any enabled integrations left + if (integration_methods_.empty()) + { + Warn("DATADOG TRACER DIAGNOSTICS - Profiler disabled: no enabled integrations found."); + return E_FAIL; + } + else + { + Debug("Number of Integrations loaded: ", integration_methods_.size()); + } - // set event mask to subscribe to events and disable NGEN images - // get ICorProfilerInfo6 for net452+ - ICorProfilerInfo6* info6; - hr = cor_profiler_info_unknown->QueryInterface(__uuidof(ICorProfilerInfo6), (void**)&info6); + // temporarily skip the calls into netstandard.dll that were added in + // https://github.com/DataDog/dd-trace-dotnet/pull/753. + // users can opt-in to the additional instrumentation by setting environment + // variable DD_TRACE_NETSTANDARD_ENABLED + if (!IsNetstandardEnabled()) + { + integration_methods_ = FilterIntegrationsByTargetAssemblyName(integration_methods_, {WStr("netstandard")}); + } - if (SUCCEEDED(hr)) { - Debug("Interface ICorProfilerInfo6 found."); - is_net46_or_greater = true; - hr = info6->SetEventMask2(event_mask, COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES); + DWORD event_mask = COR_PRF_MONITOR_JIT_COMPILATION | COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST | + COR_PRF_MONITOR_MODULE_LOADS | COR_PRF_MONITOR_ASSEMBLY_LOADS | COR_PRF_DISABLE_ALL_NGEN_IMAGES; - if (instrument_domain_neutral_assemblies) { - Info("Note: The ", environment::domain_neutral_instrumentation, " environment variable is not needed when running on .NET Framework 4.5.2 or higher, and will be ignored."); + if (is_calltarget_enabled) + { + Info("CallTarget instrumentation is enabled."); + event_mask |= COR_PRF_ENABLE_REJIT; + } + else + { + Info("CallTarget instrumentation is disabled."); } - } else { - hr = this->info_->SetEventMask(event_mask); - if (instrument_domain_neutral_assemblies) { - Info("Detected environment variable ", environment::domain_neutral_instrumentation, - "=", domain_neutral_instrumentation); - Info("Enabling automatic instrumentation of methods called from domain-neutral assemblies. ", - "Please ensure that there is only one AppDomain or, if applications are being hosted in IIS, ", - "ensure that all Application Pools have at most one application each. ", - "Otherwise, a sharing violation (HRESULT 0x80131401) may occur."); + if (!EnableInlining(is_calltarget_enabled)) + { + Info("JIT Inlining is disabled."); + event_mask |= COR_PRF_DISABLE_INLINING; + } + else + { + Info("JIT Inlining is enabled."); } - } - if (FAILED(hr)) { - Warn("DATADOG TRACER DIAGNOSTICS - Failed to attach profiler: unable to set event mask."); - return E_FAIL; - } - runtime_information_ = GetRuntimeInformation(this->info_); - if (process_name == WStr("w3wp.exe") || - process_name == WStr("iisexpress.exe")) { - is_desktop_iis = runtime_information_.is_desktop(); - } + if (DisableOptimizations()) + { + Info("Disabling all code optimizations."); + event_mask |= COR_PRF_DISABLE_OPTIMIZATIONS; + } - // writing opcodes vector for the IL dumper -#define OPDEF(c, s, pop, push, args, type, l, s1, s2, flow) \ - opcodes_names.push_back(s); -#include "opcode.def" -#undef OPDEF - opcodes_names.push_back("(count)"); // CEE_COUNT - opcodes_names.push_back("->"); // CEE_SWITCH_ARG - - // we're in! - Info("Profiler attached."); - this->info_->AddRef(); - is_attached_.store(true); - profiler = this; - return S_OK; -} + const WSTRING domain_neutral_instrumentation = GetEnvironmentValue(environment::domain_neutral_instrumentation); -HRESULT STDMETHODCALLTYPE CorProfiler::AssemblyLoadFinished(AssemblyID assembly_id, - HRESULT hr_status) { - auto _ = trace::Stats::Instance()->AssemblyLoadFinishedMeasure(); + if (domain_neutral_instrumentation == WStr("1") || domain_neutral_instrumentation == WStr("true")) + { + instrument_domain_neutral_assemblies = true; + } - if (FAILED(hr_status)) { - // if assembly failed to load, skip it entirely, - // otherwise we can crash the process if module is not valid - CorProfilerBase::AssemblyLoadFinished(assembly_id, hr_status); - return S_OK; - } - // keep this lock until we are done using the module, - // to prevent it from unloading while in use - std::lock_guard guard(module_id_to_info_map_lock_); + // set event mask to subscribe to events and disable NGEN images + if (is_net46_or_greater) + { + hr = info6->SetEventMask2(event_mask, COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES); - // double check if is_attached_ has changed to avoid possible race condition with shutdown function - if (!is_attached_) { - return S_OK; - } + if (instrument_domain_neutral_assemblies) + { + Info("Note: The ", environment::domain_neutral_instrumentation, + " environment variable is not needed when running on .NET Framework 4.5.2 or higher, and will be " + "ignored."); + } + } + else + { + hr = this->info_->SetEventMask(event_mask); + + if (instrument_domain_neutral_assemblies) + { + Info("Detected environment variable ", environment::domain_neutral_instrumentation, "=", + domain_neutral_instrumentation); + Info("Enabling automatic instrumentation of methods called from domain-neutral assemblies. ", + "Please ensure that there is only one AppDomain or, if applications are being hosted in IIS, ", + "ensure that all Application Pools have at most one application each. ", + "Otherwise, a sharing violation (HRESULT 0x80131401) may occur."); + } + } + if (FAILED(hr)) + { + Warn("DATADOG TRACER DIAGNOSTICS - Failed to attach profiler: unable to set event mask."); + return E_FAIL; + } - const auto assembly_info = GetAssemblyInfo(this->info_, assembly_id); - if (!assembly_info.IsValid()) { - Debug("AssemblyLoadFinished: ", assembly_id, " ", hr_status); + runtime_information_ = GetRuntimeInformation(this->info_); + if (process_name == WStr("w3wp.exe") || process_name == WStr("iisexpress.exe")) + { + is_desktop_iis = runtime_information_.is_desktop(); + } + + // writing opcodes vector for the IL dumper +#define OPDEF(c, s, pop, push, args, type, l, s1, s2, flow) opcodes_names.push_back(s); +#include "opcode.def" +#undef OPDEF + opcodes_names.push_back("(count)"); // CEE_COUNT + opcodes_names.push_back("->"); // CEE_SWITCH_ARG + + // we're in! + Info("Profiler attached."); + this->info_->AddRef(); + is_attached_.store(true); + profiler = this; return S_OK; - } +} - const auto is_instrumentation_assembly = assembly_info.name == WStr("OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed"); +HRESULT STDMETHODCALLTYPE CorProfiler::AssemblyLoadFinished(AssemblyID assembly_id, HRESULT hr_status) +{ + auto _ = trace::Stats::Instance()->AssemblyLoadFinishedMeasure(); - if (is_instrumentation_assembly || debug_logging_enabled) { - if (debug_logging_enabled) { - Debug("AssemblyLoadFinished: ", assembly_id, " ", hr_status); + if (FAILED(hr_status)) + { + // if assembly failed to load, skip it entirely, + // otherwise we can crash the process if module is not valid + CorProfilerBase::AssemblyLoadFinished(assembly_id, hr_status); + return S_OK; } - ComPtr metadata_interfaces; - auto hr = this->info_->GetModuleMetaData(assembly_info.manifest_module_id, ofRead | ofWrite, IID_IMetaDataImport2, metadata_interfaces.GetAddressOf()); + // keep this lock until we are done using the module, + // to prevent it from unloading while in use + std::lock_guard guard(module_id_to_info_map_lock_); - if (FAILED(hr)) { - Warn("AssemblyLoadFinished failed to get metadata interface for module id ", assembly_info.manifest_module_id, " from assembly ", assembly_info.name); - return S_OK; + // double check if is_attached_ has changed to avoid possible race condition with shutdown function + if (!is_attached_) + { + return S_OK; } - // Get the IMetaDataAssemblyImport interface to get metadata from the managed assembly - const auto assembly_import = metadata_interfaces.As(IID_IMetaDataAssemblyImport); - const auto assembly_metadata = GetAssemblyImportMetadata(assembly_import); - - if (debug_logging_enabled) { - Debug("AssemblyLoadFinished: AssemblyName=", assembly_info.name, " AssemblyVersion=", assembly_metadata.version.str()); + const auto assembly_info = GetAssemblyInfo(this->info_, assembly_id); + if (!assembly_info.IsValid()) + { + Debug("AssemblyLoadFinished: ", assembly_id, " ", hr_status); + return S_OK; } - if (is_instrumentation_assembly) { - // Configure a version string to compare with the profiler version - std::stringstream ss; - ss << assembly_metadata.version.major << '.' - << assembly_metadata.version.minor << '.' - << assembly_metadata.version.build; - - auto assembly_version = ToWSTRING(ss.str()); + const auto is_instrumentation_assembly = assembly_info.name == WStr("Datadog.Trace.ClrProfiler.Managed"); - // Check that Major.Minor.Build match the profiler version - if (assembly_version == ToWSTRING(PROFILER_VERSION)) { - Info("AssemblyLoadFinished: OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed v", assembly_version, " matched profiler version v", PROFILER_VERSION); - managed_profiler_loaded_app_domains.insert(assembly_info.app_domain_id); - - if (runtime_information_.is_desktop() && corlib_module_loaded) { - // Set the managed_profiler_loaded_domain_neutral flag whenever the - // managed profiler is loaded shared - if (assembly_info.app_domain_id == corlib_app_domain_id) { - Info("AssemblyLoadFinished: OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed was loaded domain-neutral"); - managed_profiler_loaded_domain_neutral = true; - } else { - Info("AssemblyLoadFinished: OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed was not loaded domain-neutral"); - } + if (is_instrumentation_assembly || debug_logging_enabled) + { + if (debug_logging_enabled) + { + Debug("AssemblyLoadFinished: ", assembly_id, " ", hr_status); } - } else { - Warn("AssemblyLoadFinished: Datadog.Trace.ClrProfiler.Managed v", assembly_version, " did not match profiler version v", PROFILER_VERSION); - } - } - } - return S_OK; -} - -HRESULT STDMETHODCALLTYPE CorProfiler::ModuleLoadFinished(ModuleID module_id, - HRESULT hr_status) { - auto _ = trace::Stats::Instance()->ModuleLoadFinishedMeasure(); + ComPtr metadata_interfaces; + auto hr = this->info_->GetModuleMetaData(assembly_info.manifest_module_id, ofRead | ofWrite, + IID_IMetaDataImport2, metadata_interfaces.GetAddressOf()); - if (FAILED(hr_status)) { - // if module failed to load, skip it entirely, - // otherwise we can crash the process if module is not valid - CorProfilerBase::ModuleLoadFinished(module_id, hr_status); - return S_OK; - } + if (FAILED(hr)) + { + Warn("AssemblyLoadFinished failed to get metadata interface for module id ", + assembly_info.manifest_module_id, " from assembly ", assembly_info.name); + return S_OK; + } - if (!is_attached_) { - return S_OK; - } + // Get the IMetaDataAssemblyImport interface to get metadata from the managed assembly + const auto assembly_import = metadata_interfaces.As(IID_IMetaDataAssemblyImport); + const auto assembly_metadata = GetAssemblyImportMetadata(assembly_import); - // keep this lock until we are done using the module, - // to prevent it from unloading while in use - std::lock_guard guard(module_id_to_info_map_lock_); + if (debug_logging_enabled) + { + Debug("AssemblyLoadFinished: AssemblyName=", assembly_info.name, + " AssemblyVersion=", assembly_metadata.version.str()); + } - // double check if is_attached_ has changed to avoid possible race condition with shutdown function - if (!is_attached_) { - return S_OK; - } + if (is_instrumentation_assembly) + { + // Configure a version string to compare with the profiler version + std::stringstream ss; + ss << assembly_metadata.version.major << '.' << assembly_metadata.version.minor << '.' + << assembly_metadata.version.build; + + auto assembly_version = ToWSTRING(ss.str()); + + // Check that Major.Minor.Build match the profiler version + if (assembly_version == ToWSTRING(PROFILER_VERSION)) + { + Info("AssemblyLoadFinished: Datadog.Trace.ClrProfiler.Managed v", assembly_version, + " matched profiler version v", PROFILER_VERSION); + managed_profiler_loaded_app_domains.insert(assembly_info.app_domain_id); + + if (runtime_information_.is_desktop() && corlib_module_loaded) + { + // Set the managed_profiler_loaded_domain_neutral flag whenever the + // managed profiler is loaded shared + if (assembly_info.app_domain_id == corlib_app_domain_id) + { + Info("AssemblyLoadFinished: Datadog.Trace.ClrProfiler.Managed was loaded domain-neutral"); + managed_profiler_loaded_domain_neutral = true; + } + else + { + Info("AssemblyLoadFinished: Datadog.Trace.ClrProfiler.Managed was not loaded domain-neutral"); + } + } + } + else + { + Warn("AssemblyLoadFinished: Datadog.Trace.ClrProfiler.Managed v", assembly_version, + " did not match profiler version v", PROFILER_VERSION); + } + } + } - const auto module_info = GetModuleInfo(this->info_, module_id); - if (!module_info.IsValid()) { return S_OK; - } - - if (debug_logging_enabled) { - Debug("ModuleLoadFinished: ", module_id, " ", module_info.assembly.name, " AppDomain ", module_info.assembly.app_domain_id, " ", module_info.assembly.app_domain_name); - } +} - AppDomainID app_domain_id = module_info.assembly.app_domain_id; +HRESULT STDMETHODCALLTYPE CorProfiler::ModuleLoadFinished(ModuleID module_id, HRESULT hr_status) +{ + auto _ = trace::Stats::Instance()->ModuleLoadFinishedMeasure(); - // Identify the AppDomain ID of mscorlib which will be the Shared Domain - // because mscorlib is always a domain-neutral assembly - if (!corlib_module_loaded && - (module_info.assembly.name == WStr("mscorlib") || - module_info.assembly.name == WStr("System.Private.CoreLib"))) { - corlib_module_loaded = true; - corlib_app_domain_id = app_domain_id; + if (FAILED(hr_status)) + { + // if module failed to load, skip it entirely, + // otherwise we can crash the process if module is not valid + CorProfilerBase::ModuleLoadFinished(module_id, hr_status); + return S_OK; + } - ComPtr metadata_interfaces; - auto hr = this->info_->GetModuleMetaData(module_id, ofRead | ofWrite, IID_IMetaDataImport2, metadata_interfaces.GetAddressOf()); + if (!is_attached_) + { + return S_OK; + } - // Get the IMetaDataAssemblyImport interface to get metadata from the - // managed assembly - const auto assembly_import = metadata_interfaces.As(IID_IMetaDataAssemblyImport); - const auto assembly_metadata = GetAssemblyImportMetadata(assembly_import); + // keep this lock until we are done using the module, + // to prevent it from unloading while in use + std::lock_guard guard(module_id_to_info_map_lock_); - hr = assembly_import->GetAssemblyProps( - assembly_metadata.assembly_token, &corAssemblyProperty.ppbPublicKey, - &corAssemblyProperty.pcbPublicKey, &corAssemblyProperty.pulHashAlgId, - NULL, 0, NULL, &corAssemblyProperty.pMetaData, - &corAssemblyProperty.assemblyFlags); + // double check if is_attached_ has changed to avoid possible race condition with shutdown function + if (!is_attached_) + { + return S_OK; + } - if (FAILED(hr)) { - Warn("AssemblyLoadFinished failed to get properties for COR assembly "); + const auto module_info = GetModuleInfo(this->info_, module_id); + if (!module_info.IsValid()) + { + return S_OK; } - corAssemblyProperty.szName = module_info.assembly.name; + if (debug_logging_enabled) + { + Debug("ModuleLoadFinished: ", module_id, " ", module_info.assembly.name, " AppDomain ", + module_info.assembly.app_domain_id, " ", module_info.assembly.app_domain_name); + } - Info("COR library: ", corAssemblyProperty.szName, " ", - corAssemblyProperty.pMetaData.usMajorVersion, ".", - corAssemblyProperty.pMetaData.usMinorVersion, ".", - corAssemblyProperty.pMetaData.usRevisionNumber); + AppDomainID app_domain_id = module_info.assembly.app_domain_id; + + // Identify the AppDomain ID of mscorlib which will be the Shared Domain + // because mscorlib is always a domain-neutral assembly + if (!corlib_module_loaded && + (module_info.assembly.name == WStr("mscorlib") || module_info.assembly.name == WStr("System.Private.CoreLib"))) + { + corlib_module_loaded = true; + corlib_app_domain_id = app_domain_id; + + ComPtr metadata_interfaces; + auto hr = this->info_->GetModuleMetaData(module_id, ofRead | ofWrite, IID_IMetaDataImport2, + metadata_interfaces.GetAddressOf()); + + // Get the IMetaDataAssemblyImport interface to get metadata from the + // managed assembly + const auto assembly_import = metadata_interfaces.As(IID_IMetaDataAssemblyImport); + const auto assembly_metadata = GetAssemblyImportMetadata(assembly_import); + + hr = assembly_import->GetAssemblyProps(assembly_metadata.assembly_token, &corAssemblyProperty.ppbPublicKey, + &corAssemblyProperty.pcbPublicKey, &corAssemblyProperty.pulHashAlgId, + NULL, 0, NULL, &corAssemblyProperty.pMetaData, + &corAssemblyProperty.assemblyFlags); + + if (FAILED(hr)) + { + Warn("AssemblyLoadFinished failed to get properties for COR assembly "); + } - return S_OK; - } + corAssemblyProperty.szName = module_info.assembly.name; - // In IIS, the startup hook will be inserted into a method in System.Web (which is domain-neutral) - // but the Datadog.Trace.ClrProfiler.Managed.Loader assembly that the startup hook loads from a - // byte array will be loaded into a non-shared AppDomain. - // In this case, do not insert another startup hook into that non-shared AppDomain - if (module_info.assembly.name == WStr("Datadog.Trace.ClrProfiler.Managed.Loader")) { - Info("ModuleLoadFinished: Datadog.Trace.ClrProfiler.Managed.Loader loaded into AppDomain ", app_domain_id, " ", module_info.assembly.app_domain_name); - first_jit_compilation_app_domains.insert(app_domain_id); - return S_OK; - } + Info("COR library: ", corAssemblyProperty.szName, " ", corAssemblyProperty.pMetaData.usMajorVersion, ".", + corAssemblyProperty.pMetaData.usMinorVersion, ".", corAssemblyProperty.pMetaData.usRevisionNumber); - if (module_info.IsWindowsRuntime()) { - // We cannot obtain writable metadata interfaces on Windows Runtime modules - // or instrument their IL. - Debug("ModuleLoadFinished skipping Windows Metadata module: ", module_id, " ", module_info.assembly.name); - return S_OK; - } + return S_OK; + } - for (auto&& skip_assembly_pattern : skip_assembly_prefixes) { - if (module_info.assembly.name.rfind(skip_assembly_pattern, 0) == 0) { - Debug("ModuleLoadFinished skipping module by pattern: ", module_id, " ", - module_info.assembly.name); - return S_OK; + // In IIS, the startup hook will be inserted into a method in System.Web (which is domain-neutral) + // but the Datadog.Trace.ClrProfiler.Managed.Loader assembly that the startup hook loads from a + // byte array will be loaded into a non-shared AppDomain. + // In this case, do not insert another startup hook into that non-shared AppDomain + if (module_info.assembly.name == WStr("Datadog.Trace.ClrProfiler.Managed.Loader")) + { + Info("ModuleLoadFinished: Datadog.Trace.ClrProfiler.Managed.Loader loaded into AppDomain ", app_domain_id, " ", + module_info.assembly.app_domain_name); + first_jit_compilation_app_domains.insert(app_domain_id); + return S_OK; } - } - for (auto&& skip_assembly : skip_assemblies) { - if (module_info.assembly.name == skip_assembly) { - Debug("ModuleLoadFinished skipping known module: ", module_id, " ", - module_info.assembly.name); - return S_OK; + if (module_info.IsWindowsRuntime()) + { + // We cannot obtain writable metadata interfaces on Windows Runtime modules + // or instrument their IL. + Debug("ModuleLoadFinished skipping Windows Metadata module: ", module_id, " ", module_info.assembly.name); + return S_OK; } - } - std::vector filtered_integrations = IsCallTargetEnabled() ? - integration_methods_ : FilterIntegrationsByCaller(integration_methods_, module_info.assembly); + for (auto&& skip_assembly_pattern : skip_assembly_prefixes) + { + if (module_info.assembly.name.rfind(skip_assembly_pattern, 0) == 0) + { + Debug("ModuleLoadFinished skipping module by pattern: ", module_id, " ", module_info.assembly.name); + return S_OK; + } + } - if (filtered_integrations.empty()) { - // we don't need to instrument anything in this module, skip it - Debug("ModuleLoadFinished skipping module (filtered by caller): ", module_id, " ", module_info.assembly.name); - return S_OK; - } + for (auto&& skip_assembly : skip_assemblies) + { + if (module_info.assembly.name == skip_assembly) + { + Debug("ModuleLoadFinished skipping known module: ", module_id, " ", module_info.assembly.name); + return S_OK; + } + } - ComPtr metadata_interfaces; - auto hr = this->info_->GetModuleMetaData(module_id, ofRead | ofWrite, IID_IMetaDataImport2, metadata_interfaces.GetAddressOf()); + std::vector filtered_integrations = IsCallTargetEnabled(is_net46_or_greater) ? + integration_methods_ : FilterIntegrationsByCaller(integration_methods_, module_info.assembly); - if (FAILED(hr)) { - Warn("ModuleLoadFinished failed to get metadata interface for ", module_id, " ", module_info.assembly.name); - return S_OK; - } + if (filtered_integrations.empty()) + { + // we don't need to instrument anything in this module, skip it + Debug("ModuleLoadFinished skipping module (filtered by caller): ", module_id, " ", module_info.assembly.name); + return S_OK; + } - const auto metadata_import = metadata_interfaces.As(IID_IMetaDataImport); - const auto metadata_emit = metadata_interfaces.As(IID_IMetaDataEmit); - const auto assembly_import = metadata_interfaces.As(IID_IMetaDataAssemblyImport); - const auto assembly_emit = metadata_interfaces.As(IID_IMetaDataAssemblyEmit); + ComPtr metadata_interfaces; + auto hr = this->info_->GetModuleMetaData(module_id, ofRead | ofWrite, IID_IMetaDataImport2, + metadata_interfaces.GetAddressOf()); - // don't skip Microsoft.AspNetCore.Hosting so we can run the startup hook and - // subscribe to DiagnosticSource events. - // don't skip Dapper: it makes ADO.NET calls even though it doesn't reference - // System.Data or System.Data.Common - if (module_info.assembly.name != WStr("Microsoft.AspNetCore.Hosting") && module_info.assembly.name != WStr("Dapper") && !IsCallTargetEnabled()) { - filtered_integrations = FilterIntegrationsByTarget(filtered_integrations, assembly_import); + if (FAILED(hr)) + { + Warn("ModuleLoadFinished failed to get metadata interface for ", module_id, " ", module_info.assembly.name); + return S_OK; + } - if (filtered_integrations.empty()) { - // we don't need to instrument anything in this module, skip it - Debug("ModuleLoadFinished skipping module (filtered by target): ", module_id, " ", module_info.assembly.name); - return S_OK; + const auto metadata_import = metadata_interfaces.As(IID_IMetaDataImport); + const auto metadata_emit = metadata_interfaces.As(IID_IMetaDataEmit); + const auto assembly_import = metadata_interfaces.As(IID_IMetaDataAssemblyImport); + const auto assembly_emit = metadata_interfaces.As(IID_IMetaDataAssemblyEmit); + + // don't skip Microsoft.AspNetCore.Hosting so we can run the startup hook and + // subscribe to DiagnosticSource events. + // don't skip Dapper: it makes ADO.NET calls even though it doesn't reference + // System.Data or System.Data.Common + if (module_info.assembly.name != WStr("Microsoft.AspNetCore.Hosting") && + module_info.assembly.name != WStr("Dapper") && !IsCallTargetEnabled(is_net46_or_greater)) + { + filtered_integrations = FilterIntegrationsByTarget(filtered_integrations, assembly_import); + + if (filtered_integrations.empty()) + { + // we don't need to instrument anything in this module, skip it + Debug("ModuleLoadFinished skipping module (filtered by target): ", module_id, " ", + module_info.assembly.name); + return S_OK; + } } - } - mdModule module; - hr = metadata_import->GetModuleFromScope(&module); - if (FAILED(hr)) { - Warn("ModuleLoadFinished failed to get module metadata token for ", module_id, " ", module_info.assembly.name); - return S_OK; - } + mdModule module; + hr = metadata_import->GetModuleFromScope(&module); + if (FAILED(hr)) + { + Warn("ModuleLoadFinished failed to get module metadata token for ", module_id, " ", module_info.assembly.name); + return S_OK; + } - GUID module_version_id; - hr = metadata_import->GetScopeProps(nullptr, 0, nullptr, &module_version_id); - if (FAILED(hr)) { - Warn("ModuleLoadFinished failed to get module_version_id for ", module_id, " ", module_info.assembly.name); - return S_OK; - } + GUID module_version_id; + hr = metadata_import->GetScopeProps(nullptr, 0, nullptr, &module_version_id); + if (FAILED(hr)) + { + Warn("ModuleLoadFinished failed to get module_version_id for ", module_id, " ", module_info.assembly.name); + return S_OK; + } - ModuleMetadata* module_metadata = new ModuleMetadata( - metadata_import, metadata_emit, assembly_import, assembly_emit, - module_info.assembly.name, app_domain_id, - module_version_id, filtered_integrations, &corAssemblyProperty); + ModuleMetadata* module_metadata = + new ModuleMetadata(metadata_import, metadata_emit, assembly_import, assembly_emit, module_info.assembly.name, + app_domain_id, module_version_id, filtered_integrations, &corAssemblyProperty); - // store module info for later lookup - module_id_to_info_map_[module_id] = module_metadata; + // store module info for later lookup + module_id_to_info_map_[module_id] = module_metadata; - Debug("ModuleLoadFinished stored metadata for ", module_id, " ", - module_info.assembly.name, " AppDomain ", - module_info.assembly.app_domain_id, " ", - module_info.assembly.app_domain_name); + Debug("ModuleLoadFinished stored metadata for ", module_id, " ", module_info.assembly.name, " AppDomain ", + module_info.assembly.app_domain_id, " ", module_info.assembly.app_domain_name); - // We call the function to analyze the module and request the ReJIT of integrations defined in this module. - if (IsCallTargetEnabled()) { - CallTarget_RequestRejitForModule(module_id, module_metadata, filtered_integrations); - } + // We call the function to analyze the module and request the ReJIT of integrations defined in this module. + if (IsCallTargetEnabled(is_net46_or_greater)) + { + CallTarget_RequestRejitForModule(module_id, module_metadata, filtered_integrations); + } - return S_OK; + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfiler::ModuleUnloadStarted(ModuleID module_id) { - auto _ = trace::Stats::Instance()->ModuleUnloadStartedMeasure(); +HRESULT STDMETHODCALLTYPE CorProfiler::ModuleUnloadStarted(ModuleID module_id) +{ + auto _ = trace::Stats::Instance()->ModuleUnloadStartedMeasure(); - if (!is_attached_) { - return S_OK; - } + if (!is_attached_) + { + return S_OK; + } - if (debug_logging_enabled) { - const auto module_info = GetModuleInfo(this->info_, module_id); + if (debug_logging_enabled) + { + const auto module_info = GetModuleInfo(this->info_, module_id); - if (module_info.IsValid()) { - Debug("ModuleUnloadStarted: ", module_id, " ", module_info.assembly.name, - " AppDomain ", module_info.assembly.app_domain_id, " ", - module_info.assembly.app_domain_name); - } else { - Debug("ModuleUnloadStarted: ", module_id); + if (module_info.IsValid()) + { + Debug("ModuleUnloadStarted: ", module_id, " ", module_info.assembly.name, " AppDomain ", + module_info.assembly.app_domain_id, " ", module_info.assembly.app_domain_name); + } + else + { + Debug("ModuleUnloadStarted: ", module_id); + } } - } - // take this lock so we block until the - // module metadata is not longer being used - std::lock_guard guard(module_id_to_info_map_lock_); + // take this lock so we block until the + // module metadata is not longer being used + std::lock_guard guard(module_id_to_info_map_lock_); - // double check if is_attached_ has changed to avoid possible race condition with shutdown function - if (!is_attached_) { - return S_OK; - } + // double check if is_attached_ has changed to avoid possible race condition with shutdown function + if (!is_attached_) + { + return S_OK; + } - // remove module metadata from map - auto findRes = module_id_to_info_map_.find(module_id); - if (findRes != module_id_to_info_map_.end()) { - ModuleMetadata* metadata = findRes->second; + // remove module metadata from map + auto findRes = module_id_to_info_map_.find(module_id); + if (findRes != module_id_to_info_map_.end()) + { + ModuleMetadata* metadata = findRes->second; + + // remove appdomain id from managed_profiler_loaded_app_domains set + if (managed_profiler_loaded_app_domains.find(metadata->app_domain_id) != + managed_profiler_loaded_app_domains.end()) + { + managed_profiler_loaded_app_domains.erase(metadata->app_domain_id); + } - // remove appdomain id from managed_profiler_loaded_app_domains set - if (managed_profiler_loaded_app_domains.find(metadata->app_domain_id) != - managed_profiler_loaded_app_domains.end()) { - managed_profiler_loaded_app_domains.erase(metadata->app_domain_id); + module_id_to_info_map_.erase(module_id); + delete metadata; } - module_id_to_info_map_.erase(module_id); - delete metadata; - } - - return S_OK; + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfiler::Shutdown() { - CorProfilerBase::Shutdown(); +HRESULT STDMETHODCALLTYPE CorProfiler::Shutdown() +{ + CorProfilerBase::Shutdown(); - // keep this lock until we are done using the module, - // to prevent it from unloading while in use - std::lock_guard guard(module_id_to_info_map_lock_); + // keep this lock until we are done using the module, + // to prevent it from unloading while in use + std::lock_guard guard(module_id_to_info_map_lock_); - if (rejit_handler != nullptr) { - rejit_handler->Shutdown(); - } - Warn("Exiting. Stats: ", Stats::Instance()->ToString()); - is_attached_.store(false); - Logger::Shutdown(); - return S_OK; + if (rejit_handler != nullptr) + { + rejit_handler->Shutdown(); + } + Warn("Exiting. Stats: ", Stats::Instance()->ToString()); + is_attached_.store(false); + Logger::Shutdown(); + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfiler::ProfilerDetachSucceeded() { - if (!is_attached_) { - return S_OK; - } - CorProfilerBase::ProfilerDetachSucceeded(); +HRESULT STDMETHODCALLTYPE CorProfiler::ProfilerDetachSucceeded() +{ + if (!is_attached_) + { + return S_OK; + } + CorProfilerBase::ProfilerDetachSucceeded(); - // keep this lock until we are done using the module, - // to prevent it from unloading while in use - std::lock_guard guard(module_id_to_info_map_lock_); + // keep this lock until we are done using the module, + // to prevent it from unloading while in use + std::lock_guard guard(module_id_to_info_map_lock_); - // double check if is_attached_ has changed to avoid possible race condition with shutdown function - if (!is_attached_) { - return S_OK; - } + // double check if is_attached_ has changed to avoid possible race condition with shutdown function + if (!is_attached_) + { + return S_OK; + } - Warn("Detaching profiler."); - Logger::Instance()->Flush(); - is_attached_.store(false); - return S_OK; + Warn("Detaching profiler."); + Logger::Instance()->Flush(); + is_attached_.store(false); + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfiler::JITCompilationStarted( - FunctionID function_id, BOOL is_safe_to_block) { - auto _ = trace::Stats::Instance()->JITCompilationStartedMeasure(); +HRESULT STDMETHODCALLTYPE CorProfiler::JITCompilationStarted(FunctionID function_id, BOOL is_safe_to_block) +{ + auto _ = trace::Stats::Instance()->JITCompilationStartedMeasure(); - if (!is_attached_ || !is_safe_to_block) { - return S_OK; - } + if (!is_attached_ || !is_safe_to_block) + { + return S_OK; + } - // keep this lock until we are done using the module, - // to prevent it from unloading while in use - std::lock_guard guard(module_id_to_info_map_lock_); + // keep this lock until we are done using the module, + // to prevent it from unloading while in use + std::lock_guard guard(module_id_to_info_map_lock_); - // double check if is_attached_ has changed to avoid possible race condition with shutdown function - if (!is_attached_) { - return S_OK; - } + // double check if is_attached_ has changed to avoid possible race condition with shutdown function + if (!is_attached_) + { + return S_OK; + } - ModuleID module_id; - mdToken function_token = mdTokenNil; + ModuleID module_id; + mdToken function_token = mdTokenNil; - HRESULT hr = this->info_->GetFunctionInfo(function_id, nullptr, &module_id, &function_token); + HRESULT hr = this->info_->GetFunctionInfo(function_id, nullptr, &module_id, &function_token); - if (FAILED(hr)) { - Warn("JITCompilationStarted: Call to ICorProfilerInfo4.GetFunctionInfo() failed for ", function_id); - return S_OK; - } + if (FAILED(hr)) + { + Warn("JITCompilationStarted: Call to ICorProfilerInfo4.GetFunctionInfo() failed for ", function_id); + return S_OK; + } - // Verify that we have the metadata for this module - ModuleMetadata* module_metadata = nullptr; + // Verify that we have the metadata for this module + ModuleMetadata* module_metadata = nullptr; - auto findRes = module_id_to_info_map_.find(module_id); - if (findRes != module_id_to_info_map_.end()) { - module_metadata = findRes->second; - } + auto findRes = module_id_to_info_map_.find(module_id); + if (findRes != module_id_to_info_map_.end()) + { + module_metadata = findRes->second; + } - if (module_metadata == nullptr) { - // we haven't stored a ModuleMetadata for this module, - // so we can't modify its IL - return S_OK; - } + if (module_metadata == nullptr) + { + // we haven't stored a ModuleMetadata for this module, + // so we can't modify its IL + return S_OK; + } // We check if we are in CallTarget mode and the loader was already injected. - const bool is_calltarget_enabled = IsCallTargetEnabled(); + const bool is_calltarget_enabled = IsCallTargetEnabled(is_net46_or_greater); const bool has_loader_injected_in_appdomain = first_jit_compilation_app_domains.find(module_metadata->app_domain_id) != first_jit_compilation_app_domains.end(); - if (is_calltarget_enabled && has_loader_injected_in_appdomain) { - // Loader was already injected in a calltarget scenario, we don't need to do anything else here - return S_OK; - } - - // get function info - const auto caller = GetFunctionInfo(module_metadata->metadata_import, function_token); - if (!caller.IsValid()) { - return S_OK; - } + if (is_calltarget_enabled && has_loader_injected_in_appdomain) + { + // Loader was already injected in a calltarget scenario, we don't need to do anything else here + return S_OK; + } - if (debug_logging_enabled) { - Debug("JITCompilationStarted: function_id=", function_id, - " token=", function_token, " name=", caller.type.name, ".", - caller.name, "()"); - } + // get function info + const auto caller = GetFunctionInfo(module_metadata->metadata_import, function_token); + if (!caller.IsValid()) + { + return S_OK; + } - // IIS: Ensure that the startup hook is inserted into System.Web.Compilation.BuildManager.InvokePreStartInitMethods. - // This will be the first call-site considered for the startup hook injection, - // which correctly loads Datadog.Trace.ClrProfiler.Managed.Loader into the application's - // own AppDomain because at this point in the code path, the ApplicationImpersonationContext - // has been started. - // - // Note: This check must only run on desktop because it is possible (and the default) to host - // ASP.NET Core in-process, so a new .NET Core runtime is instantiated and run in the same w3wp.exe process - auto valid_startup_hook_callsite = true; - if (is_desktop_iis) { - valid_startup_hook_callsite = - module_metadata->assemblyName == WStr("System.Web") && - caller.type.name == WStr("System.Web.Compilation.BuildManager") && - caller.name == WStr("InvokePreStartInitMethods"); - } else if (module_metadata->assemblyName == WStr("System") || - module_metadata->assemblyName == WStr("System.Net.Http")) { - valid_startup_hook_callsite = false; - } + if (debug_logging_enabled) + { + Debug("JITCompilationStarted: function_id=", function_id, " token=", function_token, " name=", caller.type.name, + ".", caller.name, "()"); + } - // The first time a method is JIT compiled in an AppDomain, insert our startup - // hook which, at a minimum, must add an AssemblyResolve event so we can find - // OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed.dll and its dependencies on-disk since it - // is no longer provided in a NuGet package - if (valid_startup_hook_callsite && !has_loader_injected_in_appdomain) { - bool domain_neutral_assembly = runtime_information_.is_desktop() && corlib_module_loaded && module_metadata->app_domain_id == corlib_app_domain_id; - Info("JITCompilationStarted: Startup hook registered in function_id=", function_id, - " token=", function_token, " name=", caller.type.name, ".", - caller.name, "(), assembly_name=", module_metadata->assemblyName, - " app_domain_id=", module_metadata->app_domain_id, - " domain_neutral=", domain_neutral_assembly); + // IIS: Ensure that the startup hook is inserted into System.Web.Compilation.BuildManager.InvokePreStartInitMethods. + // This will be the first call-site considered for the startup hook injection, + // which correctly loads Datadog.Trace.ClrProfiler.Managed.Loader into the application's + // own AppDomain because at this point in the code path, the ApplicationImpersonationContext + // has been started. + // + // Note: This check must only run on desktop because it is possible (and the default) to host + // ASP.NET Core in-process, so a new .NET Core runtime is instantiated and run in the same w3wp.exe process + auto valid_startup_hook_callsite = true; + if (is_desktop_iis) + { + valid_startup_hook_callsite = module_metadata->assemblyName == WStr("System.Web") && + caller.type.name == WStr("System.Web.Compilation.BuildManager") && + caller.name == WStr("InvokePreStartInitMethods"); + } + else if (module_metadata->assemblyName == WStr("System") || + module_metadata->assemblyName == WStr("System.Net.Http")) + { + valid_startup_hook_callsite = false; + } - first_jit_compilation_app_domains.insert(module_metadata->app_domain_id); + // The first time a method is JIT compiled in an AppDomain, insert our startup + // hook which, at a minimum, must add an AssemblyResolve event so we can find + // Datadog.Trace.ClrProfiler.Managed.dll and its dependencies on-disk since it + // is no longer provided in a NuGet package + if (valid_startup_hook_callsite && !has_loader_injected_in_appdomain) + { + bool domain_neutral_assembly = runtime_information_.is_desktop() && corlib_module_loaded && + module_metadata->app_domain_id == corlib_app_domain_id; + Info("JITCompilationStarted: Startup hook registered in function_id=", function_id, " token=", function_token, + " name=", caller.type.name, ".", caller.name, "(), assembly_name=", module_metadata->assemblyName, + " app_domain_id=", module_metadata->app_domain_id, " domain_neutral=", domain_neutral_assembly); + + first_jit_compilation_app_domains.insert(module_metadata->app_domain_id); + + hr = RunILStartupHook(module_metadata->metadata_emit, module_id, function_token); + + if (FAILED(hr)) + { + Warn("JITCompilationStarted: Call to RunILStartupHook() failed for ", module_id, " ", function_token); + return S_OK; + } - hr = RunILStartupHook(module_metadata->metadata_emit, module_id, - function_token); + if (is_desktop_iis) + { + hr = AddIISPreStartInitFlags(module_id, function_token); - if (FAILED(hr)) { - Warn("JITCompilationStarted: Call to RunILStartupHook() failed for ", module_id, " ", function_token); - return S_OK; + if (FAILED(hr)) + { + Warn("JITCompilationStarted: Call to AddIISPreStartInitFlags() failed for ", module_id, " ", + function_token); + return S_OK; + } + } } - if (is_desktop_iis) { - hr = AddIISPreStartInitFlags(module_id, - function_token); + if (!is_calltarget_enabled) + { + // we don't actually need to instrument anything in + // Microsoft.AspNetCore.Hosting, it was included only to ensure the startup + // hook is called for AspNetCore applications + if (module_metadata->assemblyName == WStr("Microsoft.AspNetCore.Hosting")) + { + return S_OK; + } - if (FAILED(hr)) { - Warn("JITCompilationStarted: Call to AddIISPreStartInitFlags() failed for ", - module_id, " ", function_token); - return S_OK; - } - } - } + // Get valid method replacements for this caller method + const auto method_replacements = module_metadata->GetMethodReplacementsForCaller(caller); + if (method_replacements.empty()) + { + return S_OK; + } - if (!is_calltarget_enabled) { - // we don't actually need to instrument anything in - // Microsoft.AspNetCore.Hosting, it was included only to ensure the startup - // hook is called for AspNetCore applications - if (module_metadata->assemblyName == WStr("Microsoft.AspNetCore.Hosting")) { - return S_OK; - } + // Perform method insertion calls + hr = + ProcessInsertionCalls(module_metadata, function_id, module_id, function_token, caller, method_replacements); - // Get valid method replacements for this caller method - const auto method_replacements = - module_metadata->GetMethodReplacementsForCaller(caller); - if (method_replacements.empty()) { - return S_OK; - } - - // Perform method insertion calls - hr = ProcessInsertionCalls(module_metadata, - function_id, - module_id, - function_token, - caller, - method_replacements); - - if (FAILED(hr)) { - Warn("JITCompilationStarted: Call to ProcessInsertionCalls() failed for ", function_id, " ", module_id, " ", function_token); - return S_OK; - } - - // Perform method replacement calls - hr = ProcessReplacementCalls(module_metadata, - function_id, - module_id, - function_token, - caller, - method_replacements); - - if (FAILED(hr)) { - Warn("JITCompilationStarted: Call to ProcessReplacementCalls() failed for ", function_id, " ", module_id, " ", function_token); - return S_OK; - } - } + if (FAILED(hr)) + { + Warn("JITCompilationStarted: Call to ProcessInsertionCalls() failed for ", function_id, " ", module_id, " ", + function_token); + return S_OK; + } - return S_OK; -} + // Perform method replacement calls + hr = ProcessReplacementCalls(module_metadata, function_id, module_id, function_token, caller, + method_replacements); -HRESULT STDMETHODCALLTYPE CorProfiler::JITInlining(FunctionID callerId, - FunctionID calleeId, BOOL* pfShouldInline) { - auto _ = trace::Stats::Instance()->JITInliningMeasure(); + if (FAILED(hr)) + { + Warn("JITCompilationStarted: Call to ProcessReplacementCalls() failed for ", function_id, " ", module_id, + " ", function_token); + return S_OK; + } + } - if (!is_attached_) { return S_OK; - } +} - ModuleID calleeModuleId; - mdToken calleFunctionToken = mdTokenNil; - auto hr = this->info_->GetFunctionInfo(calleeId, NULL, &calleeModuleId, - &calleFunctionToken); +HRESULT STDMETHODCALLTYPE CorProfiler::JITInlining(FunctionID callerId, FunctionID calleeId, BOOL* pfShouldInline) +{ + auto _ = trace::Stats::Instance()->JITInliningMeasure(); - *pfShouldInline = true; + if (!is_attached_) + { + return S_OK; + } - if (FAILED(hr)) { - Warn("*** JITInlining: Failed to get the function info of the calleId: ", calleeId); - return S_OK; - } + ModuleID calleeModuleId; + mdToken calleFunctionToken = mdTokenNil; + auto hr = this->info_->GetFunctionInfo(calleeId, NULL, &calleeModuleId, &calleFunctionToken); - if (rejit_handler == nullptr) { - return S_OK; - } + *pfShouldInline = true; - RejitHandlerModule* handlerModule = nullptr; - if (rejit_handler->TryGetModule(calleeModuleId, &handlerModule)) { - RejitHandlerModuleMethod* handlerMethod = nullptr; - if (handlerModule->TryGetMethod(calleFunctionToken, &handlerMethod)) { - Debug("*** JITInlining: Inlining disabled for [ModuleId=", calleeModuleId, - ", MethodDef=", TokenStr(&calleFunctionToken), "]"); - *pfShouldInline = false; - return S_OK; + if (FAILED(hr)) + { + Warn("*** JITInlining: Failed to get the function info of the calleId: ", calleeId); + return S_OK; + } + + if (rejit_handler == nullptr) + { + return S_OK; + } + + RejitHandlerModule* handlerModule = nullptr; + if (rejit_handler->TryGetModule(calleeModuleId, &handlerModule)) + { + RejitHandlerModuleMethod* handlerMethod = nullptr; + if (handlerModule->TryGetMethod(calleFunctionToken, &handlerMethod)) + { + Debug("*** JITInlining: Inlining disabled for [ModuleId=", calleeModuleId, + ", MethodDef=", TokenStr(&calleFunctionToken), "]"); + *pfShouldInline = false; + return S_OK; + } } - } - return S_OK; + return S_OK; } // // ICorProfilerCallback6 methods // -HRESULT STDMETHODCALLTYPE CorProfiler::GetAssemblyReferences( - const WCHAR* wszAssemblyPath, - ICorProfilerAssemblyReferenceProvider* pAsmRefProvider) { - if (in_azure_app_services) { - Debug("GetAssemblyReferences skipping entire callback because this is running in Azure App Services, which isn't yet supported for this feature. AssemblyPath=", wszAssemblyPath); - return S_OK; - } - - // Convert the assembly path to the assembly name, assuming the assembly name - // is either or .dll - auto assemblyPathString = ToString(wszAssemblyPath); - auto filename = - assemblyPathString.substr(assemblyPathString.find_last_of("\\/") + 1); - auto lastNiDllPeriodIndex = filename.rfind(".ni.dll"); - auto lastDllPeriodIndex = filename.rfind(".dll"); - if (lastNiDllPeriodIndex != std::string::npos) { - filename.erase(lastNiDllPeriodIndex, 7); - } else if (lastDllPeriodIndex != std::string::npos) { - filename.erase(lastDllPeriodIndex, 4); - } +HRESULT STDMETHODCALLTYPE CorProfiler::GetAssemblyReferences(const WCHAR* wszAssemblyPath, + ICorProfilerAssemblyReferenceProvider* pAsmRefProvider) +{ + if (in_azure_app_services) + { + Debug("GetAssemblyReferences skipping entire callback because this is running in Azure App Services, which " + "isn't yet supported for this feature. AssemblyPath=", + wszAssemblyPath); + return S_OK; + } - const WSTRING assembly_name = ToWSTRING(filename); + // Convert the assembly path to the assembly name, assuming the assembly name + // is either or .dll + auto assemblyPathString = ToString(wszAssemblyPath); + auto filename = assemblyPathString.substr(assemblyPathString.find_last_of("\\/") + 1); + auto lastNiDllPeriodIndex = filename.rfind(".ni.dll"); + auto lastDllPeriodIndex = filename.rfind(".dll"); + if (lastNiDllPeriodIndex != std::string::npos) + { + filename.erase(lastNiDllPeriodIndex, 7); + } + else if (lastDllPeriodIndex != std::string::npos) + { + filename.erase(lastDllPeriodIndex, 4); + } - // Skip known framework assemblies that we will not instrument and, - // as a result, will not need an assembly reference to the - // managed profiler - for (auto&& skip_assembly_pattern : skip_assembly_prefixes) { - if (assembly_name.rfind(skip_assembly_pattern, 0) == 0) { - Debug("GetAssemblyReferences skipping module by pattern: Name=", - assembly_name, " Path=", wszAssemblyPath); - return S_OK; + const WSTRING assembly_name = ToWSTRING(filename); + + // Skip known framework assemblies that we will not instrument and, + // as a result, will not need an assembly reference to the + // managed profiler + for (auto&& skip_assembly_pattern : skip_assembly_prefixes) + { + if (assembly_name.rfind(skip_assembly_pattern, 0) == 0) + { + Debug("GetAssemblyReferences skipping module by pattern: Name=", assembly_name, " Path=", wszAssemblyPath); + return S_OK; + } } - } - for (auto&& skip_assembly : skip_assemblies) { - if (assembly_name == skip_assembly) { - Debug("GetAssemblyReferences skipping known assembly: Name=", - assembly_name, " Path=", wszAssemblyPath); - return S_OK; + for (auto&& skip_assembly : skip_assemblies) + { + if (assembly_name == skip_assembly) + { + Debug("GetAssemblyReferences skipping known assembly: Name=", assembly_name, " Path=", wszAssemblyPath); + return S_OK; + } } - } - // Construct an ASSEMBLYMETADATA structure for the managed profiler that can - // be consumed by the runtime - const AssemblyReference assemblyReference = trace::AssemblyReference(managed_profiler_full_assembly_version); - ASSEMBLYMETADATA assembly_metadata{}; - - assembly_metadata.usMajorVersion = assemblyReference.version.major; - assembly_metadata.usMinorVersion = assemblyReference.version.minor; - assembly_metadata.usBuildNumber = assemblyReference.version.build; - assembly_metadata.usRevisionNumber = assemblyReference.version.revision; - if (assemblyReference.locale == WStr("neutral")) { - assembly_metadata.szLocale = const_cast(WStr("\0")); - assembly_metadata.cbLocale = 0; - } else { - assembly_metadata.szLocale = - const_cast(assemblyReference.locale.c_str()); - assembly_metadata.cbLocale = (DWORD)(assemblyReference.locale.size()); - } + // Construct an ASSEMBLYMETADATA structure for the managed profiler that can + // be consumed by the runtime + const AssemblyReference assemblyReference = trace::AssemblyReference(managed_profiler_full_assembly_version); + ASSEMBLYMETADATA assembly_metadata{}; + + assembly_metadata.usMajorVersion = assemblyReference.version.major; + assembly_metadata.usMinorVersion = assemblyReference.version.minor; + assembly_metadata.usBuildNumber = assemblyReference.version.build; + assembly_metadata.usRevisionNumber = assemblyReference.version.revision; + if (assemblyReference.locale == WStr("neutral")) + { + assembly_metadata.szLocale = const_cast(WStr("\0")); + assembly_metadata.cbLocale = 0; + } + else + { + assembly_metadata.szLocale = const_cast(assemblyReference.locale.c_str()); + assembly_metadata.cbLocale = (DWORD)(assemblyReference.locale.size()); + } - DWORD public_key_size = 8; - if (assemblyReference.public_key == trace::PublicKey()) { - public_key_size = 0; - } + DWORD public_key_size = 8; + if (assemblyReference.public_key == trace::PublicKey()) + { + public_key_size = 0; + } - COR_PRF_ASSEMBLY_REFERENCE_INFO asmRefInfo; - asmRefInfo.pbPublicKeyOrToken = - (void*)&assemblyReference.public_key.data[0]; - asmRefInfo.cbPublicKeyOrToken = public_key_size; - asmRefInfo.szName = assemblyReference.name.c_str(); - asmRefInfo.pMetaData = &assembly_metadata; - asmRefInfo.pbHashValue = nullptr; - asmRefInfo.cbHashValue = 0; - asmRefInfo.dwAssemblyRefFlags = 0; - - // Attempt to extend the assembly closure of the provided assembly to include - // the managed profiler - auto hr = pAsmRefProvider->AddAssemblyReference(&asmRefInfo); - if (FAILED(hr)) { - Warn("GetAssemblyReferences failed for call from ", wszAssemblyPath); - return S_OK; - } + COR_PRF_ASSEMBLY_REFERENCE_INFO asmRefInfo; + asmRefInfo.pbPublicKeyOrToken = (void*) &assemblyReference.public_key.data[0]; + asmRefInfo.cbPublicKeyOrToken = public_key_size; + asmRefInfo.szName = assemblyReference.name.c_str(); + asmRefInfo.pMetaData = &assembly_metadata; + asmRefInfo.pbHashValue = nullptr; + asmRefInfo.cbHashValue = 0; + asmRefInfo.dwAssemblyRefFlags = 0; + + // Attempt to extend the assembly closure of the provided assembly to include + // the managed profiler + auto hr = pAsmRefProvider->AddAssemblyReference(&asmRefInfo); + if (FAILED(hr)) + { + Warn("GetAssemblyReferences failed for call from ", wszAssemblyPath); + return S_OK; + } - Debug("GetAssemblyReferences extending assembly closure for ", - assembly_name, " to include ", asmRefInfo.szName, - ". Path=", wszAssemblyPath); - instrument_domain_neutral_assemblies = true; + Debug("GetAssemblyReferences extending assembly closure for ", assembly_name, " to include ", asmRefInfo.szName, + ". Path=", wszAssemblyPath); + instrument_domain_neutral_assemblies = true; - return S_OK; + return S_OK; } -bool CorProfiler::IsAttached() const { return is_attached_; } +bool CorProfiler::IsAttached() const +{ + return is_attached_; +} // // Helper methods // -HRESULT CorProfiler::ProcessReplacementCalls( - ModuleMetadata* module_metadata, - const FunctionID function_id, - const ModuleID module_id, - const mdToken function_token, - const FunctionInfo& caller, - const std::vector method_replacements) { - ILRewriter rewriter(this->info_, nullptr, module_id, function_token); - bool modified = false; - auto hr = rewriter.Import(); - - if (FAILED(hr)) { - Warn("ProcessReplacementCalls: Call to ILRewriter.Import() failed for ", module_id, " ", function_token); - return hr; - } - - std::string original_code; - if (dump_il_rewrite_enabled) { - original_code = - GetILCodes("*** IL original code for caller: ", &rewriter, caller, module_metadata); - } +HRESULT CorProfiler::ProcessReplacementCalls(ModuleMetadata* module_metadata, const FunctionID function_id, + const ModuleID module_id, const mdToken function_token, + const FunctionInfo& caller, + const std::vector method_replacements) +{ + ILRewriter rewriter(this->info_, nullptr, module_id, function_token); + bool modified = false; + auto hr = rewriter.Import(); + + if (FAILED(hr)) + { + Warn("ProcessReplacementCalls: Call to ILRewriter.Import() failed for ", module_id, " ", function_token); + return hr; + } - // Perform method call replacements - for (auto& method_replacement : method_replacements) { - // Exit early if the method replacement isn't actually doing a replacement - if (method_replacement.wrapper_method.action != WStr("ReplaceTargetMethod")) { - continue; - } - - const auto& wrapper_method_key = - method_replacement.wrapper_method.get_method_cache_key(); - // Exit early if we previously failed to store the method ref for this wrapper_method - if (module_metadata->IsFailedWrapperMemberKey(wrapper_method_key)) { - continue; - } - - // for each IL instruction - for (ILInstr* pInstr = rewriter.GetILList()->m_pNext; - pInstr != rewriter.GetILList(); pInstr = pInstr->m_pNext) { - // only CALL or CALLVIRT - if (pInstr->m_opcode != CEE_CALL && pInstr->m_opcode != CEE_CALLVIRT) { - continue; - } - - // get the target function info, continue if its invalid - auto target = - GetFunctionInfo(module_metadata->metadata_import, pInstr->m_Arg32); - if (!target.IsValid()) { - continue; - } - - // make sure the type and method names match - if (method_replacement.target_method.type_name != target.type.name || - method_replacement.target_method.method_name != target.name) { - continue; - } - - // we add 3 parameters to every wrapper method: opcode, mdToken, and - // module_version_id - const short added_parameters_count = 3; - - auto wrapper_method_signature_size = - method_replacement.wrapper_method.method_signature.data.size(); - - if (wrapper_method_signature_size < (added_parameters_count + 3)) { - // wrapper signature must have at least 6 bytes - // 0:{CallingConvention}|1:{ParamCount}|2:{ReturnType}|3:{OpCode}|4:{mdToken}|5:{ModuleVersionId} - if (debug_logging_enabled) { - Debug( - "JITCompilationStarted skipping function call: wrapper signature " - "too short. function_id=", - function_id, " token=", function_token, - " wrapper_method=", method_replacement.wrapper_method.type_name, - ".", method_replacement.wrapper_method.method_name, - "() wrapper_method_signature_size=", - wrapper_method_signature_size); - } - - continue; - } - - auto expected_number_args = method_replacement.wrapper_method - .method_signature.NumberOfArguments(); - - // subtract the last arguments we add to every wrapper - expected_number_args = expected_number_args - added_parameters_count; - - if (target.signature.IsInstanceMethod()) { - // We always pass the instance as the first argument - expected_number_args--; - } - - auto target_arg_count = target.signature.NumberOfArguments(); - - if (expected_number_args != target_arg_count) { - // Number of arguments does not match our wrapper method - if (debug_logging_enabled) { - Debug( - "JITCompilationStarted skipping function call: argument counts " - "don't match. function_id=", - function_id, " token=", function_token, - " target_name=", target.type.name, ".", target.name, - "() expected_number_args=", expected_number_args, - " target_arg_count=", target_arg_count); - } - - continue; - } - - // Resolve the MethodRef now. If the method is generic, we'll need to use it - // to define a MethodSpec - // Generate a method ref token for the wrapper method - mdMemberRef wrapper_method_ref = mdMemberRefNil; - mdTypeRef wrapper_type_ref = mdTypeRefNil; - auto generated_wrapper_method_ref = GetWrapperMethodRef(module_metadata, - module_id, - method_replacement, - wrapper_method_ref, - wrapper_type_ref); - if (!generated_wrapper_method_ref) { - Warn( - "JITCompilationStarted failed to obtain wrapper method ref for ", - method_replacement.wrapper_method.type_name, ".", method_replacement.wrapper_method.method_name, "().", - " function_id=", function_id, " function_token=", function_token, - " name=", caller.type.name, ".", caller.name, "()"); - continue; - } - - auto method_def_md_token = target.id; - - if (target.is_generic) { - if (target.signature.NumberOfTypeArguments() != - method_replacement.wrapper_method.method_signature - .NumberOfTypeArguments()) { - // Number of generic arguments does not match our wrapper method - continue; - } - - // we need to emit a method spec to populate the generic arguments - wrapper_method_ref = - DefineMethodSpec(module_metadata->metadata_emit, wrapper_method_ref, - target.function_spec_signature); - method_def_md_token = target.method_def_id; - } - - std::vector actual_sig; - const auto successfully_parsed_signature = TryParseSignatureTypes( - module_metadata->metadata_import, target, actual_sig); - auto expected_sig = - method_replacement.target_method.signature_types; - - if (!successfully_parsed_signature) { - if (debug_logging_enabled) { - Debug( - "JITCompilationStarted skipping function call: failed to parse " - "signature. function_id=", - function_id, " token=", function_token, - " target_name=", target.type.name, ".", target.name, "()", - " successfully_parsed_signature=", successfully_parsed_signature, - " sig_types.size()=", actual_sig.size(), - " expected_sig_types.size()=", expected_sig.size()); - } - - continue; - } - - if (actual_sig.size() != expected_sig.size()) { - // we can't safely assume our wrapper methods handle the types - if (debug_logging_enabled) { - Debug( - "JITCompilationStarted skipping function call: unexpected type " - "count. function_id=", - function_id, " token=", function_token, - " target_name=", target.type.name, ".", target.name, - "() successfully_parsed_signature=", - successfully_parsed_signature, - " sig_types.size()=", actual_sig.size(), - " expected_sig_types.size()=", expected_sig.size()); - } - - continue; - } - - auto is_match = true; - for (size_t i = 0; i < expected_sig.size(); i++) { - if (expected_sig[i] == WStr("_")) { - // We are supposed to ignore this index - continue; - } - if (expected_sig[i] != actual_sig[i]) { - // we have a type mismatch, drop out - if (debug_logging_enabled) { - Debug( - "JITCompilationStarted skipping function call: types don't " - "match. function_id=", - function_id, " token=", function_token, - " target_name=", target.type.name, ".", target.name, - "() actual[", i, "]=", actual_sig[i], ", expected[", - i, "]=", expected_sig[i]); - } - - is_match = false; - break; - } - } - - if (!is_match) { - // signatures don't match - continue; - } - - // At this point we know we've hit a match. Error out if - // 1) The managed profiler has not been loaded yet - // 2) The caller is domain-neutral AND we do not want to instrument domain-neutral assemblies - // 3) The target instruction is a constrained virtual method call (a constrained IL instruction followed by a callvirt IL instruction) - - // 1) The managed profiler has not been loaded yet - if (!ProfilerAssemblyIsLoadedIntoAppDomain(module_metadata->app_domain_id)) { - Warn( - "JITCompilationStarted skipping method: Method replacement " - "found but the managed profiler has not yet been loaded " - "into AppDomain with id=", module_metadata->app_domain_id, - " function_id=", function_id, " token=", function_token, - " caller_name=", caller.type.name, ".", caller.name, "()", - " target_name=", target.type.name, ".", target.name, "()"); - continue; - } - - // 2) The caller is domain-neutral AND we do not want to instrument domain-neutral assemblies - bool caller_assembly_is_domain_neutral = - runtime_information_.is_desktop() && corlib_module_loaded && - module_metadata->app_domain_id == corlib_app_domain_id; - - if (caller_assembly_is_domain_neutral && !instrument_domain_neutral_assemblies) { - Warn( - "JITCompilationStarted skipping method: Method replacement", - " found but the calling assembly ", module_metadata->assemblyName, - " has been loaded domain-neutral so its code is being shared across AppDomains," - " making it unsafe for automatic instrumentation.", - " function_id=", function_id, " token=", function_token, - " caller_name=", caller.type.name, ".", caller.name, "()", - " target_name=", target.type.name, ".", target.name, "()"); - continue; - } - - // 3) The target instruction is a constrained virtual method call (a constrained IL instruction followed by a callvirt IL instruction) - if (pInstr->m_opcode == CEE_CALLVIRT && pInstr->m_pPrev->m_opcode == CEE_CONSTRAINED) { - Warn("JITCompilationStarted skipping method: Method replacement", - " found but the target method call is a constrained virtual method call ", - " (a 'constrained' IL instruction followed by a 'callvirt' IL instruction).", - " This type of method call is not currently supported for automatic" - " instrumentation.", - " function_id=", function_id, " token=", function_token, - " caller_name=", caller.type.name, ".", caller.name, "()", - " target_name=", target.type.name, ".", target.name, "()"); - continue; - } - - const auto original_argument = pInstr->m_Arg32; - const void* module_version_id_ptr = &module_metadata->module_version_id; - - // Begin IL Modification - ILRewriterWrapper rewriter_wrapper(&rewriter); - rewriter_wrapper.SetILPosition(pInstr); - - // IL Modification #1: Replace original method call with a NOP, so that all original - // jump targets resolve correctly and we correctly populate the - // stack with additional arguments - // - // IMPORTANT: Conditional branches may jump to the original call instruction which - // resulted in the InvalidProgramException seen in - // https://github.com/DataDog/dd-trace-dotnet/pull/542. To avoid this, we'll do - // the rest of our IL modifications AFTER this instruction. - auto original_methodcall_opcode = pInstr->m_opcode; - pInstr->m_opcode = CEE_NOP; - pInstr = pInstr->m_pNext; - rewriter_wrapper.SetILPosition(pInstr); - - // IL Modification #2: Conditionally box System.Threading.CancellationToken or System.ReadOnlyMemory - // if it is the last argument in the target method. - // - // System.Threading.CancellationToken: - // If the last argument in the method signature is of the type - // System.Threading.CancellationToken (a struct) then box it before calling our - // integration method. This resolves https://github.com/DataDog/dd-trace-dotnet/issues/662, - // in which we did not box the System.Threading.CancellationToken object, even though the - // wrapper method expects an object. In that issue we observed some strange CLR behavior - // when the target method was in System.Data and the environment was 32-bit .NET Framework: - // the CLR swapped the values of the CancellationToken argument and the opCode argument. - // For example, the VIRTCALL opCode is '0x6F' and this value would be placed at the memory - // location assigned to the CancellationToken variable. Since we treat the CancellationToken - // variable as an object, this '0x6F' would be dereference to access the underlying object, - // and an invalid memory read would occur and crash the application. - // - // System.ReadOnlyMemory: - // If the last argument in the method signature is of the type - // System.ReadOnlyMemory (a generic valuetype) then box it before calling our - // integration method. We need this modification for RabbitMQ.Client 6.x.x instrumentation - // that uses System.ReadOnlyMemory instead of byte[] for the message body parameter. - // - // Currently, all integrations that use either of the two types - // have the argument as the last argument in the signature (lucky us!). - // For now, we'll do the following: - // 1) Get the method signature of the original target method - // 2) Read the signature until the final argument type - // 3) Check for System.Threading.CancellationToken - // 3a) If the type begins with `ELEMENT_TYPE_VALUETYPE`, uncompress the compressed type token that follows - // 3b) If the type token represents System.Threading.CancellationToken, emit a 'box ' IL instruction before calling our wrapper method - // 4) Check for System.ReadOnlyMemory - // 4a) If the type begins with `ELEMENT_TYPE_GENERICINST` and if the next byte is `ELEMENT_TYPE_VALUETYPE`, uncompress the compressed type token that follows - // 4b) If the type token represents System.ReadOnlyMemory, emit a 'box ' IL instruction before calling our wrapper method. The type token - // will be a TypeSpec representing the specific generic instantiation of System.ReadOnlyMemory - auto original_method_def = target.id; - size_t argument_count = target.signature.NumberOfArguments(); - size_t return_type_index = target.signature.IndexOfReturnType(); - PCCOR_SIGNATURE pSigCurrent = PCCOR_SIGNATURE(&target.signature.data[return_type_index]); // index to the location of the return type - bool signature_read_success = true; - - // iterate until the pointer is pointing at the last argument - for (size_t signature_types_index = 0; signature_types_index < argument_count; signature_types_index++) { - if (!ParseType(&pSigCurrent)) { - signature_read_success = false; - break; - } - } - - // read the last argument type - if (signature_read_success && *pSigCurrent == ELEMENT_TYPE_VALUETYPE) { - pSigCurrent++; - mdToken valuetype_type_token = CorSigUncompressToken(pSigCurrent); - - // Currently, we only expect to see `System.Threading.CancellationToken` as a valuetype in this position - // If we expand this to a general case, we would always perform the boxing regardless of type - if (GetTypeInfo(module_metadata->metadata_import, valuetype_type_token).name == WStr("System.Threading.CancellationToken")) { - rewriter_wrapper.Box(valuetype_type_token); - } - } - - if (signature_read_success && *pSigCurrent == ELEMENT_TYPE_GENERICINST) { - PCCOR_SIGNATURE p_start_byte = pSigCurrent; - PCCOR_SIGNATURE p_end_byte = p_start_byte; - - pSigCurrent++; - - if (*pSigCurrent == ELEMENT_TYPE_VALUETYPE) { - pSigCurrent++; - mdToken valuetype_type_token = CorSigUncompressToken(pSigCurrent); - - // Currently, we only expect to see - // `System.ReadOnlyMemory` as a valuetype in this - // position If we expand this to a general case, we would always - // perform the boxing regardless of type - if (GetTypeInfo(module_metadata->metadata_import, valuetype_type_token).name == WStr("System.ReadOnlyMemory`1") - && ParseType(&p_end_byte)) { - size_t length = p_end_byte - p_start_byte; - mdTypeSpec type_token; - module_metadata->metadata_emit->GetTokenFromTypeSpec( - p_start_byte, (ULONG)length, &type_token); - rewriter_wrapper.Box(type_token); - } - } - } - - // IL Modification #3: Insert a non-virtual call (CALL) to the instrumentation wrapper. - // Always use CALL because the wrapper methods are all static. - rewriter_wrapper.CallMember(wrapper_method_ref, false); - rewriter_wrapper.SetILPosition(pInstr->m_pPrev); // Set ILPosition to method call - - // IL Modification #4: Push the following additional arguments on the evaluation stack in the - // following order, which all integration wrapper methods expect: - // 1) [int32] original CALL/CALLVIRT opCode - // 2) [int32] mdToken for original method call target - // 3) [int64] pointer to MVID - rewriter_wrapper.LoadInt32(original_methodcall_opcode); - rewriter_wrapper.LoadInt32(method_def_md_token); - rewriter_wrapper.LoadInt64(reinterpret_cast(module_version_id_ptr)); - - // IL Modification #5: Conditionally emit an unbox.any instruction on the return value - // of the wrapper method if we return an object but the original - // method call returned a valuetype or a generic type. - // - // This resolves https://github.com/DataDog/dd-trace-dotnet/pull/566, which raised a - // System.EntryPointNotFoundException. This occurred because the return type of the - // generic method was a generic type that evaluated to a value type at runtime. As a - // result, this caller method expected an unboxed representation of the return value, - // even though we can only return values of type object. So if we detect that the - // expected return type is a valuetype or a generic type, issue an unbox.any - // instruction that will unbox it. - mdToken typeToken; - if (method_replacement.wrapper_method.method_signature.ReturnTypeIsObject() - && ReturnTypeIsValueTypeOrGeneric(module_metadata->metadata_import, - module_metadata->metadata_emit, - module_metadata->assembly_emit, - corAssemblyProperty, - target.id, - target.signature, - &typeToken)) { - if (debug_logging_enabled) { - Debug( - "JITCompilationStarted inserting 'unbox.any ", typeToken, - "' instruction after calling target function." - " function_id=", function_id, - " token=", function_token, - " target_name=", target.type.name, ".", target.name,"()"); - } - rewriter_wrapper.UnboxAnyAfter(typeToken); - } - - // End IL Modification - modified = true; - Info("*** JITCompilationStarted() replaced calls from ", caller.type.name, - ".", caller.name, "() to ", - method_replacement.target_method.type_name, ".", - method_replacement.target_method.method_name, "() ", - original_argument, " with calls to ", - method_replacement.wrapper_method.type_name, ".", - method_replacement.wrapper_method.method_name, "() ", - wrapper_method_ref); + std::string original_code; + if (dump_il_rewrite_enabled) + { + original_code = GetILCodes("*** IL original code for caller: ", &rewriter, caller, module_metadata); } - } - if (modified) { - hr = rewriter.Export(); + // Perform method call replacements + for (auto& method_replacement : method_replacements) + { + // Exit early if the method replacement isn't actually doing a replacement + if (method_replacement.wrapper_method.action != WStr("ReplaceTargetMethod")) + { + continue; + } + + const auto& wrapper_method_key = method_replacement.wrapper_method.get_method_cache_key(); + // Exit early if we previously failed to store the method ref for this wrapper_method + if (module_metadata->IsFailedWrapperMemberKey(wrapper_method_key)) + { + continue; + } + + // for each IL instruction + for (ILInstr* pInstr = rewriter.GetILList()->m_pNext; pInstr != rewriter.GetILList(); pInstr = pInstr->m_pNext) + { + // only CALL or CALLVIRT + if (pInstr->m_opcode != CEE_CALL && pInstr->m_opcode != CEE_CALLVIRT) + { + continue; + } + + // get the target function info, continue if its invalid + auto target = GetFunctionInfo(module_metadata->metadata_import, pInstr->m_Arg32); + if (!target.IsValid()) + { + continue; + } + + // make sure the type and method names match + if (method_replacement.target_method.type_name != target.type.name || + method_replacement.target_method.method_name != target.name) + { + continue; + } + + // we add 3 parameters to every wrapper method: opcode, mdToken, and + // module_version_id + const short added_parameters_count = 3; + + auto wrapper_method_signature_size = method_replacement.wrapper_method.method_signature.data.size(); + + if (wrapper_method_signature_size < (added_parameters_count + 3)) + { + // wrapper signature must have at least 6 bytes + // 0:{CallingConvention}|1:{ParamCount}|2:{ReturnType}|3:{OpCode}|4:{mdToken}|5:{ModuleVersionId} + if (debug_logging_enabled) + { + Debug("JITCompilationStarted skipping function call: wrapper signature " + "too short. function_id=", + function_id, " token=", function_token, + " wrapper_method=", method_replacement.wrapper_method.type_name, ".", + method_replacement.wrapper_method.method_name, + "() wrapper_method_signature_size=", wrapper_method_signature_size); + } + + continue; + } + + auto expected_number_args = method_replacement.wrapper_method.method_signature.NumberOfArguments(); + + // subtract the last arguments we add to every wrapper + expected_number_args = expected_number_args - added_parameters_count; + + if (target.signature.IsInstanceMethod()) + { + // We always pass the instance as the first argument + expected_number_args--; + } + + auto target_arg_count = target.signature.NumberOfArguments(); + + if (expected_number_args != target_arg_count) + { + // Number of arguments does not match our wrapper method + if (debug_logging_enabled) + { + Debug("JITCompilationStarted skipping function call: argument counts " + "don't match. function_id=", + function_id, " token=", function_token, " target_name=", target.type.name, ".", target.name, + "() expected_number_args=", expected_number_args, " target_arg_count=", target_arg_count); + } + + continue; + } + + // Resolve the MethodRef now. If the method is generic, we'll need to use it + // to define a MethodSpec + // Generate a method ref token for the wrapper method + mdMemberRef wrapper_method_ref = mdMemberRefNil; + mdTypeRef wrapper_type_ref = mdTypeRefNil; + auto generated_wrapper_method_ref = GetWrapperMethodRef(module_metadata, module_id, method_replacement, + wrapper_method_ref, wrapper_type_ref); + if (!generated_wrapper_method_ref) + { + Warn("JITCompilationStarted failed to obtain wrapper method ref for ", + method_replacement.wrapper_method.type_name, ".", method_replacement.wrapper_method.method_name, + "().", " function_id=", function_id, " function_token=", function_token, + " name=", caller.type.name, ".", caller.name, "()"); + continue; + } + + auto method_def_md_token = target.id; + + if (target.is_generic) + { + if (target.signature.NumberOfTypeArguments() != + method_replacement.wrapper_method.method_signature.NumberOfTypeArguments()) + { + // Number of generic arguments does not match our wrapper method + continue; + } + + // we need to emit a method spec to populate the generic arguments + wrapper_method_ref = DefineMethodSpec(module_metadata->metadata_emit, wrapper_method_ref, + target.function_spec_signature); + method_def_md_token = target.method_def_id; + } + + std::vector actual_sig; + const auto successfully_parsed_signature = + TryParseSignatureTypes(module_metadata->metadata_import, target, actual_sig); + auto expected_sig = method_replacement.target_method.signature_types; + + if (!successfully_parsed_signature) + { + if (debug_logging_enabled) + { + Debug("JITCompilationStarted skipping function call: failed to parse " + "signature. function_id=", + function_id, " token=", function_token, " target_name=", target.type.name, ".", target.name, + "()", " successfully_parsed_signature=", successfully_parsed_signature, + " sig_types.size()=", actual_sig.size(), " expected_sig_types.size()=", expected_sig.size()); + } + + continue; + } + + if (actual_sig.size() != expected_sig.size()) + { + // we can't safely assume our wrapper methods handle the types + if (debug_logging_enabled) + { + Debug("JITCompilationStarted skipping function call: unexpected type " + "count. function_id=", + function_id, " token=", function_token, " target_name=", target.type.name, ".", target.name, + "() successfully_parsed_signature=", successfully_parsed_signature, + " sig_types.size()=", actual_sig.size(), " expected_sig_types.size()=", expected_sig.size()); + } + + continue; + } + + auto is_match = true; + for (size_t i = 0; i < expected_sig.size(); i++) + { + if (expected_sig[i] == WStr("_")) + { + // We are supposed to ignore this index + continue; + } + if (expected_sig[i] != actual_sig[i]) + { + // we have a type mismatch, drop out + if (debug_logging_enabled) + { + Debug("JITCompilationStarted skipping function call: types don't " + "match. function_id=", + function_id, " token=", function_token, " target_name=", target.type.name, ".", + target.name, "() actual[", i, "]=", actual_sig[i], ", expected[", i, + "]=", expected_sig[i]); + } + + is_match = false; + break; + } + } - if (FAILED(hr)) { - Warn("ProcessReplacementCalls: Call to ILRewriter.Export() failed for ModuleID=", module_id, " ", function_token); - return hr; + if (!is_match) + { + // signatures don't match + continue; + } + + // At this point we know we've hit a match. Error out if + // 1) The managed profiler has not been loaded yet + // 2) The caller is domain-neutral AND we do not want to instrument domain-neutral assemblies + // 3) The target instruction is a constrained virtual method call (a constrained IL instruction followed + // by a callvirt IL instruction) + + // 1) The managed profiler has not been loaded yet + if (!ProfilerAssemblyIsLoadedIntoAppDomain(module_metadata->app_domain_id)) + { + Warn("JITCompilationStarted skipping method: Method replacement " + "found but the managed profiler has not yet been loaded " + "into AppDomain with id=", + module_metadata->app_domain_id, " function_id=", function_id, " token=", function_token, + " caller_name=", caller.type.name, ".", caller.name, "()", " target_name=", target.type.name, ".", + target.name, "()"); + continue; + } + + // 2) The caller is domain-neutral AND we do not want to instrument domain-neutral assemblies + bool caller_assembly_is_domain_neutral = runtime_information_.is_desktop() && corlib_module_loaded && + module_metadata->app_domain_id == corlib_app_domain_id; + + if (caller_assembly_is_domain_neutral && !instrument_domain_neutral_assemblies) + { + Warn("JITCompilationStarted skipping method: Method replacement", " found but the calling assembly ", + module_metadata->assemblyName, + " has been loaded domain-neutral so its code is being shared across AppDomains," + " making it unsafe for automatic instrumentation.", + " function_id=", function_id, " token=", function_token, " caller_name=", caller.type.name, ".", + caller.name, "()", " target_name=", target.type.name, ".", target.name, "()"); + continue; + } + + // 3) The target instruction is a constrained virtual method call (a constrained IL instruction followed + // by a callvirt IL instruction) + if (pInstr->m_opcode == CEE_CALLVIRT && pInstr->m_pPrev->m_opcode == CEE_CONSTRAINED) + { + Warn("JITCompilationStarted skipping method: Method replacement", + " found but the target method call is a constrained virtual method call ", + " (a 'constrained' IL instruction followed by a 'callvirt' IL instruction).", + " This type of method call is not currently supported for automatic" + " instrumentation.", + " function_id=", function_id, " token=", function_token, " caller_name=", caller.type.name, ".", + caller.name, "()", " target_name=", target.type.name, ".", target.name, "()"); + continue; + } + + const auto original_argument = pInstr->m_Arg32; + const void* module_version_id_ptr = &module_metadata->module_version_id; + + // Begin IL Modification + ILRewriterWrapper rewriter_wrapper(&rewriter); + rewriter_wrapper.SetILPosition(pInstr); + + // IL Modification #1: Replace original method call with a NOP, so that all original + // jump targets resolve correctly and we correctly populate the + // stack with additional arguments + // + // IMPORTANT: Conditional branches may jump to the original call instruction which + // resulted in the InvalidProgramException seen in + // https://github.com/DataDog/dd-trace-dotnet/pull/542. To avoid this, we'll do + // the rest of our IL modifications AFTER this instruction. + auto original_methodcall_opcode = pInstr->m_opcode; + pInstr->m_opcode = CEE_NOP; + pInstr = pInstr->m_pNext; + rewriter_wrapper.SetILPosition(pInstr); + + // IL Modification #2: Conditionally box System.Threading.CancellationToken or System.ReadOnlyMemory + // if it is the last argument in the target method. + // + // System.Threading.CancellationToken: + // If the last argument in the method signature is of the type + // System.Threading.CancellationToken (a struct) then box it before calling our + // integration method. This resolves https://github.com/DataDog/dd-trace-dotnet/issues/662, + // in which we did not box the System.Threading.CancellationToken object, even though the + // wrapper method expects an object. In that issue we observed some strange CLR behavior + // when the target method was in System.Data and the environment was 32-bit .NET Framework: + // the CLR swapped the values of the CancellationToken argument and the opCode argument. + // For example, the VIRTCALL opCode is '0x6F' and this value would be placed at the memory + // location assigned to the CancellationToken variable. Since we treat the CancellationToken + // variable as an object, this '0x6F' would be dereference to access the underlying object, + // and an invalid memory read would occur and crash the application. + // + // System.ReadOnlyMemory: + // If the last argument in the method signature is of the type + // System.ReadOnlyMemory (a generic valuetype) then box it before calling our + // integration method. We need this modification for RabbitMQ.Client 6.x.x instrumentation + // that uses System.ReadOnlyMemory instead of byte[] for the message body parameter. + // + // Currently, all integrations that use either of the two types + // have the argument as the last argument in the signature (lucky us!). + // For now, we'll do the following: + // 1) Get the method signature of the original target method + // 2) Read the signature until the final argument type + // 3) Check for System.Threading.CancellationToken + // 3a) If the type begins with `ELEMENT_TYPE_VALUETYPE`, uncompress the compressed type token that + // follows 3b) If the type token represents System.Threading.CancellationToken, emit a 'box + // ' IL instruction before calling our wrapper method + // 4) Check for System.ReadOnlyMemory + // 4a) If the type begins with `ELEMENT_TYPE_GENERICINST` and if the next byte is + // `ELEMENT_TYPE_VALUETYPE`, uncompress the compressed type token that follows 4b) If the type token + // represents System.ReadOnlyMemory, emit a 'box ' IL instruction before calling our + // wrapper method. The type token + // will be a TypeSpec representing the specific generic instantiation of System.ReadOnlyMemory + auto original_method_def = target.id; + size_t argument_count = target.signature.NumberOfArguments(); + size_t return_type_index = target.signature.IndexOfReturnType(); + PCCOR_SIGNATURE pSigCurrent = + PCCOR_SIGNATURE(&target.signature.data[return_type_index]); // index to the location of the return type + bool signature_read_success = true; + + // iterate until the pointer is pointing at the last argument + for (size_t signature_types_index = 0; signature_types_index < argument_count; signature_types_index++) + { + if (!ParseType(&pSigCurrent)) + { + signature_read_success = false; + break; + } + } + + // read the last argument type + if (signature_read_success && *pSigCurrent == ELEMENT_TYPE_VALUETYPE) + { + pSigCurrent++; + mdToken valuetype_type_token = CorSigUncompressToken(pSigCurrent); + + // Currently, we only expect to see `System.Threading.CancellationToken` as a valuetype in this position + // If we expand this to a general case, we would always perform the boxing regardless of type + if (GetTypeInfo(module_metadata->metadata_import, valuetype_type_token).name == + WStr("System.Threading.CancellationToken")) + { + rewriter_wrapper.Box(valuetype_type_token); + } + } + + if (signature_read_success && *pSigCurrent == ELEMENT_TYPE_GENERICINST) + { + PCCOR_SIGNATURE p_start_byte = pSigCurrent; + PCCOR_SIGNATURE p_end_byte = p_start_byte; + + pSigCurrent++; + + if (*pSigCurrent == ELEMENT_TYPE_VALUETYPE) + { + pSigCurrent++; + mdToken valuetype_type_token = CorSigUncompressToken(pSigCurrent); + + // Currently, we only expect to see + // `System.ReadOnlyMemory` as a valuetype in this + // position If we expand this to a general case, we would always + // perform the boxing regardless of type + if (GetTypeInfo(module_metadata->metadata_import, valuetype_type_token).name == + WStr("System.ReadOnlyMemory`1") && + ParseType(&p_end_byte)) + { + size_t length = p_end_byte - p_start_byte; + mdTypeSpec type_token; + module_metadata->metadata_emit->GetTokenFromTypeSpec(p_start_byte, (ULONG) length, &type_token); + rewriter_wrapper.Box(type_token); + } + } + } + + // IL Modification #3: Insert a non-virtual call (CALL) to the instrumentation wrapper. + // Always use CALL because the wrapper methods are all static. + rewriter_wrapper.CallMember(wrapper_method_ref, false); + rewriter_wrapper.SetILPosition(pInstr->m_pPrev); // Set ILPosition to method call + + // IL Modification #4: Push the following additional arguments on the evaluation stack in the + // following order, which all integration wrapper methods expect: + // 1) [int32] original CALL/CALLVIRT opCode + // 2) [int32] mdToken for original method call target + // 3) [int64] pointer to MVID + rewriter_wrapper.LoadInt32(original_methodcall_opcode); + rewriter_wrapper.LoadInt32(method_def_md_token); + rewriter_wrapper.LoadInt64(reinterpret_cast(module_version_id_ptr)); + + // IL Modification #5: Conditionally emit an unbox.any instruction on the return value + // of the wrapper method if we return an object but the original + // method call returned a valuetype or a generic type. + // + // This resolves https://github.com/DataDog/dd-trace-dotnet/pull/566, which raised a + // System.EntryPointNotFoundException. This occurred because the return type of the + // generic method was a generic type that evaluated to a value type at runtime. As a + // result, this caller method expected an unboxed representation of the return value, + // even though we can only return values of type object. So if we detect that the + // expected return type is a valuetype or a generic type, issue an unbox.any + // instruction that will unbox it. + mdToken typeToken; + if (method_replacement.wrapper_method.method_signature.ReturnTypeIsObject() && + ReturnTypeIsValueTypeOrGeneric(module_metadata->metadata_import, module_metadata->metadata_emit, + module_metadata->assembly_emit, corAssemblyProperty, target.id, + target.signature, &typeToken)) + { + if (debug_logging_enabled) + { + Debug("JITCompilationStarted inserting 'unbox.any ", typeToken, + "' instruction after calling target function." + " function_id=", + function_id, " token=", function_token, " target_name=", target.type.name, ".", target.name, + "()"); + } + rewriter_wrapper.UnboxAnyAfter(typeToken); + } + + // End IL Modification + modified = true; + Info("*** JITCompilationStarted() replaced calls from ", caller.type.name, ".", caller.name, "() to ", + method_replacement.target_method.type_name, ".", method_replacement.target_method.method_name, "() ", + original_argument, " with calls to ", method_replacement.wrapper_method.type_name, ".", + method_replacement.wrapper_method.method_name, "() ", wrapper_method_ref); + } } - if (dump_il_rewrite_enabled) { - Info(original_code); - Info(GetILCodes("*** IL modification for caller: ", &rewriter, caller, module_metadata)); + if (modified) + { + hr = rewriter.Export(); + + if (FAILED(hr)) + { + Warn("ProcessReplacementCalls: Call to ILRewriter.Export() failed for ModuleID=", module_id, " ", + function_token); + return hr; + } + + if (dump_il_rewrite_enabled) + { + Info(original_code); + Info(GetILCodes("*** IL modification for caller: ", &rewriter, caller, module_metadata)); + } } - } - return S_OK; + return S_OK; } -HRESULT CorProfiler::ProcessInsertionCalls( - ModuleMetadata* module_metadata, - const FunctionID function_id, - const ModuleID module_id, - const mdToken function_token, - const FunctionInfo& caller, - const std::vector method_replacements) { +HRESULT CorProfiler::ProcessInsertionCalls(ModuleMetadata* module_metadata, const FunctionID function_id, + const ModuleID module_id, const mdToken function_token, + const FunctionInfo& caller, + const std::vector method_replacements) +{ - ILRewriter rewriter(this->info_, nullptr, module_id, function_token); - bool modified = false; + ILRewriter rewriter(this->info_, nullptr, module_id, function_token); + bool modified = false; - auto hr = rewriter.Import(); + auto hr = rewriter.Import(); - if (FAILED(hr)) { - Warn("ProcessInsertionCalls: Call to ILRewriter.Import() failed for ", module_id, " ", function_token); - return hr; - } + if (FAILED(hr)) + { + Warn("ProcessInsertionCalls: Call to ILRewriter.Import() failed for ", module_id, " ", function_token); + return hr; + } - ILRewriterWrapper rewriter_wrapper(&rewriter); - ILInstr* firstInstr = rewriter.GetILList()->m_pNext; - ILInstr* lastInstr = rewriter.GetILList()->m_pPrev; // Should be a 'ret' instruction + ILRewriterWrapper rewriter_wrapper(&rewriter); + ILInstr* firstInstr = rewriter.GetILList()->m_pNext; + ILInstr* lastInstr = rewriter.GetILList()->m_pPrev; // Should be a 'ret' instruction - for (auto& method_replacement : method_replacements) { - if (method_replacement.wrapper_method.action == WStr("ReplaceTargetMethod")) { - continue; - } + for (auto& method_replacement : method_replacements) + { + if (method_replacement.wrapper_method.action == WStr("ReplaceTargetMethod")) + { + continue; + } - const auto& wrapper_method_key = - method_replacement.wrapper_method.get_method_cache_key(); + const auto& wrapper_method_key = method_replacement.wrapper_method.get_method_cache_key(); - // Exit early if we previously failed to store the method ref for this wrapper_method - if (module_metadata->IsFailedWrapperMemberKey(wrapper_method_key)) { - continue; - } + // Exit early if we previously failed to store the method ref for this wrapper_method + if (module_metadata->IsFailedWrapperMemberKey(wrapper_method_key)) + { + continue; + } - // Generate a method ref token for the wrapper method - mdMemberRef wrapper_method_ref = mdMemberRefNil; - mdTypeRef wrapper_type_ref = mdTypeRefNil; - auto generated_wrapper_method_ref = GetWrapperMethodRef(module_metadata, - module_id, - method_replacement, - wrapper_method_ref, - wrapper_type_ref); - if (!generated_wrapper_method_ref) { - Warn( - "JITCompilationStarted failed to obtain wrapper method ref for ", - method_replacement.wrapper_method.type_name, ".", method_replacement.wrapper_method.method_name, "().", - " function_id=", function_id, " function_token=", function_token, - " name=", caller.type.name, ".", caller.name, "()"); - continue; - } - - // After successfully getting the method reference, insert a call to it - if (method_replacement.wrapper_method.action == WStr("InsertFirst")) { - // Get first instruction and set the rewriter to that location - rewriter_wrapper.SetILPosition(firstInstr); - rewriter_wrapper.CallMember(wrapper_method_ref, false); - firstInstr = firstInstr->m_pPrev; - modified = true; - - Info("*** JITCompilationStarted() : InsertFirst inserted call to ", - method_replacement.wrapper_method.type_name, ".", - method_replacement.wrapper_method.method_name, "() ", wrapper_method_ref, - " to the beginning of method", - caller.type.name,".", caller.name, "()"); + // Generate a method ref token for the wrapper method + mdMemberRef wrapper_method_ref = mdMemberRefNil; + mdTypeRef wrapper_type_ref = mdTypeRefNil; + auto generated_wrapper_method_ref = + GetWrapperMethodRef(module_metadata, module_id, method_replacement, wrapper_method_ref, wrapper_type_ref); + if (!generated_wrapper_method_ref) + { + Warn("JITCompilationStarted failed to obtain wrapper method ref for ", + method_replacement.wrapper_method.type_name, ".", method_replacement.wrapper_method.method_name, "().", + " function_id=", function_id, " function_token=", function_token, " name=", caller.type.name, ".", + caller.name, "()"); + continue; + } + + // After successfully getting the method reference, insert a call to it + if (method_replacement.wrapper_method.action == WStr("InsertFirst")) + { + // Get first instruction and set the rewriter to that location + rewriter_wrapper.SetILPosition(firstInstr); + rewriter_wrapper.CallMember(wrapper_method_ref, false); + firstInstr = firstInstr->m_pPrev; + modified = true; + + Info("*** JITCompilationStarted() : InsertFirst inserted call to ", + method_replacement.wrapper_method.type_name, ".", method_replacement.wrapper_method.method_name, "() ", + wrapper_method_ref, " to the beginning of method", caller.type.name, ".", caller.name, "()"); + } } - } - if (modified) { - hr = rewriter.Export(); + if (modified) + { + hr = rewriter.Export(); - if (FAILED(hr)) { - Warn("ProcessInsertionCalls: Call to ILRewriter.Export() failed for ModuleID=", module_id, " ", function_token); - return hr; + if (FAILED(hr)) + { + Warn("ProcessInsertionCalls: Call to ILRewriter.Export() failed for ModuleID=", module_id, " ", + function_token); + return hr; + } } - } - return S_OK; + return S_OK; } -bool CorProfiler::GetWrapperMethodRef( - ModuleMetadata* module_metadata, - ModuleID module_id, - const MethodReplacement& method_replacement, - mdMemberRef& wrapper_method_ref, - mdTypeRef& wrapper_type_ref) { - const auto& wrapper_method_key = - method_replacement.wrapper_method.get_method_cache_key(); - const auto& wrapper_type_key = - method_replacement.wrapper_method.get_type_cache_key(); - - // Resolve the MethodRef now. If the method is generic, we'll need to use it - // later to define a MethodSpec - if (!module_metadata->TryGetWrapperMemberRef(wrapper_method_key, - wrapper_method_ref)) { - const auto module_info = GetModuleInfo(this->info_, module_id); - if (!module_info.IsValid()) { - return false; - } +bool CorProfiler::GetWrapperMethodRef(ModuleMetadata* module_metadata, ModuleID module_id, + const MethodReplacement& method_replacement, mdMemberRef& wrapper_method_ref, + mdTypeRef& wrapper_type_ref) +{ + const auto& wrapper_method_key = method_replacement.wrapper_method.get_method_cache_key(); + const auto& wrapper_type_key = method_replacement.wrapper_method.get_type_cache_key(); + + // Resolve the MethodRef now. If the method is generic, we'll need to use it + // later to define a MethodSpec + if (!module_metadata->TryGetWrapperMemberRef(wrapper_method_key, wrapper_method_ref)) + { + const auto module_info = GetModuleInfo(this->info_, module_id); + if (!module_info.IsValid()) + { + return false; + } - mdModule module; - auto hr = module_metadata->metadata_import->GetModuleFromScope(&module); - if (FAILED(hr)) { - Warn( - "JITCompilationStarted failed to get module metadata token for " - "module_id=", module_id, " module_name=", module_info.assembly.name); - return false; - } - - const MetadataBuilder metadata_builder( - *module_metadata, module, module_metadata->metadata_import, - module_metadata->metadata_emit, module_metadata->assembly_import, - module_metadata->assembly_emit); - - // for each wrapper assembly, emit an assembly reference - hr = metadata_builder.EmitAssemblyRef( - method_replacement.wrapper_method.assembly); - if (FAILED(hr)) { - Warn( - "JITCompilationStarted failed to emit wrapper assembly ref for assembly=", - method_replacement.wrapper_method.assembly.name, - ", Version=", method_replacement.wrapper_method.assembly.version.str(), - ", Culture=", method_replacement.wrapper_method.assembly.locale, - " PublicKeyToken=", method_replacement.wrapper_method.assembly.public_key.str()); - return false; - } - - // for each method replacement in each enabled integration, - // emit a reference to the instrumentation wrapper methods - hr = metadata_builder.StoreWrapperMethodRef(method_replacement); - if (FAILED(hr)) { - Warn( - "JITCompilationStarted failed to obtain wrapper method ref for ", - method_replacement.wrapper_method.type_name, ".", method_replacement.wrapper_method.method_name, "()."); - return false; - } else { - module_metadata->TryGetWrapperMemberRef(wrapper_method_key, - wrapper_method_ref); + mdModule module; + auto hr = module_metadata->metadata_import->GetModuleFromScope(&module); + if (FAILED(hr)) + { + Warn("JITCompilationStarted failed to get module metadata token for " + "module_id=", + module_id, " module_name=", module_info.assembly.name); + return false; + } + + const MetadataBuilder metadata_builder(*module_metadata, module, module_metadata->metadata_import, + module_metadata->metadata_emit, module_metadata->assembly_import, + module_metadata->assembly_emit); + + // for each wrapper assembly, emit an assembly reference + hr = metadata_builder.EmitAssemblyRef(method_replacement.wrapper_method.assembly); + if (FAILED(hr)) + { + Warn("JITCompilationStarted failed to emit wrapper assembly ref for assembly=", + method_replacement.wrapper_method.assembly.name, + ", Version=", method_replacement.wrapper_method.assembly.version.str(), + ", Culture=", method_replacement.wrapper_method.assembly.locale, + " PublicKeyToken=", method_replacement.wrapper_method.assembly.public_key.str()); + return false; + } + + // for each method replacement in each enabled integration, + // emit a reference to the instrumentation wrapper methods + hr = metadata_builder.StoreWrapperMethodRef(method_replacement); + if (FAILED(hr)) + { + Warn("JITCompilationStarted failed to obtain wrapper method ref for ", + method_replacement.wrapper_method.type_name, ".", method_replacement.wrapper_method.method_name, + "()."); + return false; + } + else + { + module_metadata->TryGetWrapperMemberRef(wrapper_method_key, wrapper_method_ref); + } } - } - module_metadata->TryGetWrapperParentTypeRef(wrapper_type_key, - wrapper_type_ref); - return true; + module_metadata->TryGetWrapperParentTypeRef(wrapper_type_key, wrapper_type_ref); + return true; } -bool CorProfiler::ProfilerAssemblyIsLoadedIntoAppDomain(AppDomainID app_domain_id) { - return managed_profiler_loaded_domain_neutral || - managed_profiler_loaded_app_domains.find(app_domain_id) != - managed_profiler_loaded_app_domains.end(); +bool CorProfiler::ProfilerAssemblyIsLoadedIntoAppDomain(AppDomainID app_domain_id) +{ + return managed_profiler_loaded_domain_neutral || + managed_profiler_loaded_app_domains.find(app_domain_id) != managed_profiler_loaded_app_domains.end(); } const std::string indent_values[] = { @@ -1506,1082 +1611,1084 @@ const std::string indent_values[] = { std::string(2 * 10, ' '), }; -std::string CorProfiler::GetILCodes(const std::string& title, ILRewriter* rewriter, - const FunctionInfo& caller, ModuleMetadata* module_metadata) { - std::stringstream orig_sstream; - orig_sstream << title; - orig_sstream << ToString(caller.type.name); - orig_sstream << "."; - orig_sstream << ToString(caller.name); - orig_sstream << " => (max_stack: "; - orig_sstream << rewriter->GetMaxStackValue(); - orig_sstream << ")" << std::endl; - - const auto ehCount = rewriter->GetEHCount(); - const auto ehPtr = rewriter->GetEHPointer(); - int indent = 1; - - PCCOR_SIGNATURE originalSignature = nullptr; - ULONG originalSignatureSize = 0; - mdToken localVarSig = rewriter->GetTkLocalVarSig(); - - if (localVarSig != mdTokenNil) { - auto hr = module_metadata->metadata_import->GetSigFromToken(localVarSig, &originalSignature, &originalSignatureSize); - if (SUCCEEDED(hr)) { - orig_sstream << std::endl - << ". Local Var Signature: " - << ToString(HexStr(originalSignature, originalSignatureSize)) - << std::endl; +std::string CorProfiler::GetILCodes(const std::string& title, ILRewriter* rewriter, const FunctionInfo& caller, + ModuleMetadata* module_metadata) +{ + std::stringstream orig_sstream; + orig_sstream << title; + orig_sstream << ToString(caller.type.name); + orig_sstream << "."; + orig_sstream << ToString(caller.name); + orig_sstream << " => (max_stack: "; + orig_sstream << rewriter->GetMaxStackValue(); + orig_sstream << ")" << std::endl; + + const auto ehCount = rewriter->GetEHCount(); + const auto ehPtr = rewriter->GetEHPointer(); + int indent = 1; + + PCCOR_SIGNATURE originalSignature = nullptr; + ULONG originalSignatureSize = 0; + mdToken localVarSig = rewriter->GetTkLocalVarSig(); + + if (localVarSig != mdTokenNil) + { + auto hr = + module_metadata->metadata_import->GetSigFromToken(localVarSig, &originalSignature, &originalSignatureSize); + if (SUCCEEDED(hr)) + { + orig_sstream << std::endl + << ". Local Var Signature: " << ToString(HexStr(originalSignature, originalSignatureSize)) + << std::endl; + } } - } - orig_sstream << std::endl; - for (ILInstr* cInstr = rewriter->GetILList()->m_pNext; - cInstr != rewriter->GetILList(); cInstr = cInstr->m_pNext) { - - if (ehCount > 0) { - for (unsigned int i = 0; i < ehCount; i++) { - const auto currentEH = ehPtr[i]; - if (currentEH.m_Flags == COR_ILEXCEPTION_CLAUSE_FINALLY) { - if (currentEH.m_pTryBegin == cInstr) { - if (indent > 0) { - orig_sstream << indent_values[indent]; + orig_sstream << std::endl; + for (ILInstr* cInstr = rewriter->GetILList()->m_pNext; cInstr != rewriter->GetILList(); cInstr = cInstr->m_pNext) + { + + if (ehCount > 0) + { + for (unsigned int i = 0; i < ehCount; i++) + { + const auto currentEH = ehPtr[i]; + if (currentEH.m_Flags == COR_ILEXCEPTION_CLAUSE_FINALLY) + { + if (currentEH.m_pTryBegin == cInstr) + { + if (indent > 0) + { + orig_sstream << indent_values[indent]; + } + orig_sstream << ".try {" << std::endl; + indent++; + } + if (currentEH.m_pTryEnd == cInstr) + { + indent--; + if (indent > 0) + { + orig_sstream << indent_values[indent]; + } + orig_sstream << "}" << std::endl; + } + if (currentEH.m_pHandlerBegin == cInstr) + { + if (indent > 0) + { + orig_sstream << indent_values[indent]; + } + orig_sstream << ".finally {" << std::endl; + indent++; + } + } } - orig_sstream << ".try {" << std::endl; - indent++; - } - if (currentEH.m_pTryEnd == cInstr) { - indent--; - if (indent > 0) { - orig_sstream << indent_values[indent]; + for (unsigned int i = 0; i < ehCount; i++) + { + const auto currentEH = ehPtr[i]; + if (currentEH.m_Flags == COR_ILEXCEPTION_CLAUSE_NONE) + { + if (currentEH.m_pTryBegin == cInstr) + { + if (indent > 0) + { + orig_sstream << indent_values[indent]; + } + orig_sstream << ".try {" << std::endl; + indent++; + } + if (currentEH.m_pTryEnd == cInstr) + { + indent--; + if (indent > 0) + { + orig_sstream << indent_values[indent]; + } + orig_sstream << "}" << std::endl; + } + if (currentEH.m_pHandlerBegin == cInstr) + { + if (indent > 0) + { + orig_sstream << indent_values[indent]; + } + orig_sstream << ".catch {" << std::endl; + indent++; + } + } } - orig_sstream << "}" << std::endl; - } - if (currentEH.m_pHandlerBegin == cInstr) { - if (indent > 0) { - orig_sstream << indent_values[indent]; + } + + if (indent > 0) + { + orig_sstream << indent_values[indent]; + } + orig_sstream << cInstr; + orig_sstream << ": "; + if (cInstr->m_opcode < opcodes_names.size()) + { + orig_sstream << std::setw(10) << opcodes_names[cInstr->m_opcode]; + } + else + { + orig_sstream << "0x"; + orig_sstream << std::setfill('0') << std::setw(2) << std::hex << cInstr->m_opcode; + } + if (cInstr->m_pTarget != NULL) + { + orig_sstream << " "; + orig_sstream << cInstr->m_pTarget; + + if (cInstr->m_opcode == CEE_CALL || cInstr->m_opcode == CEE_CALLVIRT || cInstr->m_opcode == CEE_NEWOBJ) + { + const auto memberInfo = + GetFunctionInfo(module_metadata->metadata_import, (mdMemberRef) cInstr->m_Arg32); + orig_sstream << " | "; + orig_sstream << ToString(memberInfo.type.name); + orig_sstream << "."; + orig_sstream << ToString(memberInfo.name); + if (memberInfo.signature.NumberOfArguments() > 0) + { + orig_sstream << "("; + orig_sstream << memberInfo.signature.NumberOfArguments(); + orig_sstream << " argument{s}"; + orig_sstream << ")"; + } + else + { + orig_sstream << "()"; + } } - orig_sstream << ".finally {" << std::endl; - indent++; - } - } - } - for (unsigned int i = 0; i < ehCount; i++) { - const auto currentEH = ehPtr[i]; - if (currentEH.m_Flags == COR_ILEXCEPTION_CLAUSE_NONE) { - if (currentEH.m_pTryBegin == cInstr) { - if (indent > 0) { - orig_sstream << indent_values[indent]; + else if (cInstr->m_opcode == CEE_CASTCLASS || cInstr->m_opcode == CEE_BOX || + cInstr->m_opcode == CEE_UNBOX_ANY || cInstr->m_opcode == CEE_NEWARR || + cInstr->m_opcode == CEE_INITOBJ) + { + const auto typeInfo = GetTypeInfo(module_metadata->metadata_import, (mdTypeRef) cInstr->m_Arg32); + orig_sstream << " | "; + orig_sstream << ToString(typeInfo.name); } - orig_sstream << ".try {" << std::endl; - indent++; - } - if (currentEH.m_pTryEnd == cInstr) { - indent--; - if (indent > 0) { - orig_sstream << indent_values[indent]; + else if (cInstr->m_opcode == CEE_LDSTR) + { + LPWSTR szString = new WCHAR[1024]; + ULONG szStringLength; + auto hr = module_metadata->metadata_import->GetUserString((mdString) cInstr->m_Arg32, szString, 1024, + &szStringLength); + if (SUCCEEDED(hr)) + { + orig_sstream << " | \""; + orig_sstream << ToString(WSTRING(szString, szStringLength)); + orig_sstream << "\""; + } } - orig_sstream << "}" << std::endl; - } - if (currentEH.m_pHandlerBegin == cInstr) { - if (indent > 0) { - orig_sstream << indent_values[indent]; + } + else if (cInstr->m_Arg64 != 0) + { + orig_sstream << " "; + orig_sstream << cInstr->m_Arg64; + } + orig_sstream << std::endl; + + if (ehCount > 0) + { + for (unsigned int i = 0; i < ehCount; i++) + { + const auto currentEH = ehPtr[i]; + if (currentEH.m_pHandlerEnd == cInstr) + { + indent--; + if (indent > 0) + { + orig_sstream << indent_values[indent]; + } + orig_sstream << "}" << std::endl; + } } - orig_sstream << ".catch {" << std::endl; - indent++; - } - } - } - } - - if (indent > 0) { - orig_sstream << indent_values[indent]; - } - orig_sstream << cInstr; - orig_sstream << ": "; - if (cInstr->m_opcode < opcodes_names.size()) { - orig_sstream << std::setw(10) << opcodes_names[cInstr->m_opcode]; - } else { - orig_sstream << "0x"; - orig_sstream << std::setfill('0') << std::setw(2) << std::hex - << cInstr->m_opcode; - } - if (cInstr->m_pTarget != NULL) { - orig_sstream << " "; - orig_sstream << cInstr->m_pTarget; - - if (cInstr->m_opcode == CEE_CALL || cInstr->m_opcode == CEE_CALLVIRT || cInstr->m_opcode == CEE_NEWOBJ) { - const auto memberInfo = GetFunctionInfo(module_metadata->metadata_import, - (mdMemberRef)cInstr->m_Arg32); - orig_sstream << " | "; - orig_sstream << ToString(memberInfo.type.name); - orig_sstream << "."; - orig_sstream << ToString(memberInfo.name); - if (memberInfo.signature.NumberOfArguments() > 0) { - orig_sstream << "("; - orig_sstream << memberInfo.signature.NumberOfArguments(); - orig_sstream << " argument{s}"; - orig_sstream << ")"; - - } else { - orig_sstream << "()"; - } - } else if (cInstr->m_opcode == CEE_CASTCLASS || cInstr->m_opcode == CEE_BOX || - cInstr->m_opcode == CEE_UNBOX_ANY || cInstr->m_opcode == CEE_NEWARR || - cInstr->m_opcode == CEE_INITOBJ) { - const auto typeInfo = GetTypeInfo(module_metadata->metadata_import, - (mdTypeRef)cInstr->m_Arg32); - orig_sstream << " | "; - orig_sstream << ToString(typeInfo.name); - } else if (cInstr->m_opcode == CEE_LDSTR) { - LPWSTR szString = new WCHAR[1024]; - ULONG szStringLength; - auto hr = module_metadata->metadata_import->GetUserString( - (mdString)cInstr->m_Arg32, szString, 1024, &szStringLength); - if (SUCCEEDED(hr)) { - orig_sstream << " | \""; - orig_sstream << ToString(WSTRING(szString, szStringLength)); - orig_sstream << "\""; - } - } - } else if (cInstr->m_Arg64 != 0) { - orig_sstream << " "; - orig_sstream << cInstr->m_Arg64; - } - orig_sstream << std::endl; - - if (ehCount > 0) { - for (unsigned int i = 0; i < ehCount; i++) { - const auto currentEH = ehPtr[i]; - if (currentEH.m_pHandlerEnd == cInstr) { - indent--; - if (indent > 0) { - orig_sstream << indent_values[indent]; - } - orig_sstream << "}" << std::endl; } - } } - } - return orig_sstream.str(); + return orig_sstream.str(); } // // Startup methods // -HRESULT CorProfiler::RunILStartupHook( - const ComPtr& metadata_emit, const ModuleID module_id, - const mdToken function_token) { - mdMethodDef ret_method_token; - auto hr = GenerateVoidILStartupMethod(module_id, &ret_method_token); - - if (FAILED(hr)) { - Warn("RunILStartupHook: Call to GenerateVoidILStartupMethod failed for ", module_id); - return hr; - } +HRESULT CorProfiler::RunILStartupHook(const ComPtr& metadata_emit, const ModuleID module_id, + const mdToken function_token) +{ + mdMethodDef ret_method_token; + auto hr = GenerateVoidILStartupMethod(module_id, &ret_method_token); + + if (FAILED(hr)) + { + Warn("RunILStartupHook: Call to GenerateVoidILStartupMethod failed for ", module_id); + return hr; + } - ILRewriter rewriter(this->info_, nullptr, module_id, function_token); - hr = rewriter.Import(); + ILRewriter rewriter(this->info_, nullptr, module_id, function_token); + hr = rewriter.Import(); - if (FAILED(hr)) { - Warn("RunILStartupHook: Call to ILRewriter.Import() failed for ", module_id, " ", function_token); - return hr; - } + if (FAILED(hr)) + { + Warn("RunILStartupHook: Call to ILRewriter.Import() failed for ", module_id, " ", function_token); + return hr; + } - ILRewriterWrapper rewriter_wrapper(&rewriter); + ILRewriterWrapper rewriter_wrapper(&rewriter); - // Get first instruction and set the rewriter to that location - ILInstr* pInstr = rewriter.GetILList()->m_pNext; - rewriter_wrapper.SetILPosition(pInstr); - rewriter_wrapper.CallMember(ret_method_token, false); - hr = rewriter.Export(); + // Get first instruction and set the rewriter to that location + ILInstr* pInstr = rewriter.GetILList()->m_pNext; + rewriter_wrapper.SetILPosition(pInstr); + rewriter_wrapper.CallMember(ret_method_token, false); + hr = rewriter.Export(); - if (FAILED(hr)) { - Warn("RunILStartupHook: Call to ILRewriter.Export() failed for ModuleID=", module_id, " ", function_token); - return hr; - } + if (FAILED(hr)) + { + Warn("RunILStartupHook: Call to ILRewriter.Export() failed for ModuleID=", module_id, " ", function_token); + return hr; + } - return S_OK; + return S_OK; } -HRESULT CorProfiler::GenerateVoidILStartupMethod(const ModuleID module_id, - mdMethodDef* ret_method_token) { - ComPtr metadata_interfaces; - auto hr = this->info_->GetModuleMetaData(module_id, ofRead | ofWrite, - IID_IMetaDataImport2, - metadata_interfaces.GetAddressOf()); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: failed to get metadata interface for ", module_id); - return hr; - } - - const auto metadata_import = - metadata_interfaces.As(IID_IMetaDataImport); - const auto metadata_emit = - metadata_interfaces.As(IID_IMetaDataEmit); - const auto assembly_import = metadata_interfaces.As( - IID_IMetaDataAssemblyImport); - const auto assembly_emit = - metadata_interfaces.As(IID_IMetaDataAssemblyEmit); - - mdAssemblyRef corlib_ref; - hr = GetCorLibAssemblyRef(assembly_emit, corAssemblyProperty, &corlib_ref); - - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: failed to define AssemblyRef to mscorlib"); - return hr; - } - - // Define a TypeRef for System.Object - mdTypeRef object_type_ref; - hr = metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.Object"), &object_type_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); - return hr; - } - - // Define a new TypeDef __DDVoidMethodType__ that extends System.Object - mdTypeDef new_type_def; - hr = metadata_emit->DefineTypeDef(WStr("__DDVoidMethodType__"), tdAbstract | tdSealed, - object_type_ref, NULL, &new_type_def); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineTypeDef failed"); - return hr; - } +HRESULT CorProfiler::GenerateVoidILStartupMethod(const ModuleID module_id, mdMethodDef* ret_method_token) +{ + ComPtr metadata_interfaces; + auto hr = this->info_->GetModuleMetaData(module_id, ofRead | ofWrite, IID_IMetaDataImport2, + metadata_interfaces.GetAddressOf()); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: failed to get metadata interface for ", module_id); + return hr; + } - // Define a new static method __DDVoidMethodCall__ on the new type that has a void return type and takes no arguments - BYTE initialize_signature[] = { - IMAGE_CEE_CS_CALLCONV_DEFAULT, // Calling convention - 0, // Number of parameters - ELEMENT_TYPE_VOID, // Return type - }; - hr = metadata_emit->DefineMethod(new_type_def, - WStr("__DDVoidMethodCall__"), - mdStatic, - initialize_signature, - sizeof(initialize_signature), - 0, - 0, - ret_method_token); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineMethod failed"); - return hr; - } + const auto metadata_import = metadata_interfaces.As(IID_IMetaDataImport); + const auto metadata_emit = metadata_interfaces.As(IID_IMetaDataEmit); + const auto assembly_import = metadata_interfaces.As(IID_IMetaDataAssemblyImport); + const auto assembly_emit = metadata_interfaces.As(IID_IMetaDataAssemblyEmit); - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // Define IsAlreadyLoaded() method - // - - // - // Define a new static method IsAlreadyLoaded on the new type that has a bool return type and takes no arguments; - // - mdMethodDef alreadyLoadedMethodToken; - BYTE already_loaded_signature[] = { - IMAGE_CEE_CS_CALLCONV_DEFAULT, - 0, - ELEMENT_TYPE_BOOLEAN, - }; - hr = metadata_emit->DefineMethod( - new_type_def, WStr("IsAlreadyLoaded"), mdStatic | mdPrivate, - already_loaded_signature, sizeof(already_loaded_signature), 0, 0, - &alreadyLoadedMethodToken); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineMethod IsAlreadyLoaded failed"); - return hr; - } + mdAssemblyRef corlib_ref; + hr = GetCorLibAssemblyRef(assembly_emit, corAssemblyProperty, &corlib_ref); - // If .NET Framework 4.6 or greater - if (is_net46_or_greater) { + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: failed to define AssemblyRef to mscorlib"); + return hr; + } - // Define a new static int field _isAssemblyLoaded on the new type. - mdFieldDef isAssemblyLoadedFieldToken = mdFieldDefNil; - BYTE field_signature[] = { - IMAGE_CEE_CS_CALLCONV_FIELD, - ELEMENT_TYPE_I4 - }; - hr = metadata_emit->DefineField(new_type_def, WStr("_isAssemblyLoaded"), - fdStatic | fdPrivate, field_signature, - sizeof(field_signature), 0, nullptr, 0, - &isAssemblyLoadedFieldToken); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineField _isAssemblyLoaded failed"); - return hr; + // Define a TypeRef for System.Object + mdTypeRef object_type_ref; + hr = metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.Object"), &object_type_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); + return hr; } - // Get a TypeRef for System.Threading.Interlocked - mdTypeRef interlocked_type_ref; - hr = metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.Threading.Interlocked"), &interlocked_type_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineTypeRefByName interlocked_type_ref failed"); - return hr; + // Define a new TypeDef __DDVoidMethodType__ that extends System.Object + mdTypeDef new_type_def; + hr = metadata_emit->DefineTypeDef(WStr("__DDVoidMethodType__"), tdAbstract | tdSealed, object_type_ref, NULL, + &new_type_def); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineTypeDef failed"); + return hr; } - // Create method signature for System.Threading.Interlocked::CompareExchange(int32&, int32, int32) - COR_SIGNATURE interlocked_compare_exchange_signature[] = { - IMAGE_CEE_CS_CALLCONV_DEFAULT, - 3, - ELEMENT_TYPE_I4, - ELEMENT_TYPE_BYREF, - ELEMENT_TYPE_I4, - ELEMENT_TYPE_I4, - ELEMENT_TYPE_I4 + // Define a new static method __DDVoidMethodCall__ on the new type that has a void return type and takes no + // arguments + BYTE initialize_signature[] = { + IMAGE_CEE_CS_CALLCONV_DEFAULT, // Calling convention + 0, // Number of parameters + ELEMENT_TYPE_VOID, // Return type }; - - mdMemberRef interlocked_compare_member_ref; - hr = metadata_emit->DefineMemberRef( - interlocked_type_ref, WStr("CompareExchange"), - interlocked_compare_exchange_signature, - sizeof(interlocked_compare_exchange_signature), - &interlocked_compare_member_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineMemberRef CompareExchange failed"); - return hr; + hr = metadata_emit->DefineMethod(new_type_def, WStr("__DDVoidMethodCall__"), mdStatic, initialize_signature, + sizeof(initialize_signature), 0, 0, ret_method_token); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineMethod failed"); + return hr; } - ///////////////////////////////////////////// - // Add IL instructions into the IsAlreadyLoaded method - // - // static int _isAssemblyLoaded = 0; + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Define IsAlreadyLoaded() method // - // public static bool IsAlreadyLoaded() { - // return Interlocked.CompareExchange(ref _isAssemblyLoaded, 1, 0) == 1; - // } - // - ILRewriter rewriter_already_loaded(this->info_, nullptr, module_id, alreadyLoadedMethodToken); - rewriter_already_loaded.InitializeTiny(); - - ILInstr* pALFirstInstr = rewriter_already_loaded.GetILList()->m_pNext; - ILInstr* pALNewInstr = NULL; - - // ldsflda _isAssemblyLoaded : Load the address of the "_isAssemblyLoaded" static var - pALNewInstr = rewriter_already_loaded.NewILInstr(); - pALNewInstr->m_opcode = CEE_LDSFLDA; - pALNewInstr->m_Arg32 = isAssemblyLoadedFieldToken; - rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); - - // ldc.i4.1 : Load the constant 1 (int) to the stack - pALNewInstr = rewriter_already_loaded.NewILInstr(); - pALNewInstr->m_opcode = CEE_LDC_I4_1; - rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); - - // ldc.i4.0 : Load the constant 0 (int) to the stack - pALNewInstr = rewriter_already_loaded.NewILInstr(); - pALNewInstr->m_opcode = CEE_LDC_I4_0; - rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); - - // call int Interlocked.CompareExchange(ref int, int, int) method - pALNewInstr = rewriter_already_loaded.NewILInstr(); - pALNewInstr->m_opcode = CEE_CALL; - pALNewInstr->m_Arg32 = interlocked_compare_member_ref; - rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); - // ldc.i4.1 : Load the constant 1 (int) to the stack - pALNewInstr = rewriter_already_loaded.NewILInstr(); - pALNewInstr->m_opcode = CEE_LDC_I4_1; - rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); - - // ceq : Compare equality from two values from the stack - pALNewInstr = rewriter_already_loaded.NewILInstr(); - pALNewInstr->m_opcode = CEE_CEQ; - rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); - - // ret : Return the value of the comparison - pALNewInstr = rewriter_already_loaded.NewILInstr(); - pALNewInstr->m_opcode = CEE_RET; - rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); - - hr = rewriter_already_loaded.Export(); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: Call to ILRewriter.Export() failed for ModuleID=", module_id); - return hr; - } - - } else { - - ///////////////////////////////////////////// - // Add IL instructions into the IsAlreadyLoaded method // - // public static bool IsAlreadyLoaded() { - // return false; - // } + // Define a new static method IsAlreadyLoaded on the new type that has a bool return type and takes no arguments; // - ILRewriter rewriter_already_loaded(this->info_, nullptr, module_id, alreadyLoadedMethodToken); - rewriter_already_loaded.InitializeTiny(); + mdMethodDef alreadyLoadedMethodToken; + BYTE already_loaded_signature[] = { + IMAGE_CEE_CS_CALLCONV_DEFAULT, + 0, + ELEMENT_TYPE_BOOLEAN, + }; + hr = metadata_emit->DefineMethod(new_type_def, WStr("IsAlreadyLoaded"), mdStatic | mdPrivate, + already_loaded_signature, sizeof(already_loaded_signature), 0, 0, + &alreadyLoadedMethodToken); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineMethod IsAlreadyLoaded failed"); + return hr; + } - ILInstr* pALFirstInstr = rewriter_already_loaded.GetILList()->m_pNext; - ILInstr* pALNewInstr = NULL; + // If .NET Framework 4.6 or greater + if (is_net46_or_greater) + { + + // Define a new static int field _isAssemblyLoaded on the new type. + mdFieldDef isAssemblyLoadedFieldToken = mdFieldDefNil; + BYTE field_signature[] = {IMAGE_CEE_CS_CALLCONV_FIELD, ELEMENT_TYPE_I4}; + hr = metadata_emit->DefineField(new_type_def, WStr("_isAssemblyLoaded"), fdStatic | fdPrivate, field_signature, + sizeof(field_signature), 0, nullptr, 0, &isAssemblyLoadedFieldToken); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineField _isAssemblyLoaded failed"); + return hr; + } - // ldc.i4.0 : Load the constant 0 (int) to the stack - pALNewInstr = rewriter_already_loaded.NewILInstr(); - pALNewInstr->m_opcode = CEE_LDC_I4_0; - rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + // Get a TypeRef for System.Threading.Interlocked + mdTypeRef interlocked_type_ref; + hr = + metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.Threading.Interlocked"), &interlocked_type_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineTypeRefByName interlocked_type_ref failed"); + return hr; + } - // ret : Return - pALNewInstr = rewriter_already_loaded.NewILInstr(); - pALNewInstr->m_opcode = CEE_RET; - rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + // Create method signature for System.Threading.Interlocked::CompareExchange(int32&, int32, int32) + COR_SIGNATURE interlocked_compare_exchange_signature[] = {IMAGE_CEE_CS_CALLCONV_DEFAULT, + 3, + ELEMENT_TYPE_I4, + ELEMENT_TYPE_BYREF, + ELEMENT_TYPE_I4, + ELEMENT_TYPE_I4, + ELEMENT_TYPE_I4}; + + mdMemberRef interlocked_compare_member_ref; + hr = metadata_emit->DefineMemberRef( + interlocked_type_ref, WStr("CompareExchange"), interlocked_compare_exchange_signature, + sizeof(interlocked_compare_exchange_signature), &interlocked_compare_member_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineMemberRef CompareExchange failed"); + return hr; + } - hr = rewriter_already_loaded.Export(); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: Call to ILRewriter.Export() failed for ModuleID=", module_id); - return hr; + ///////////////////////////////////////////// + // Add IL instructions into the IsAlreadyLoaded method + // + // static int _isAssemblyLoaded = 0; + // + // public static bool IsAlreadyLoaded() { + // return Interlocked.CompareExchange(ref _isAssemblyLoaded, 1, 0) == 1; + // } + // + ILRewriter rewriter_already_loaded(this->info_, nullptr, module_id, alreadyLoadedMethodToken); + rewriter_already_loaded.InitializeTiny(); + + ILInstr* pALFirstInstr = rewriter_already_loaded.GetILList()->m_pNext; + ILInstr* pALNewInstr = NULL; + + // ldsflda _isAssemblyLoaded : Load the address of the "_isAssemblyLoaded" static var + pALNewInstr = rewriter_already_loaded.NewILInstr(); + pALNewInstr->m_opcode = CEE_LDSFLDA; + pALNewInstr->m_Arg32 = isAssemblyLoadedFieldToken; + rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + + // ldc.i4.1 : Load the constant 1 (int) to the stack + pALNewInstr = rewriter_already_loaded.NewILInstr(); + pALNewInstr->m_opcode = CEE_LDC_I4_1; + rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + + // ldc.i4.0 : Load the constant 0 (int) to the stack + pALNewInstr = rewriter_already_loaded.NewILInstr(); + pALNewInstr->m_opcode = CEE_LDC_I4_0; + rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + + // call int Interlocked.CompareExchange(ref int, int, int) method + pALNewInstr = rewriter_already_loaded.NewILInstr(); + pALNewInstr->m_opcode = CEE_CALL; + pALNewInstr->m_Arg32 = interlocked_compare_member_ref; + rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + + // ldc.i4.1 : Load the constant 1 (int) to the stack + pALNewInstr = rewriter_already_loaded.NewILInstr(); + pALNewInstr->m_opcode = CEE_LDC_I4_1; + rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + + // ceq : Compare equality from two values from the stack + pALNewInstr = rewriter_already_loaded.NewILInstr(); + pALNewInstr->m_opcode = CEE_CEQ; + rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + + // ret : Return the value of the comparison + pALNewInstr = rewriter_already_loaded.NewILInstr(); + pALNewInstr->m_opcode = CEE_RET; + rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + + hr = rewriter_already_loaded.Export(); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: Call to ILRewriter.Export() failed for ModuleID=", module_id); + return hr; + } + } + else + { + + ///////////////////////////////////////////// + // Add IL instructions into the IsAlreadyLoaded method + // + // public static bool IsAlreadyLoaded() { + // return false; + // } + // + ILRewriter rewriter_already_loaded(this->info_, nullptr, module_id, alreadyLoadedMethodToken); + rewriter_already_loaded.InitializeTiny(); + + ILInstr* pALFirstInstr = rewriter_already_loaded.GetILList()->m_pNext; + ILInstr* pALNewInstr = NULL; + + // ldc.i4.0 : Load the constant 0 (int) to the stack + pALNewInstr = rewriter_already_loaded.NewILInstr(); + pALNewInstr->m_opcode = CEE_LDC_I4_0; + rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + + // ret : Return + pALNewInstr = rewriter_already_loaded.NewILInstr(); + pALNewInstr->m_opcode = CEE_RET; + rewriter_already_loaded.InsertBefore(pALFirstInstr, pALNewInstr); + + hr = rewriter_already_loaded.Export(); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: Call to ILRewriter.Export() failed for ModuleID=", module_id); + return hr; + } } - } - - // Define a method on the managed side that will PInvoke into the profiler method: - // C++: void GetAssemblyAndSymbolsBytes(BYTE** pAssemblyArray, int* assemblySize, BYTE** pSymbolsArray, int* symbolsSize) - // C#: static extern void GetAssemblyAndSymbolsBytes(out IntPtr assemblyPtr, out int assemblySize, out IntPtr symbolsPtr, out int symbolsSize) - mdMethodDef pinvoke_method_def; - COR_SIGNATURE get_assembly_bytes_signature[] = { - IMAGE_CEE_CS_CALLCONV_DEFAULT, // Calling convention - 4, // Number of parameters - ELEMENT_TYPE_VOID, // Return type - ELEMENT_TYPE_BYREF, // List of parameter types - ELEMENT_TYPE_I, - ELEMENT_TYPE_BYREF, - ELEMENT_TYPE_I4, - ELEMENT_TYPE_BYREF, - ELEMENT_TYPE_I, - ELEMENT_TYPE_BYREF, - ELEMENT_TYPE_I4, - }; - hr = metadata_emit->DefineMethod( - new_type_def, WStr("GetAssemblyAndSymbolsBytes"), mdStatic | mdPinvokeImpl | mdHideBySig, - get_assembly_bytes_signature, sizeof(get_assembly_bytes_signature), 0, 0, - &pinvoke_method_def); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineMethod failed"); - return hr; - } + // Define a method on the managed side that will PInvoke into the profiler method: + // C++: void GetAssemblyAndSymbolsBytes(BYTE** pAssemblyArray, int* assemblySize, BYTE** pSymbolsArray, int* + // symbolsSize) C#: static extern void GetAssemblyAndSymbolsBytes(out IntPtr assemblyPtr, out int assemblySize, out + // IntPtr symbolsPtr, out int symbolsSize) + mdMethodDef pinvoke_method_def; + COR_SIGNATURE get_assembly_bytes_signature[] = { + IMAGE_CEE_CS_CALLCONV_DEFAULT, // Calling convention + 4, // Number of parameters + ELEMENT_TYPE_VOID, // Return type + ELEMENT_TYPE_BYREF, // List of parameter types + ELEMENT_TYPE_I, + ELEMENT_TYPE_BYREF, + ELEMENT_TYPE_I4, + ELEMENT_TYPE_BYREF, + ELEMENT_TYPE_I, + ELEMENT_TYPE_BYREF, + ELEMENT_TYPE_I4, + }; + hr = metadata_emit->DefineMethod(new_type_def, WStr("GetAssemblyAndSymbolsBytes"), + mdStatic | mdPinvokeImpl | mdHideBySig, get_assembly_bytes_signature, + sizeof(get_assembly_bytes_signature), 0, 0, &pinvoke_method_def); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineMethod failed"); + return hr; + } - metadata_emit->SetMethodImplFlags(pinvoke_method_def, miPreserveSig); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: SetMethodImplFlags failed"); - return hr; - } + metadata_emit->SetMethodImplFlags(pinvoke_method_def, miPreserveSig); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: SetMethodImplFlags failed"); + return hr; + } #ifdef _WIN32 - WSTRING native_profiler_file = WStr("OPENTELEMETRY.AUTOINSTRUMENTATION.CLRPROFILER.NATIVE.DLL"); + WSTRING native_profiler_file = WStr("OPENTELEMETRY.AUTOINSTRUMENTATION.CLRPROFILER.NATIVE.DLL"); #else // _WIN32 #ifdef BIT64 - WSTRING native_profiler_file = GetEnvironmentValue(WStr("CORECLR_PROFILER_PATH_64")); - Debug("GenerateVoidILStartupMethod: Linux: CORECLR_PROFILER_PATH_64 defined as: ", native_profiler_file); - if (native_profiler_file == WStr("")) { - native_profiler_file = GetEnvironmentValue(WStr("CORECLR_PROFILER_PATH")); - Debug("GenerateVoidILStartupMethod: Linux: CORECLR_PROFILER_PATH defined as: ", native_profiler_file); - } + WSTRING native_profiler_file = GetEnvironmentValue(WStr("CORECLR_PROFILER_PATH_64")); + Debug("GenerateVoidILStartupMethod: Linux: CORECLR_PROFILER_PATH_64 defined as: ", native_profiler_file); + if (native_profiler_file == WStr("")) + { + native_profiler_file = GetEnvironmentValue(WStr("CORECLR_PROFILER_PATH")); + Debug("GenerateVoidILStartupMethod: Linux: CORECLR_PROFILER_PATH defined as: ", native_profiler_file); + } #else // BIT64 - WSTRING native_profiler_file = GetEnvironmentValue(WStr("CORECLR_PROFILER_PATH_32")); - Debug("GenerateVoidILStartupMethod: Linux: CORECLR_PROFILER_PATH_32 defined as: ", native_profiler_file); - if (native_profiler_file == WStr("")) { - native_profiler_file = GetEnvironmentValue(WStr("CORECLR_PROFILER_PATH")); - Debug("GenerateVoidILStartupMethod: Linux: CORECLR_PROFILER_PATH defined as: ", native_profiler_file); - } + WSTRING native_profiler_file = GetEnvironmentValue(WStr("CORECLR_PROFILER_PATH_32")); + Debug("GenerateVoidILStartupMethod: Linux: CORECLR_PROFILER_PATH_32 defined as: ", native_profiler_file); + if (native_profiler_file == WStr("")) + { + native_profiler_file = GetEnvironmentValue(WStr("CORECLR_PROFILER_PATH")); + Debug("GenerateVoidILStartupMethod: Linux: CORECLR_PROFILER_PATH defined as: ", native_profiler_file); + } #endif // BIT64 -Debug("GenerateVoidILStartupMethod: Linux: Setting the PInvoke native profiler library path to ", native_profiler_file); + Debug("GenerateVoidILStartupMethod: Linux: Setting the PInvoke native profiler library path to ", + native_profiler_file); #endif // _WIN32 - mdModuleRef profiler_ref; - hr = metadata_emit->DefineModuleRef(native_profiler_file.c_str(), - &profiler_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineModuleRef failed"); - return hr; - } + mdModuleRef profiler_ref; + hr = metadata_emit->DefineModuleRef(native_profiler_file.c_str(), &profiler_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineModuleRef failed"); + return hr; + } - hr = metadata_emit->DefinePinvokeMap(pinvoke_method_def, - 0, - WStr("GetAssemblyAndSymbolsBytes"), - profiler_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefinePinvokeMap failed"); - return hr; - } + hr = metadata_emit->DefinePinvokeMap(pinvoke_method_def, 0, WStr("GetAssemblyAndSymbolsBytes"), profiler_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefinePinvokeMap failed"); + return hr; + } - // Get a TypeRef for System.Byte - mdTypeRef byte_type_ref; - hr = metadata_emit->DefineTypeRefByName(corlib_ref, - WStr("System.Byte"), - &byte_type_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); - return hr; - } + // Get a TypeRef for System.Byte + mdTypeRef byte_type_ref; + hr = metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.Byte"), &byte_type_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); + return hr; + } - // Get a TypeRef for System.Runtime.InteropServices.Marshal - mdTypeRef marshal_type_ref; - hr = metadata_emit->DefineTypeRefByName(corlib_ref, - WStr("System.Runtime.InteropServices.Marshal"), - &marshal_type_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); - return hr; - } + // Get a TypeRef for System.Runtime.InteropServices.Marshal + mdTypeRef marshal_type_ref; + hr = metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.Runtime.InteropServices.Marshal"), + &marshal_type_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); + return hr; + } - // Get a MemberRef for System.Runtime.InteropServices.Marshal.Copy(IntPtr, Byte[], int, int) - mdMemberRef marshal_copy_member_ref; - COR_SIGNATURE marshal_copy_signature[] = { - IMAGE_CEE_CS_CALLCONV_DEFAULT, // Calling convention - 4, // Number of parameters - ELEMENT_TYPE_VOID, // Return type - ELEMENT_TYPE_I, // List of parameter types - ELEMENT_TYPE_SZARRAY, - ELEMENT_TYPE_U1, - ELEMENT_TYPE_I4, - ELEMENT_TYPE_I4 - }; - hr = metadata_emit->DefineMemberRef( - marshal_type_ref, WStr("Copy"), marshal_copy_signature, - sizeof(marshal_copy_signature), &marshal_copy_member_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineMemberRef failed"); - return hr; - } + // Get a MemberRef for System.Runtime.InteropServices.Marshal.Copy(IntPtr, Byte[], int, int) + mdMemberRef marshal_copy_member_ref; + COR_SIGNATURE marshal_copy_signature[] = {IMAGE_CEE_CS_CALLCONV_DEFAULT, // Calling convention + 4, // Number of parameters + ELEMENT_TYPE_VOID, // Return type + ELEMENT_TYPE_I, // List of parameter types + ELEMENT_TYPE_SZARRAY, + ELEMENT_TYPE_U1, + ELEMENT_TYPE_I4, + ELEMENT_TYPE_I4}; + hr = metadata_emit->DefineMemberRef(marshal_type_ref, WStr("Copy"), marshal_copy_signature, + sizeof(marshal_copy_signature), &marshal_copy_member_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineMemberRef failed"); + return hr; + } - // Get a TypeRef for System.Reflection.Assembly - mdTypeRef system_reflection_assembly_type_ref; - hr = metadata_emit->DefineTypeRefByName(corlib_ref, - WStr("System.Reflection.Assembly"), - &system_reflection_assembly_type_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); - return hr; - } + // Get a TypeRef for System.Reflection.Assembly + mdTypeRef system_reflection_assembly_type_ref; + hr = metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.Reflection.Assembly"), + &system_reflection_assembly_type_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); + return hr; + } - // Get a MemberRef for System.Object.ToString() - mdTypeRef system_object_type_ref; - hr = metadata_emit->DefineTypeRefByName(corlib_ref, - WStr("System.Object"), - &system_object_type_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); - return hr; - } + // Get a MemberRef for System.Object.ToString() + mdTypeRef system_object_type_ref; + hr = metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.Object"), &system_object_type_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineTypeRefByName failed"); + return hr; + } - // Create method signature for System.Reflection.Assembly.Load(byte[], byte[]) - COR_SIGNATURE appdomain_load_signature_start[] = { - IMAGE_CEE_CS_CALLCONV_DEFAULT, - 2, - ELEMENT_TYPE_CLASS // ret = System.Reflection.Assembly - // insert compressed token for System.Reflection.Assembly TypeRef here - }; - COR_SIGNATURE appdomain_load_signature_end[] = { - ELEMENT_TYPE_SZARRAY, - ELEMENT_TYPE_U1, - ELEMENT_TYPE_SZARRAY, - ELEMENT_TYPE_U1 - }; - ULONG start_length = sizeof(appdomain_load_signature_start); - ULONG end_length = sizeof(appdomain_load_signature_end); - - BYTE system_reflection_assembly_type_ref_compressed_token[4]; - ULONG token_length = CorSigCompressToken(system_reflection_assembly_type_ref, system_reflection_assembly_type_ref_compressed_token); - - const auto appdomain_load_signature_length = start_length + token_length + end_length; - COR_SIGNATURE appdomain_load_signature[250]; - memcpy(appdomain_load_signature, - appdomain_load_signature_start, - start_length); - memcpy(&appdomain_load_signature[start_length], - system_reflection_assembly_type_ref_compressed_token, - token_length); - memcpy(&appdomain_load_signature[start_length + token_length], - appdomain_load_signature_end, - end_length); - - mdMemberRef appdomain_load_member_ref; - hr = metadata_emit->DefineMemberRef( - system_reflection_assembly_type_ref, WStr("Load"), - appdomain_load_signature, - appdomain_load_signature_length, - &appdomain_load_member_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineMemberRef failed"); - return hr; - } + // Create method signature for System.Reflection.Assembly.Load(byte[], byte[]) + COR_SIGNATURE appdomain_load_signature_start[] = { + IMAGE_CEE_CS_CALLCONV_DEFAULT, 2, + ELEMENT_TYPE_CLASS // ret = System.Reflection.Assembly + // insert compressed token for System.Reflection.Assembly TypeRef here + }; + COR_SIGNATURE appdomain_load_signature_end[] = {ELEMENT_TYPE_SZARRAY, ELEMENT_TYPE_U1, ELEMENT_TYPE_SZARRAY, + ELEMENT_TYPE_U1}; + ULONG start_length = sizeof(appdomain_load_signature_start); + ULONG end_length = sizeof(appdomain_load_signature_end); + + BYTE system_reflection_assembly_type_ref_compressed_token[4]; + ULONG token_length = + CorSigCompressToken(system_reflection_assembly_type_ref, system_reflection_assembly_type_ref_compressed_token); + + const auto appdomain_load_signature_length = start_length + token_length + end_length; + COR_SIGNATURE appdomain_load_signature[250]; + memcpy(appdomain_load_signature, appdomain_load_signature_start, start_length); + memcpy(&appdomain_load_signature[start_length], system_reflection_assembly_type_ref_compressed_token, token_length); + memcpy(&appdomain_load_signature[start_length + token_length], appdomain_load_signature_end, end_length); + + mdMemberRef appdomain_load_member_ref; + hr = metadata_emit->DefineMemberRef(system_reflection_assembly_type_ref, WStr("Load"), appdomain_load_signature, + appdomain_load_signature_length, &appdomain_load_member_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineMemberRef failed"); + return hr; + } - // Create method signature for Assembly.CreateInstance(string) - COR_SIGNATURE assembly_create_instance_signature[] = { - IMAGE_CEE_CS_CALLCONV_HASTHIS, - 1, - ELEMENT_TYPE_OBJECT, // ret = System.Object - ELEMENT_TYPE_STRING - }; - - mdMemberRef assembly_create_instance_member_ref; - hr = metadata_emit->DefineMemberRef( - system_reflection_assembly_type_ref, WStr("CreateInstance"), - assembly_create_instance_signature, - sizeof(assembly_create_instance_signature), - &assembly_create_instance_member_ref); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineMemberRef failed"); - return hr; - } + // Create method signature for Assembly.CreateInstance(string) + COR_SIGNATURE assembly_create_instance_signature[] = {IMAGE_CEE_CS_CALLCONV_HASTHIS, 1, + ELEMENT_TYPE_OBJECT, // ret = System.Object + ELEMENT_TYPE_STRING}; + + mdMemberRef assembly_create_instance_member_ref; + hr = metadata_emit->DefineMemberRef(system_reflection_assembly_type_ref, WStr("CreateInstance"), + assembly_create_instance_signature, sizeof(assembly_create_instance_signature), + &assembly_create_instance_member_ref); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineMemberRef failed"); + return hr; + } - // Create a string representing "Datadog.Trace.ClrProfiler.Managed.Loader.Startup" - // Create OS-specific implementations because on Windows, creating the string via - // "Datadog.Trace.ClrProfiler.Managed.Loader.Startup"_W.c_str() does not create the - // proper string for CreateInstance to successfully call + // Create a string representing "Datadog.Trace.ClrProfiler.Managed.Loader.Startup" + // Create OS-specific implementations because on Windows, creating the string via + // "Datadog.Trace.ClrProfiler.Managed.Loader.Startup"_W.c_str() does not create the + // proper string for CreateInstance to successfully call #ifdef _WIN32 - LPCWSTR load_helper_str = - L"Datadog.Trace.ClrProfiler.Managed.Loader.Startup"; - auto load_helper_str_size = wcslen(load_helper_str); + LPCWSTR load_helper_str = L"Datadog.Trace.ClrProfiler.Managed.Loader.Startup"; + auto load_helper_str_size = wcslen(load_helper_str); #else - char16_t load_helper_str[] = - u"Datadog.Trace.ClrProfiler.Managed.Loader.Startup"; - auto load_helper_str_size = std::char_traits::length(load_helper_str); + char16_t load_helper_str[] = u"Datadog.Trace.ClrProfiler.Managed.Loader.Startup"; + auto load_helper_str_size = std::char_traits::length(load_helper_str); #endif - mdString load_helper_token; - hr = metadata_emit->DefineUserString(load_helper_str, (ULONG) load_helper_str_size, - &load_helper_token); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineUserString failed"); - return hr; - } + mdString load_helper_token; + hr = metadata_emit->DefineUserString(load_helper_str, (ULONG) load_helper_str_size, &load_helper_token); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineUserString failed"); + return hr; + } - // Generate a locals signature defined in the following way: - // [0] System.IntPtr ("assemblyPtr" - address of assembly bytes) - // [1] System.Int32 ("assemblySize" - size of assembly bytes) - // [2] System.IntPtr ("symbolsPtr" - address of symbols bytes) - // [3] System.Int32 ("symbolsSize" - size of symbols bytes) - // [4] System.Byte[] ("assemblyBytes" - managed byte array for assembly) - // [5] System.Byte[] ("symbolsBytes" - managed byte array for symbols) - // [6] class System.Reflection.Assembly ("loadedAssembly" - assembly instance to save loaded assembly) - mdSignature locals_signature_token; - COR_SIGNATURE locals_signature[15] = { - IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, // Calling convention - 7, // Number of variables - ELEMENT_TYPE_I, // List of variable types - ELEMENT_TYPE_I4, - ELEMENT_TYPE_I, - ELEMENT_TYPE_I4, - ELEMENT_TYPE_SZARRAY, - ELEMENT_TYPE_U1, - ELEMENT_TYPE_SZARRAY, - ELEMENT_TYPE_U1, - ELEMENT_TYPE_CLASS - // insert compressed token for System.Reflection.Assembly TypeRef here - }; - CorSigCompressToken(system_reflection_assembly_type_ref, - &locals_signature[11]); - hr = metadata_emit->GetTokenFromSig(locals_signature, sizeof(locals_signature), - &locals_signature_token); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: Unable to generate locals signature. ModuleID=", module_id); - return hr; - } + // Generate a locals signature defined in the following way: + // [0] System.IntPtr ("assemblyPtr" - address of assembly bytes) + // [1] System.Int32 ("assemblySize" - size of assembly bytes) + // [2] System.IntPtr ("symbolsPtr" - address of symbols bytes) + // [3] System.Int32 ("symbolsSize" - size of symbols bytes) + // [4] System.Byte[] ("assemblyBytes" - managed byte array for assembly) + // [5] System.Byte[] ("symbolsBytes" - managed byte array for symbols) + // [6] class System.Reflection.Assembly ("loadedAssembly" - assembly instance to save loaded assembly) + mdSignature locals_signature_token; + COR_SIGNATURE locals_signature[15] = { + IMAGE_CEE_CS_CALLCONV_LOCAL_SIG, // Calling convention + 7, // Number of variables + ELEMENT_TYPE_I, // List of variable types + ELEMENT_TYPE_I4, + ELEMENT_TYPE_I, + ELEMENT_TYPE_I4, + ELEMENT_TYPE_SZARRAY, + ELEMENT_TYPE_U1, + ELEMENT_TYPE_SZARRAY, + ELEMENT_TYPE_U1, + ELEMENT_TYPE_CLASS + // insert compressed token for System.Reflection.Assembly TypeRef here + }; + CorSigCompressToken(system_reflection_assembly_type_ref, &locals_signature[11]); + hr = metadata_emit->GetTokenFromSig(locals_signature, sizeof(locals_signature), &locals_signature_token); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: Unable to generate locals signature. ModuleID=", module_id); + return hr; + } - ///////////////////////////////////////////// - // Add IL instructions into the void method - ILRewriter rewriter_void(this->info_, nullptr, module_id, *ret_method_token); - rewriter_void.InitializeTiny(); - rewriter_void.SetTkLocalVarSig(locals_signature_token); - - ILInstr* pFirstInstr = rewriter_void.GetILList()->m_pNext; - ILInstr* pNewInstr = NULL; - - // Step 0) Check if the assembly was already loaded - - // call bool IsAlreadyLoaded() - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_CALL; - pNewInstr->m_Arg32 = alreadyLoadedMethodToken; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // check if the return of the method call is true or false - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_BRFALSE_S; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - ILInstr* pBranchFalseInstr = pNewInstr; - - // return if IsAlreadyLoaded is true - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_RET; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // Step 1) Call void GetAssemblyAndSymbolsBytes(out IntPtr assemblyPtr, out int assemblySize, out IntPtr symbolsPtr, out int symbolsSize) - - // ldloca.s 0 : Load the address of the "assemblyPtr" variable (locals index 0) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOCA_S; - pNewInstr->m_Arg32 = 0; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // Set the false branch target - pBranchFalseInstr->m_pTarget = pNewInstr; - - // ldloca.s 1 : Load the address of the "assemblySize" variable (locals index 1) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOCA_S; - pNewInstr->m_Arg32 = 1; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldloca.s 2 : Load the address of the "symbolsPtr" variable (locals index 2) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOCA_S; - pNewInstr->m_Arg32 = 2; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldloca.s 3 : Load the address of the "symbolsSize" variable (locals index 3) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOCA_S; - pNewInstr->m_Arg32 = 3; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // call void GetAssemblyAndSymbolsBytes(out IntPtr assemblyPtr, out int assemblySize, out IntPtr symbolsPtr, out int symbolsSize) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_CALL; - pNewInstr->m_Arg32 = pinvoke_method_def; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // Step 2) Call void Marshal.Copy(IntPtr source, byte[] destination, int startIndex, int length) to populate the managed assembly bytes - - // ldloc.1 : Load the "assemblySize" variable (locals index 1) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_1; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // newarr System.Byte : Create a new Byte[] to hold a managed copy of the assembly data - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_NEWARR; - pNewInstr->m_Arg32 = byte_type_ref; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // stloc.s 4 : Assign the Byte[] to the "assemblyBytes" variable (locals index 4) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_STLOC_S; - pNewInstr->m_Arg8 = 4; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldloc.0 : Load the "assemblyPtr" variable (locals index 0) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_0; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldloc.s 4 : Load the "assemblyBytes" variable (locals index 4) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_S; - pNewInstr->m_Arg8 = 4; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldc.i4.0 : Load the integer 0 for the Marshal.Copy startIndex parameter - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDC_I4_0; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldloc.1 : Load the "assemblySize" variable (locals index 1) for the Marshal.Copy length parameter - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_1; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // call Marshal.Copy(IntPtr source, byte[] destination, int startIndex, int length) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_CALL; - pNewInstr->m_Arg32 = marshal_copy_member_ref; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // Step 3) Call void Marshal.Copy(IntPtr source, byte[] destination, int startIndex, int length) to populate the symbols bytes - - // ldloc.3 : Load the "symbolsSize" variable (locals index 3) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_3; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // newarr System.Byte : Create a new Byte[] to hold a managed copy of the symbols data - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_NEWARR; - pNewInstr->m_Arg32 = byte_type_ref; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // stloc.s 5 : Assign the Byte[] to the "symbolsBytes" variable (locals index 5) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_STLOC_S; - pNewInstr->m_Arg8 = 5; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldloc.2 : Load the "symbolsPtr" variables (locals index 2) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_2; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldloc.s 5 : Load the "symbolsBytes" variable (locals index 5) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_S; - pNewInstr->m_Arg8 = 5; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldc.i4.0 : Load the integer 0 for the Marshal.Copy startIndex parameter - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDC_I4_0; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldloc.3 : Load the "symbolsSize" variable (locals index 3) for the Marshal.Copy length parameter - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_3; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // call void Marshal.Copy(IntPtr source, byte[] destination, int startIndex, int length) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_CALL; - pNewInstr->m_Arg32 = marshal_copy_member_ref; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // Step 4) Call System.Reflection.Assembly System.Reflection.Assembly.Load(byte[], byte[])) - - // ldloc.s 4 : Load the "assemblyBytes" variable (locals index 4) for the first byte[] parameter of AppDomain.Load(byte[], byte[]) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_S; - pNewInstr->m_Arg8 = 4; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldloc.s 5 : Load the "symbolsBytes" variable (locals index 5) for the second byte[] parameter of AppDomain.Load(byte[], byte[]) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_S; - pNewInstr->m_Arg8 = 5; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // call System.Reflection.Assembly System.Reflection.Assembly.Load(uint8[], uint8[]) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_CALL; - pNewInstr->m_Arg32 = appdomain_load_member_ref; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // stloc.s 6 : Assign the System.Reflection.Assembly object to the "loadedAssembly" variable (locals index 6) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_STLOC_S; - pNewInstr->m_Arg8 = 6; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // Step 4) Call instance method Assembly.CreateInstance("Datadog.Trace.ClrProfiler.Managed.Loader.Startup") - - // ldloc.s 6 : Load the "loadedAssembly" variable (locals index 6) to call Assembly.CreateInstance - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDLOC_S; - pNewInstr->m_Arg8 = 6; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // ldstr "Datadog.Trace.ClrProfiler.Managed.Loader.Startup" - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_LDSTR; - pNewInstr->m_Arg32 = load_helper_token; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // callvirt System.Object System.Reflection.Assembly.CreateInstance(string) - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_CALLVIRT; - pNewInstr->m_Arg32 = assembly_create_instance_member_ref; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // pop the returned object - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_POP; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - // return - pNewInstr = rewriter_void.NewILInstr(); - pNewInstr->m_opcode = CEE_RET; - rewriter_void.InsertBefore(pFirstInstr, pNewInstr); - - hr = rewriter_void.Export(); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: Call to ILRewriter.Export() failed for ModuleID=", module_id); - return hr; - } + ///////////////////////////////////////////// + // Add IL instructions into the void method + ILRewriter rewriter_void(this->info_, nullptr, module_id, *ret_method_token); + rewriter_void.InitializeTiny(); + rewriter_void.SetTkLocalVarSig(locals_signature_token); + + ILInstr* pFirstInstr = rewriter_void.GetILList()->m_pNext; + ILInstr* pNewInstr = NULL; + + // Step 0) Check if the assembly was already loaded + + // call bool IsAlreadyLoaded() + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_CALL; + pNewInstr->m_Arg32 = alreadyLoadedMethodToken; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // check if the return of the method call is true or false + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_BRFALSE_S; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + ILInstr* pBranchFalseInstr = pNewInstr; + + // return if IsAlreadyLoaded is true + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_RET; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // Step 1) Call void GetAssemblyAndSymbolsBytes(out IntPtr assemblyPtr, out int assemblySize, out IntPtr symbolsPtr, + // out int symbolsSize) + + // ldloca.s 0 : Load the address of the "assemblyPtr" variable (locals index 0) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOCA_S; + pNewInstr->m_Arg32 = 0; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // Set the false branch target + pBranchFalseInstr->m_pTarget = pNewInstr; + + // ldloca.s 1 : Load the address of the "assemblySize" variable (locals index 1) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOCA_S; + pNewInstr->m_Arg32 = 1; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldloca.s 2 : Load the address of the "symbolsPtr" variable (locals index 2) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOCA_S; + pNewInstr->m_Arg32 = 2; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldloca.s 3 : Load the address of the "symbolsSize" variable (locals index 3) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOCA_S; + pNewInstr->m_Arg32 = 3; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // call void GetAssemblyAndSymbolsBytes(out IntPtr assemblyPtr, out int assemblySize, out IntPtr symbolsPtr, out int + // symbolsSize) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_CALL; + pNewInstr->m_Arg32 = pinvoke_method_def; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // Step 2) Call void Marshal.Copy(IntPtr source, byte[] destination, int startIndex, int length) to populate the + // managed assembly bytes + + // ldloc.1 : Load the "assemblySize" variable (locals index 1) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_1; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // newarr System.Byte : Create a new Byte[] to hold a managed copy of the assembly data + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_NEWARR; + pNewInstr->m_Arg32 = byte_type_ref; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // stloc.s 4 : Assign the Byte[] to the "assemblyBytes" variable (locals index 4) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_STLOC_S; + pNewInstr->m_Arg8 = 4; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldloc.0 : Load the "assemblyPtr" variable (locals index 0) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_0; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldloc.s 4 : Load the "assemblyBytes" variable (locals index 4) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_S; + pNewInstr->m_Arg8 = 4; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldc.i4.0 : Load the integer 0 for the Marshal.Copy startIndex parameter + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDC_I4_0; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldloc.1 : Load the "assemblySize" variable (locals index 1) for the Marshal.Copy length parameter + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_1; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // call Marshal.Copy(IntPtr source, byte[] destination, int startIndex, int length) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_CALL; + pNewInstr->m_Arg32 = marshal_copy_member_ref; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // Step 3) Call void Marshal.Copy(IntPtr source, byte[] destination, int startIndex, int length) to populate the + // symbols bytes + + // ldloc.3 : Load the "symbolsSize" variable (locals index 3) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_3; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // newarr System.Byte : Create a new Byte[] to hold a managed copy of the symbols data + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_NEWARR; + pNewInstr->m_Arg32 = byte_type_ref; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // stloc.s 5 : Assign the Byte[] to the "symbolsBytes" variable (locals index 5) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_STLOC_S; + pNewInstr->m_Arg8 = 5; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldloc.2 : Load the "symbolsPtr" variables (locals index 2) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_2; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldloc.s 5 : Load the "symbolsBytes" variable (locals index 5) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_S; + pNewInstr->m_Arg8 = 5; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldc.i4.0 : Load the integer 0 for the Marshal.Copy startIndex parameter + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDC_I4_0; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldloc.3 : Load the "symbolsSize" variable (locals index 3) for the Marshal.Copy length parameter + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_3; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // call void Marshal.Copy(IntPtr source, byte[] destination, int startIndex, int length) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_CALL; + pNewInstr->m_Arg32 = marshal_copy_member_ref; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // Step 4) Call System.Reflection.Assembly System.Reflection.Assembly.Load(byte[], byte[])) + + // ldloc.s 4 : Load the "assemblyBytes" variable (locals index 4) for the first byte[] parameter of + // AppDomain.Load(byte[], byte[]) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_S; + pNewInstr->m_Arg8 = 4; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldloc.s 5 : Load the "symbolsBytes" variable (locals index 5) for the second byte[] parameter of + // AppDomain.Load(byte[], byte[]) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_S; + pNewInstr->m_Arg8 = 5; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // call System.Reflection.Assembly System.Reflection.Assembly.Load(uint8[], uint8[]) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_CALL; + pNewInstr->m_Arg32 = appdomain_load_member_ref; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // stloc.s 6 : Assign the System.Reflection.Assembly object to the "loadedAssembly" variable (locals index 6) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_STLOC_S; + pNewInstr->m_Arg8 = 6; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // Step 4) Call instance method Assembly.CreateInstance("Datadog.Trace.ClrProfiler.Managed.Loader.Startup") + + // ldloc.s 6 : Load the "loadedAssembly" variable (locals index 6) to call Assembly.CreateInstance + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDLOC_S; + pNewInstr->m_Arg8 = 6; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // ldstr "Datadog.Trace.ClrProfiler.Managed.Loader.Startup" + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_LDSTR; + pNewInstr->m_Arg32 = load_helper_token; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // callvirt System.Object System.Reflection.Assembly.CreateInstance(string) + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_CALLVIRT; + pNewInstr->m_Arg32 = assembly_create_instance_member_ref; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // pop the returned object + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_POP; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + // return + pNewInstr = rewriter_void.NewILInstr(); + pNewInstr->m_opcode = CEE_RET; + rewriter_void.InsertBefore(pFirstInstr, pNewInstr); + + hr = rewriter_void.Export(); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: Call to ILRewriter.Export() failed for ModuleID=", module_id); + return hr; + } - return S_OK; + return S_OK; } -HRESULT CorProfiler::AddIISPreStartInitFlags( - const ModuleID module_id, - const mdToken function_token) { - ComPtr metadata_interfaces; - auto hr = this->info_->GetModuleMetaData(module_id, ofRead | ofWrite, - IID_IMetaDataImport2, - metadata_interfaces.GetAddressOf()); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: failed to get metadata interface for ", - module_id); - return hr; - } +HRESULT CorProfiler::AddIISPreStartInitFlags(const ModuleID module_id, const mdToken function_token) +{ + ComPtr metadata_interfaces; + auto hr = this->info_->GetModuleMetaData(module_id, ofRead | ofWrite, IID_IMetaDataImport2, + metadata_interfaces.GetAddressOf()); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: failed to get metadata interface for ", module_id); + return hr; + } - const auto metadata_import = - metadata_interfaces.As(IID_IMetaDataImport); - const auto metadata_emit = - metadata_interfaces.As(IID_IMetaDataEmit); - const auto assembly_import = metadata_interfaces.As( - IID_IMetaDataAssemblyImport); - const auto assembly_emit = - metadata_interfaces.As(IID_IMetaDataAssemblyEmit); - - ILRewriter rewriter(this->info_, nullptr, module_id, function_token); - hr = rewriter.Import(); - - if (FAILED(hr)) { - Warn("RunILStartupHook: Call to ILRewriter.Import() failed for ", module_id, - " ", function_token); - return hr; - } + const auto metadata_import = metadata_interfaces.As(IID_IMetaDataImport); + const auto metadata_emit = metadata_interfaces.As(IID_IMetaDataEmit); + const auto assembly_import = metadata_interfaces.As(IID_IMetaDataAssemblyImport); + const auto assembly_emit = metadata_interfaces.As(IID_IMetaDataAssemblyEmit); + + ILRewriter rewriter(this->info_, nullptr, module_id, function_token); + hr = rewriter.Import(); - ILRewriterWrapper rewriter_wrapper(&rewriter); + if (FAILED(hr)) + { + Warn("RunILStartupHook: Call to ILRewriter.Import() failed for ", module_id, " ", function_token); + return hr; + } - // Get corlib assembly ref - mdAssemblyRef corlib_ref; - hr = GetCorLibAssemblyRef(assembly_emit, corAssemblyProperty, &corlib_ref); + ILRewriterWrapper rewriter_wrapper(&rewriter); - // Get System.Boolean type token - mdToken boolToken; - metadata_emit->DefineTypeRefByName(corlib_ref, SystemBoolean, - &boolToken); + // Get corlib assembly ref + mdAssemblyRef corlib_ref; + hr = GetCorLibAssemblyRef(assembly_emit, corAssemblyProperty, &corlib_ref); - // Get System.AppDomain type ref - mdTypeRef system_appdomain_type_ref; - hr = metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.AppDomain"), - &system_appdomain_type_ref); - if (FAILED(hr)) { - Warn("Wrapper objectTypeRef could not be defined."); - return hr; - } + // Get System.Boolean type token + mdToken boolToken; + metadata_emit->DefineTypeRefByName(corlib_ref, SystemBoolean, &boolToken); + + // Get System.AppDomain type ref + mdTypeRef system_appdomain_type_ref; + hr = metadata_emit->DefineTypeRefByName(corlib_ref, WStr("System.AppDomain"), &system_appdomain_type_ref); + if (FAILED(hr)) + { + Warn("Wrapper objectTypeRef could not be defined."); + return hr; + } - // Get a MemberRef for System.AppDomain.get_CurrentDomain() - COR_SIGNATURE appdomain_get_current_domain_signature_start[] = { - IMAGE_CEE_CS_CALLCONV_DEFAULT, - 0, - ELEMENT_TYPE_CLASS, // ret = System.AppDomain - // insert compressed token for System.AppDomain TypeRef here - }; - ULONG start_length = sizeof(appdomain_get_current_domain_signature_start); - - BYTE system_appdomain_type_ref_compressed_token[4]; - ULONG token_length = CorSigCompressToken( - system_appdomain_type_ref, system_appdomain_type_ref_compressed_token); - - const auto appdomain_get_current_domain_signature_length = start_length + token_length; - COR_SIGNATURE appdomain_get_current_domain_signature[250]; - memcpy(appdomain_get_current_domain_signature, - appdomain_get_current_domain_signature_start, start_length); - memcpy(&appdomain_get_current_domain_signature[start_length], - system_appdomain_type_ref_compressed_token, token_length); - - mdMemberRef appdomain_get_current_domain_member_ref; - hr = metadata_emit->DefineMemberRef( - system_appdomain_type_ref, WStr("get_CurrentDomain"), - appdomain_get_current_domain_signature, - appdomain_get_current_domain_signature_length, - &appdomain_get_current_domain_member_ref); - - // Get AppDomain.SetData - COR_SIGNATURE appdomain_set_data_signature[] = { - IMAGE_CEE_CS_CALLCONV_DEFAULT | IMAGE_CEE_CS_CALLCONV_HASTHIS, // Calling convention - 2, // Number of parameters - ELEMENT_TYPE_VOID, // Return type - ELEMENT_TYPE_STRING, // List of parameter types - ELEMENT_TYPE_OBJECT - }; - mdMemberRef appdomain_set_data_member_ref; - hr = metadata_emit->DefineMemberRef( - system_appdomain_type_ref, WStr("SetData"), - appdomain_set_data_signature, - sizeof(appdomain_set_data_signature), - &appdomain_set_data_member_ref); - - // Define "Datadog_IISPreInitStart" string - // Create a string representing - // "Datadog.Trace.ClrProfiler.Managed.Loader.Startup" Create OS-specific - // implementations because on Windows, creating the string via - // "Datadog.Trace.ClrProfiler.Managed.Loader.Startup"_W.c_str() does not - // create the proper string for CreateInstance to successfully call + // Get a MemberRef for System.AppDomain.get_CurrentDomain() + COR_SIGNATURE appdomain_get_current_domain_signature_start[] = { + IMAGE_CEE_CS_CALLCONV_DEFAULT, 0, + ELEMENT_TYPE_CLASS, // ret = System.AppDomain + // insert compressed token for System.AppDomain TypeRef here + }; + ULONG start_length = sizeof(appdomain_get_current_domain_signature_start); + + BYTE system_appdomain_type_ref_compressed_token[4]; + ULONG token_length = CorSigCompressToken(system_appdomain_type_ref, system_appdomain_type_ref_compressed_token); + + const auto appdomain_get_current_domain_signature_length = start_length + token_length; + COR_SIGNATURE appdomain_get_current_domain_signature[250]; + memcpy(appdomain_get_current_domain_signature, appdomain_get_current_domain_signature_start, start_length); + memcpy(&appdomain_get_current_domain_signature[start_length], system_appdomain_type_ref_compressed_token, + token_length); + + mdMemberRef appdomain_get_current_domain_member_ref; + hr = metadata_emit->DefineMemberRef( + system_appdomain_type_ref, WStr("get_CurrentDomain"), appdomain_get_current_domain_signature, + appdomain_get_current_domain_signature_length, &appdomain_get_current_domain_member_ref); + + // Get AppDomain.SetData + COR_SIGNATURE appdomain_set_data_signature[] = {IMAGE_CEE_CS_CALLCONV_DEFAULT | + IMAGE_CEE_CS_CALLCONV_HASTHIS, // Calling convention + 2, // Number of parameters + ELEMENT_TYPE_VOID, // Return type + ELEMENT_TYPE_STRING, // List of parameter types + ELEMENT_TYPE_OBJECT}; + mdMemberRef appdomain_set_data_member_ref; + hr = metadata_emit->DefineMemberRef(system_appdomain_type_ref, WStr("SetData"), appdomain_set_data_signature, + sizeof(appdomain_set_data_signature), &appdomain_set_data_member_ref); + + // Define "Datadog_IISPreInitStart" string + // Create a string representing + // "Datadog.Trace.ClrProfiler.Managed.Loader.Startup" Create OS-specific + // implementations because on Windows, creating the string via + // "Datadog.Trace.ClrProfiler.Managed.Loader.Startup"_W.c_str() does not + // create the proper string for CreateInstance to successfully call #ifdef _WIN32 - LPCWSTR pre_init_start_str = L"Datadog_IISPreInitStart"; - auto pre_init_start_str_size = wcslen(pre_init_start_str); + LPCWSTR pre_init_start_str = L"Datadog_IISPreInitStart"; + auto pre_init_start_str_size = wcslen(pre_init_start_str); #else - char16_t pre_init_start_str[] = - u"Datadog_IISPreInitStart"; - auto pre_init_start_str_size = - std::char_traits::length(pre_init_start_str); + char16_t pre_init_start_str[] = u"Datadog_IISPreInitStart"; + auto pre_init_start_str_size = std::char_traits::length(pre_init_start_str); #endif - mdString pre_init_start_string_token; - hr = metadata_emit->DefineUserString(pre_init_start_str, - (ULONG)pre_init_start_str_size, - &pre_init_start_string_token); - if (FAILED(hr)) { - Warn("GenerateVoidILStartupMethod: DefineUserString failed"); - return hr; - } + mdString pre_init_start_string_token; + hr = metadata_emit->DefineUserString(pre_init_start_str, (ULONG) pre_init_start_str_size, + &pre_init_start_string_token); + if (FAILED(hr)) + { + Warn("GenerateVoidILStartupMethod: DefineUserString failed"); + return hr; + } - // Get first instruction and set the rewriter to that location - ILInstr* pInstr = rewriter.GetILList()->m_pNext; - rewriter_wrapper.SetILPosition(pInstr); - ILInstr* pCurrentInstr = NULL; - ILInstr* pNewInstr = NULL; - - ////////////////////////////////////////////////// - // At the beginning of the method, call - // AppDomain.CurrentDomain.SetData(string, true) - - // Call AppDomain.get_CurrentDomain - rewriter_wrapper.CallMember(appdomain_get_current_domain_member_ref, false); - - // ldstr "Datadog_IISPreInitStart" - pCurrentInstr = rewriter_wrapper.GetCurrentILInstr(); - pNewInstr = rewriter.NewILInstr(); - pNewInstr->m_opcode = CEE_LDSTR; - pNewInstr->m_Arg32 = pre_init_start_string_token; - rewriter.InsertBefore(pCurrentInstr, pNewInstr); - - // load a boxed version of the boolean true - rewriter_wrapper.LoadInt32(1); - rewriter_wrapper.Box(boolToken); - - // Call AppDomain.SetData(string, object) - rewriter_wrapper.CallMember(appdomain_set_data_member_ref, true); - - ////////////////////////////////////////////////// - // At the end of the method, call - // AppDomain.CurrentDomain.SetData(string, false) - pInstr = rewriter.GetILList()->m_pPrev; // The last instruction should be a 'ret' instruction - - // Append a ret instruction so we can use the existing ret as the first instruction for our rewriting - pNewInstr = rewriter.NewILInstr(); - pNewInstr->m_opcode = CEE_RET; - rewriter.InsertAfter(pInstr, pNewInstr); - rewriter_wrapper.SetILPosition(pNewInstr); - - // Call AppDomain.get_CurrentDomain - // Special case: rewrite the previous ret instruction with this call - pInstr->m_opcode = CEE_CALL; - pInstr->m_Arg32 = appdomain_get_current_domain_member_ref; - - // ldstr "Datadog_IISPreInitStart" - pCurrentInstr = rewriter_wrapper.GetCurrentILInstr(); - pNewInstr = rewriter.NewILInstr(); - pNewInstr->m_opcode = CEE_LDSTR; - pNewInstr->m_Arg32 = pre_init_start_string_token; - rewriter.InsertBefore(pCurrentInstr, pNewInstr); - - // load a boxed version of the boolean false - rewriter_wrapper.LoadInt32(0); - rewriter_wrapper.Box(boolToken); - - // Call AppDomain.SetData(string, object) - rewriter_wrapper.CallMember(appdomain_set_data_member_ref, true); - - ////////////////////////////////////////////////// - // Finished with the IL rewriting, save the result - hr = rewriter.Export(); - - if (FAILED(hr)) { - Warn("RunILStartupHook: Call to ILRewriter.Export() failed for ModuleID=", - module_id, " ", function_token); - return hr; - } + // Get first instruction and set the rewriter to that location + ILInstr* pInstr = rewriter.GetILList()->m_pNext; + rewriter_wrapper.SetILPosition(pInstr); + ILInstr* pCurrentInstr = NULL; + ILInstr* pNewInstr = NULL; + + ////////////////////////////////////////////////// + // At the beginning of the method, call + // AppDomain.CurrentDomain.SetData(string, true) + + // Call AppDomain.get_CurrentDomain + rewriter_wrapper.CallMember(appdomain_get_current_domain_member_ref, false); + + // ldstr "Datadog_IISPreInitStart" + pCurrentInstr = rewriter_wrapper.GetCurrentILInstr(); + pNewInstr = rewriter.NewILInstr(); + pNewInstr->m_opcode = CEE_LDSTR; + pNewInstr->m_Arg32 = pre_init_start_string_token; + rewriter.InsertBefore(pCurrentInstr, pNewInstr); + + // load a boxed version of the boolean true + rewriter_wrapper.LoadInt32(1); + rewriter_wrapper.Box(boolToken); + + // Call AppDomain.SetData(string, object) + rewriter_wrapper.CallMember(appdomain_set_data_member_ref, true); + + ////////////////////////////////////////////////// + // At the end of the method, call + // AppDomain.CurrentDomain.SetData(string, false) + pInstr = rewriter.GetILList()->m_pPrev; // The last instruction should be a 'ret' instruction + + // Append a ret instruction so we can use the existing ret as the first instruction for our rewriting + pNewInstr = rewriter.NewILInstr(); + pNewInstr->m_opcode = CEE_RET; + rewriter.InsertAfter(pInstr, pNewInstr); + rewriter_wrapper.SetILPosition(pNewInstr); + + // Call AppDomain.get_CurrentDomain + // Special case: rewrite the previous ret instruction with this call + pInstr->m_opcode = CEE_CALL; + pInstr->m_Arg32 = appdomain_get_current_domain_member_ref; + + // ldstr "Datadog_IISPreInitStart" + pCurrentInstr = rewriter_wrapper.GetCurrentILInstr(); + pNewInstr = rewriter.NewILInstr(); + pNewInstr->m_opcode = CEE_LDSTR; + pNewInstr->m_Arg32 = pre_init_start_string_token; + rewriter.InsertBefore(pCurrentInstr, pNewInstr); + + // load a boxed version of the boolean false + rewriter_wrapper.LoadInt32(0); + rewriter_wrapper.Box(boolToken); + + // Call AppDomain.SetData(string, object) + rewriter_wrapper.CallMember(appdomain_set_data_member_ref, true); + + ////////////////////////////////////////////////// + // Finished with the IL rewriting, save the result + hr = rewriter.Export(); + + if (FAILED(hr)) + { + Warn("RunILStartupHook: Call to ILRewriter.Export() failed for ModuleID=", module_id, " ", function_token); + return hr; + } - return S_OK; + return S_OK; } #ifdef LINUX @@ -2592,112 +2699,136 @@ extern uint8_t pdb_start[] asm("_binary_Datadog_Trace_ClrProfiler_Managed_Loader extern uint8_t pdb_end[] asm("_binary_Datadog_Trace_ClrProfiler_Managed_Loader_pdb_end"); #endif -void CorProfiler::GetAssemblyAndSymbolsBytes(BYTE** pAssemblyArray, int* assemblySize, BYTE** pSymbolsArray, int* symbolsSize) const { +void CorProfiler::GetAssemblyAndSymbolsBytes(BYTE** pAssemblyArray, int* assemblySize, BYTE** pSymbolsArray, + int* symbolsSize) const +{ #ifdef _WIN32 - HINSTANCE hInstance = DllHandle; - LPCWSTR dllLpName; - LPCWSTR symbolsLpName; - - if (runtime_information_.is_desktop()) { - dllLpName = MAKEINTRESOURCE(NET45_MANAGED_ENTRYPOINT_DLL); - symbolsLpName = MAKEINTRESOURCE(NET45_MANAGED_ENTRYPOINT_SYMBOLS); - } else { - dllLpName = MAKEINTRESOURCE(NETCOREAPP20_MANAGED_ENTRYPOINT_DLL); - symbolsLpName = MAKEINTRESOURCE(NETCOREAPP20_MANAGED_ENTRYPOINT_SYMBOLS); - } + HINSTANCE hInstance = DllHandle; + LPCWSTR dllLpName; + LPCWSTR symbolsLpName; + + if (runtime_information_.is_desktop()) + { + dllLpName = MAKEINTRESOURCE(NET45_MANAGED_ENTRYPOINT_DLL); + symbolsLpName = MAKEINTRESOURCE(NET45_MANAGED_ENTRYPOINT_SYMBOLS); + } + else + { + dllLpName = MAKEINTRESOURCE(NETCOREAPP20_MANAGED_ENTRYPOINT_DLL); + symbolsLpName = MAKEINTRESOURCE(NETCOREAPP20_MANAGED_ENTRYPOINT_SYMBOLS); + } - HRSRC hResAssemblyInfo = FindResource(hInstance, dllLpName, L"ASSEMBLY"); - HGLOBAL hResAssembly = LoadResource(hInstance, hResAssemblyInfo); - *assemblySize = SizeofResource(hInstance, hResAssemblyInfo); - *pAssemblyArray = (LPBYTE)LockResource(hResAssembly); + HRSRC hResAssemblyInfo = FindResource(hInstance, dllLpName, L"ASSEMBLY"); + HGLOBAL hResAssembly = LoadResource(hInstance, hResAssemblyInfo); + *assemblySize = SizeofResource(hInstance, hResAssemblyInfo); + *pAssemblyArray = (LPBYTE) LockResource(hResAssembly); - HRSRC hResSymbolsInfo = FindResource(hInstance, symbolsLpName, L"SYMBOLS"); - HGLOBAL hResSymbols = LoadResource(hInstance, hResSymbolsInfo); - *symbolsSize = SizeofResource(hInstance, hResSymbolsInfo); - *pSymbolsArray = (LPBYTE)LockResource(hResSymbols); + HRSRC hResSymbolsInfo = FindResource(hInstance, symbolsLpName, L"SYMBOLS"); + HGLOBAL hResSymbols = LoadResource(hInstance, hResSymbolsInfo); + *symbolsSize = SizeofResource(hInstance, hResSymbolsInfo); + *pSymbolsArray = (LPBYTE) LockResource(hResSymbols); #elif LINUX - *assemblySize = dll_end - dll_start; - *pAssemblyArray = (BYTE*)dll_start; + *assemblySize = dll_end - dll_start; + *pAssemblyArray = (BYTE*) dll_start; - *symbolsSize = pdb_end - pdb_start; - *pSymbolsArray = (BYTE*)pdb_start; + *symbolsSize = pdb_end - pdb_start; + *pSymbolsArray = (BYTE*) pdb_start; #else const unsigned int imgCount = _dyld_image_count(); - for(auto i = 0; i < imgCount; i++) { + for (auto i = 0; i < imgCount; i++) + { const std::string name = std::string(_dyld_get_image_name(i)); - if (name.rfind("OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.dylib") != std::string::npos) { - const mach_header_64* header = (const struct mach_header_64 *) _dyld_get_image_header(i); + if (name.rfind("OpenTelemetry.AutoInstrumentation.ClrProfiler.Native.dylib") != std::string::npos) + { + const mach_header_64* header = (const struct mach_header_64*) _dyld_get_image_header(i); unsigned long dllSize; const auto dllData = getsectiondata(header, "binary", "dll", &dllSize); *assemblySize = dllSize; - *pAssemblyArray = (BYTE*)dllData; + *pAssemblyArray = (BYTE*) dllData; unsigned long pdbSize; const auto pdbData = getsectiondata(header, "binary", "pdb", &pdbSize); *symbolsSize = pdbSize; - *pSymbolsArray = (BYTE*)pdbData; + *pSymbolsArray = (BYTE*) pdbData; break; } } #endif } - // *** // * ReJIT Methods // *** -HRESULT STDMETHODCALLTYPE CorProfiler::ReJITCompilationStarted(FunctionID functionId, ReJITID rejitId, BOOL fIsSafeToBlock) { - if (!is_attached_) { - return S_OK; - } - Debug("ReJITCompilationStarted: [functionId: ", functionId, ", rejitId: ", rejitId, ", safeToBlock: ", fIsSafeToBlock, "]"); - // we notify the reJIT handler of this event - return rejit_handler->NotifyReJITCompilationStarted(functionId, rejitId); +HRESULT STDMETHODCALLTYPE CorProfiler::ReJITCompilationStarted(FunctionID functionId, ReJITID rejitId, + BOOL fIsSafeToBlock) +{ + if (!is_attached_) + { + return S_OK; + } + Debug("ReJITCompilationStarted: [functionId: ", functionId, ", rejitId: ", rejitId, + ", safeToBlock: ", fIsSafeToBlock, "]"); + // we notify the reJIT handler of this event + return rejit_handler->NotifyReJITCompilationStarted(functionId, rejitId); } -HRESULT STDMETHODCALLTYPE CorProfiler::GetReJITParameters(ModuleID moduleId, mdMethodDef methodId, ICorProfilerFunctionControl* pFunctionControl) { - if (!is_attached_) { - return S_OK; - } +HRESULT STDMETHODCALLTYPE CorProfiler::GetReJITParameters(ModuleID moduleId, mdMethodDef methodId, + ICorProfilerFunctionControl* pFunctionControl) +{ + if (!is_attached_) + { + return S_OK; + } - Debug("GetReJITParameters: [moduleId: ", moduleId, ", methodId: ", methodId, "]"); + Debug("GetReJITParameters: [moduleId: ", moduleId, ", methodId: ", methodId, "]"); - // we get the module_metadata from the moduleId. - ModuleMetadata* module_metadata = nullptr; - { - std::lock_guard guard(module_id_to_info_map_lock_); - auto findRes = module_id_to_info_map_.find(moduleId); - if (findRes != module_id_to_info_map_.end()) { - module_metadata = findRes->second; - } else { - return S_FALSE; + // we get the module_metadata from the moduleId. + ModuleMetadata* module_metadata = nullptr; + { + std::lock_guard guard(module_id_to_info_map_lock_); + auto findRes = module_id_to_info_map_.find(moduleId); + if (findRes != module_id_to_info_map_.end()) + { + module_metadata = findRes->second; + } + else + { + return S_FALSE; + } } - } - // we notify the reJIT handler of this event and pass the module_metadata. - return rejit_handler->NotifyReJITParameters(moduleId, methodId, pFunctionControl, module_metadata); + // we notify the reJIT handler of this event and pass the module_metadata. + return rejit_handler->NotifyReJITParameters(moduleId, methodId, pFunctionControl, module_metadata); } -HRESULT STDMETHODCALLTYPE CorProfiler::ReJITCompilationFinished(FunctionID functionId, ReJITID rejitId, HRESULT hrStatus, BOOL fIsSafeToBlock) { - if (!is_attached_) { - return S_OK; - } +HRESULT STDMETHODCALLTYPE CorProfiler::ReJITCompilationFinished(FunctionID functionId, ReJITID rejitId, + HRESULT hrStatus, BOOL fIsSafeToBlock) +{ + if (!is_attached_) + { + return S_OK; + } - Debug("ReJITCompilationFinished: [functionId: ", functionId, ", rejitId: ", rejitId, ", hrStatus: ", hrStatus, ", safeToBlock: ", fIsSafeToBlock, "]"); - return S_OK; + Debug("ReJITCompilationFinished: [functionId: ", functionId, ", rejitId: ", rejitId, ", hrStatus: ", hrStatus, + ", safeToBlock: ", fIsSafeToBlock, "]"); + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfiler::ReJITError(ModuleID moduleId, mdMethodDef methodId, FunctionID functionId, HRESULT hrStatus) { - if (!is_attached_) { - return S_OK; - } +HRESULT STDMETHODCALLTYPE CorProfiler::ReJITError(ModuleID moduleId, mdMethodDef methodId, FunctionID functionId, + HRESULT hrStatus) +{ + if (!is_attached_) + { + return S_OK; + } - Warn("ReJITError: [functionId: ", functionId, ", moduleId: ", moduleId, ", methodId: ", methodId, ", hrStatus: ", hrStatus, "]"); - return S_OK; + Warn("ReJITError: [functionId: ", functionId, ", moduleId: ", moduleId, ", methodId: ", methodId, + ", hrStatus: ", hrStatus, "]"); + return S_OK; } // *** @@ -2711,147 +2842,163 @@ HRESULT STDMETHODCALLTYPE CorProfiler::ReJITError(ModuleID moduleId, mdMethodDef /// Module metadata for the module /// Filtered vector of integrations to be applied /// Number of ReJIT requests made -size_t CorProfiler::CallTarget_RequestRejitForModule(ModuleID module_id, ModuleMetadata* module_metadata, const std::vector &filtered_integrations) { - auto _ = trace::Stats::Instance()->CallTargetRequestRejitMeasure(); - - auto metadata_import = module_metadata->metadata_import; - const auto assembly_metadata = GetAssemblyImportMetadata(module_metadata->assembly_import); - - std::vector vtModules; - std::vector vtMethodDefs; - - for (const IntegrationMethod& integration : filtered_integrations) { - - // If the integration is not for the current assembly we skip. - if (integration.replacement.target_method.assembly.name != module_metadata->assemblyName) { - continue; - } - - // If the integration mode is not CallTarget we skip. - if (integration.replacement.wrapper_method.action != calltarget_modification_action) { - continue; - } - - // Check min version - if (integration.replacement.target_method.min_version > assembly_metadata.version) { - continue; - } - - // Check max version - if (integration.replacement.target_method.max_version < assembly_metadata.version) { - continue; - } - - // We are in the right module, so we try to load the mdTypeDef from the integration target type name. - mdTypeDef typeDef = mdTypeDefNil; - auto foundType = FindTypeDefByName( - integration.replacement.target_method.type_name, - module_metadata->assemblyName, metadata_import, typeDef); - - if (!foundType) { - continue; - } - - // Now we enumerate all methods with the same target method name. (All overloads of the method) - auto enumMethods = Enumerator( - [metadata_import, integration, typeDef](HCORENUM* ptr, mdMethodDef arr[], ULONG max, ULONG* cnt) -> HRESULT { - return metadata_import->EnumMethodsWithName(ptr, typeDef, integration.replacement.target_method.method_name.c_str(), arr, max, cnt); - }, - [metadata_import](HCORENUM ptr) -> void { - metadata_import->CloseEnum(ptr); - }); - - auto enumIterator = enumMethods.begin(); - while (enumIterator != enumMethods.end()) { - auto methodDef = *enumIterator; - - // Extract the function info from the mdMethodDef - const auto caller = GetFunctionInfo(module_metadata->metadata_import, methodDef); - if (!caller.IsValid()) { - Warn("The caller for the methoddef: ", TokenStr(&methodDef), " is not valid!"); - enumIterator = ++enumIterator; - continue; - } - - // We create a new function info into the heap from the caller functionInfo in the stack, to be used later in the ReJIT process - auto functionInfo = new FunctionInfo(caller); - auto hr = functionInfo->method_signature.TryParse(); - if (FAILED(hr)) { - Warn("The method signature: ", functionInfo->method_signature.str(), " cannot be parsed."); - delete functionInfo; - enumIterator = ++enumIterator; - continue; - } - - // Compare if the current mdMethodDef contains the same number of arguments as the instrumentation target - const auto numOfArgs = functionInfo->method_signature.NumberOfArguments(); - if (numOfArgs != integration.replacement.target_method.signature_types.size() - 1) { - Debug("The caller for the methoddef: ", integration.replacement.target_method.method_name, " doesn't have the right number of arguments."); - delete functionInfo; - enumIterator = ++enumIterator; - continue; - } - - // Compare each mdMethodDef argument type to the instrumentation target - bool argumentsMismatch = false; - const auto methodArguments = functionInfo->method_signature.GetMethodArguments(); - Debug("Comparing signature for method: ", integration.replacement.target_method.type_name, ".", integration.replacement.target_method.method_name); - for (unsigned int i = 0; i < numOfArgs; i++) { - const auto argumentTypeName = methodArguments[i].GetTypeTokName(metadata_import); - const auto integrationArgumentTypeName = integration.replacement.target_method.signature_types[i + 1]; - Debug(" -> ", argumentTypeName, " = ", integrationArgumentTypeName); - if (argumentTypeName != integrationArgumentTypeName && integrationArgumentTypeName != WStr("_")) { - argumentsMismatch = true; - break; - } - } - if (argumentsMismatch) { - Debug("The caller for the methoddef: ", integration.replacement.target_method.method_name, " doesn't have the right type of arguments."); - delete functionInfo; - enumIterator = ++enumIterator; - continue; - } - - // As we are in the right method, we gather all information we need and stored it in to the ReJIT handler. - auto moduleHandler = rejit_handler->GetOrAddModule(module_id); - moduleHandler->SetModuleMetadata(module_metadata); - auto methodHandler = moduleHandler->GetOrAddMethod(methodDef); - methodHandler->SetFunctionInfo(functionInfo); - methodHandler->SetMethodReplacement(new MethodReplacement(integration.replacement)); - - // Store module_id and methodDef to request the ReJIT after analyzing all integrations. - vtModules.push_back(module_id); - vtMethodDefs.push_back(methodDef); - - bool caller_assembly_is_domain_neutral = runtime_information_.is_desktop() && corlib_module_loaded && module_metadata->app_domain_id == corlib_app_domain_id; - - Info("Enqueue for ReJIT [ModuleId=", module_id, - ", MethodDef=", TokenStr(&methodDef), - ", AppDomainId=", module_metadata->app_domain_id, - ", IsDomainNeutral=", caller_assembly_is_domain_neutral, - ", Assembly=", module_metadata->assemblyName, - ", Type=", caller.type.name, - ", Method=", caller.name, - ", Signature=", caller.signature.str(), - "]"); - enumIterator = ++enumIterator; +size_t CorProfiler::CallTarget_RequestRejitForModule(ModuleID module_id, ModuleMetadata* module_metadata, + const std::vector& filtered_integrations) +{ + auto _ = trace::Stats::Instance()->CallTargetRequestRejitMeasure(); + + auto metadata_import = module_metadata->metadata_import; + const auto assembly_metadata = GetAssemblyImportMetadata(module_metadata->assembly_import); + + std::vector vtModules; + std::vector vtMethodDefs; + + for (const IntegrationMethod& integration : filtered_integrations) + { + + // If the integration is not for the current assembly we skip. + if (integration.replacement.target_method.assembly.name != module_metadata->assemblyName) + { + continue; + } + + // If the integration mode is not CallTarget we skip. + if (integration.replacement.wrapper_method.action != calltarget_modification_action) + { + continue; + } + + // Check min version + if (integration.replacement.target_method.min_version > assembly_metadata.version) + { + continue; + } + + // Check max version + if (integration.replacement.target_method.max_version < assembly_metadata.version) + { + continue; + } + + // We are in the right module, so we try to load the mdTypeDef from the integration target type name. + mdTypeDef typeDef = mdTypeDefNil; + auto foundType = FindTypeDefByName(integration.replacement.target_method.type_name, + module_metadata->assemblyName, metadata_import, typeDef); + + if (!foundType) + { + continue; + } + + // Now we enumerate all methods with the same target method name. (All overloads of the method) + auto enumMethods = Enumerator( + [metadata_import, integration, typeDef](HCORENUM* ptr, mdMethodDef arr[], ULONG max, + ULONG* cnt) -> HRESULT { + return metadata_import->EnumMethodsWithName( + ptr, typeDef, integration.replacement.target_method.method_name.c_str(), arr, max, cnt); + }, + [metadata_import](HCORENUM ptr) -> void { metadata_import->CloseEnum(ptr); }); + + auto enumIterator = enumMethods.begin(); + while (enumIterator != enumMethods.end()) + { + auto methodDef = *enumIterator; + + // Extract the function info from the mdMethodDef + const auto caller = GetFunctionInfo(module_metadata->metadata_import, methodDef); + if (!caller.IsValid()) + { + Warn("The caller for the methoddef: ", TokenStr(&methodDef), " is not valid!"); + enumIterator = ++enumIterator; + continue; + } + + // We create a new function info into the heap from the caller functionInfo in the stack, to be used later + // in the ReJIT process + auto functionInfo = new FunctionInfo(caller); + auto hr = functionInfo->method_signature.TryParse(); + if (FAILED(hr)) + { + Warn("The method signature: ", functionInfo->method_signature.str(), " cannot be parsed."); + delete functionInfo; + enumIterator = ++enumIterator; + continue; + } + + // Compare if the current mdMethodDef contains the same number of arguments as the instrumentation target + const auto numOfArgs = functionInfo->method_signature.NumberOfArguments(); + if (numOfArgs != integration.replacement.target_method.signature_types.size() - 1) + { + Debug("The caller for the methoddef: ", integration.replacement.target_method.method_name, + " doesn't have the right number of arguments."); + delete functionInfo; + enumIterator = ++enumIterator; + continue; + } + + // Compare each mdMethodDef argument type to the instrumentation target + bool argumentsMismatch = false; + const auto methodArguments = functionInfo->method_signature.GetMethodArguments(); + Debug("Comparing signature for method: ", integration.replacement.target_method.type_name, ".", + integration.replacement.target_method.method_name); + for (unsigned int i = 0; i < numOfArgs; i++) + { + const auto argumentTypeName = methodArguments[i].GetTypeTokName(metadata_import); + const auto integrationArgumentTypeName = integration.replacement.target_method.signature_types[i + 1]; + Debug(" -> ", argumentTypeName, " = ", integrationArgumentTypeName); + if (argumentTypeName != integrationArgumentTypeName && integrationArgumentTypeName != WStr("_")) + { + argumentsMismatch = true; + break; + } + } + if (argumentsMismatch) + { + Debug("The caller for the methoddef: ", integration.replacement.target_method.method_name, + " doesn't have the right type of arguments."); + delete functionInfo; + enumIterator = ++enumIterator; + continue; + } + + // As we are in the right method, we gather all information we need and stored it in to the ReJIT handler. + auto moduleHandler = rejit_handler->GetOrAddModule(module_id); + moduleHandler->SetModuleMetadata(module_metadata); + auto methodHandler = moduleHandler->GetOrAddMethod(methodDef); + methodHandler->SetFunctionInfo(functionInfo); + methodHandler->SetMethodReplacement(new MethodReplacement(integration.replacement)); + + // Store module_id and methodDef to request the ReJIT after analyzing all integrations. + vtModules.push_back(module_id); + vtMethodDefs.push_back(methodDef); + + bool caller_assembly_is_domain_neutral = runtime_information_.is_desktop() && corlib_module_loaded && + module_metadata->app_domain_id == corlib_app_domain_id; + + Info("Enqueue for ReJIT [ModuleId=", module_id, ", MethodDef=", TokenStr(&methodDef), + ", AppDomainId=", module_metadata->app_domain_id, + ", IsDomainNeutral=", caller_assembly_is_domain_neutral, ", Assembly=", module_metadata->assemblyName, + ", Type=", caller.type.name, ", Method=", caller.name, ", Signature=", caller.signature.str(), "]"); + enumIterator = ++enumIterator; + } } - } - // Request the ReJIT for all integrations found in the module. - if (!vtMethodDefs.empty()) { - this->rejit_handler->EnqueueForRejit(vtMethodDefs.size(), vtModules.data(), vtMethodDefs.data()); - } + // Request the ReJIT for all integrations found in the module. + if (!vtMethodDefs.empty()) + { + this->rejit_handler->EnqueueForRejit(vtMethodDefs.size(), vtModules.data(), vtMethodDefs.data()); + } - // We return the number of ReJIT requests - return vtMethodDefs.size(); + // We return the number of ReJIT requests + return vtMethodDefs.size(); } /// -/// Rewrite the target method body with the calltarget implementation. (This is function is triggered by the ReJIT handler) -/// Resulting code structure: +/// Rewrite the target method body with the calltarget implementation. (This is function is triggered by the ReJIT +/// handler) Resulting code structure: /// -/// - Add locals for TReturn (if non-void method), CallTargetState, CallTargetReturn/CallTargetReturn, Exception +/// - Add locals for TReturn (if non-void method), CallTargetState, CallTargetReturn/CallTargetReturn, +/// Exception /// - Initialize locals /// /// try @@ -2869,7 +3016,8 @@ size_t CorProfiler::CallTarget_RequestRejitForModule(ModuleID module_id, ModuleM /// } /// /// - Execute original method instructions -/// * All RET instructions are replaced with a LEAVE_S. If non-void method, the value on the stack is first stored in the TReturn local. +/// * All RET instructions are replaced with a LEAVE_S. If non-void method, the value on the stack is first stored +/// in the TReturn local. /// } /// catch (Exception) /// { @@ -2881,7 +3029,8 @@ size_t CorProfiler::CallTarget_RequestRejitForModule(ModuleID module_id, ModuleM /// { /// try /// { -/// - Invoke EndMethod with object instance (or null if static method), TReturn local (if non-void method), CallTargetState local, and Exception local +/// - Invoke EndMethod with object instance (or null if static method), TReturn local (if non-void method), +/// CallTargetState local, and Exception local /// - Store result into CallTargetReturn/CallTargetReturn local /// - If non-void method, store CallTargetReturn.GetReturnValue() into TReturn local /// } @@ -2897,410 +3046,451 @@ size_t CorProfiler::CallTarget_RequestRejitForModule(ModuleID module_id, ModuleM /// Module ReJIT handler representation /// Method ReJIT handler representation /// Result of the rewriting -HRESULT CorProfiler::CallTarget_RewriterCallback(RejitHandlerModule* moduleHandler, RejitHandlerModuleMethod* methodHandler) { - auto _ = trace::Stats::Instance()->CallTargetRewriterCallbackMeasure(); - - ModuleID module_id = moduleHandler->GetModuleId(); - ModuleMetadata* module_metadata = moduleHandler->GetModuleMetadata(); - FunctionInfo* caller = methodHandler->GetFunctionInfo(); - CallTargetTokens* callTargetTokens = module_metadata->GetCallTargetTokens(); - mdToken function_token = caller->id; - FunctionMethodArgument retFuncArg = caller->method_signature.GetRet(); - MethodReplacement* method_replacement = methodHandler->GetMethodReplacement(); - unsigned int retFuncElementType; - int retTypeFlags = retFuncArg.GetTypeFlags(retFuncElementType); - bool isVoid = (retTypeFlags & TypeFlagVoid) > 0; - bool isStatic = !(caller->method_signature.CallingConvention() & IMAGE_CEE_CS_CALLCONV_HASTHIS); - std::vector methodArguments = caller->method_signature.GetMethodArguments(); - int numArgs = caller->method_signature.NumberOfArguments(); - auto metaEmit = module_metadata->metadata_emit; - auto metaImport = module_metadata->metadata_import; - - // *** Get all references to the wrapper type - mdMemberRef wrapper_method_ref = mdMemberRefNil; - mdTypeRef wrapper_type_ref = mdTypeRefNil; - GetWrapperMethodRef(module_metadata, module_id, *method_replacement, wrapper_method_ref, wrapper_type_ref); - - Debug("*** CallTarget_RewriterCallback() Start: ", caller->type.name, ".", caller->name, - "() [IsVoid=", isVoid, - ", IsStatic=", isStatic, - ", IntegrationType=", method_replacement->wrapper_method.type_name, - ", Arguments=", numArgs, - "]"); - - // First we check if the managed profiler has not been loaded yet - if (!ProfilerAssemblyIsLoadedIntoAppDomain(module_metadata->app_domain_id)) { - Warn("*** CallTarget_RewriterCallback() skipping method: Method replacement found but the managed profiler has not yet been loaded into AppDomain with id=", - module_metadata->app_domain_id, " token=", function_token, " caller_name=", caller->type.name, ".", caller->name, "()"); - return S_FALSE; - } +HRESULT CorProfiler::CallTarget_RewriterCallback(RejitHandlerModule* moduleHandler, + RejitHandlerModuleMethod* methodHandler) +{ + auto _ = trace::Stats::Instance()->CallTargetRewriterCallbackMeasure(); + + ModuleID module_id = moduleHandler->GetModuleId(); + ModuleMetadata* module_metadata = moduleHandler->GetModuleMetadata(); + FunctionInfo* caller = methodHandler->GetFunctionInfo(); + CallTargetTokens* callTargetTokens = module_metadata->GetCallTargetTokens(); + mdToken function_token = caller->id; + FunctionMethodArgument retFuncArg = caller->method_signature.GetRet(); + MethodReplacement* method_replacement = methodHandler->GetMethodReplacement(); + unsigned int retFuncElementType; + int retTypeFlags = retFuncArg.GetTypeFlags(retFuncElementType); + bool isVoid = (retTypeFlags & TypeFlagVoid) > 0; + bool isStatic = !(caller->method_signature.CallingConvention() & IMAGE_CEE_CS_CALLCONV_HASTHIS); + std::vector methodArguments = caller->method_signature.GetMethodArguments(); + int numArgs = caller->method_signature.NumberOfArguments(); + auto metaEmit = module_metadata->metadata_emit; + auto metaImport = module_metadata->metadata_import; + + // *** Get all references to the wrapper type + mdMemberRef wrapper_method_ref = mdMemberRefNil; + mdTypeRef wrapper_type_ref = mdTypeRefNil; + GetWrapperMethodRef(module_metadata, module_id, *method_replacement, wrapper_method_ref, wrapper_type_ref); + + Debug("*** CallTarget_RewriterCallback() Start: ", caller->type.name, ".", caller->name, "() [IsVoid=", isVoid, + ", IsStatic=", isStatic, ", IntegrationType=", method_replacement->wrapper_method.type_name, + ", Arguments=", numArgs, "]"); + + // First we check if the managed profiler has not been loaded yet + if (!ProfilerAssemblyIsLoadedIntoAppDomain(module_metadata->app_domain_id)) + { + Warn("*** CallTarget_RewriterCallback() skipping method: Method replacement found but the managed profiler has " + "not yet been loaded into AppDomain with id=", + module_metadata->app_domain_id, " token=", function_token, " caller_name=", caller->type.name, ".", + caller->name, "()"); + return S_FALSE; + } - // *** Create rewriter - ILRewriter rewriter(this->info_, methodHandler->GetFunctionControl(), module_id, function_token); - bool modified = false; - auto hr = rewriter.Import(); - if (FAILED(hr)) { - Warn("*** CallTarget_RewriterCallback(): Call to ILRewriter.Import() failed for ", module_id, " ", function_token); - return S_FALSE; - } + // *** Create rewriter + ILRewriter rewriter(this->info_, methodHandler->GetFunctionControl(), module_id, function_token); + bool modified = false; + auto hr = rewriter.Import(); + if (FAILED(hr)) + { + Warn("*** CallTarget_RewriterCallback(): Call to ILRewriter.Import() failed for ", module_id, " ", + function_token); + return S_FALSE; + } - // *** Store the original il code text if the dump_il option is enabled. - std::string original_code; - if (dump_il_rewrite_enabled) { - original_code = GetILCodes( - "*** CallTarget_RewriterCallback(): Original Code: ", &rewriter, - *caller, module_metadata); - } + // *** Store the original il code text if the dump_il option is enabled. + std::string original_code; + if (dump_il_rewrite_enabled) + { + original_code = + GetILCodes("*** CallTarget_RewriterCallback(): Original Code: ", &rewriter, *caller, module_metadata); + } - // *** Create the rewriter wrapper helper - ILRewriterWrapper reWriterWrapper(&rewriter); - reWriterWrapper.SetILPosition(rewriter.GetILList()->m_pNext); - - // *** Modify the Local Var Signature of the method and initialize the new local vars - ULONG callTargetStateIndex = static_cast(ULONG_MAX); - ULONG exceptionIndex = static_cast(ULONG_MAX); - ULONG callTargetReturnIndex = static_cast(ULONG_MAX); - ULONG returnValueIndex = static_cast(ULONG_MAX); - mdToken callTargetStateToken = mdTokenNil; - mdToken exceptionToken = mdTokenNil; - mdToken callTargetReturnToken = mdTokenNil; - ILInstr* firstInstruction; - callTargetTokens->ModifyLocalSigAndInitialize(&reWriterWrapper, caller, - &callTargetStateIndex, &exceptionIndex, - &callTargetReturnIndex, &returnValueIndex, - &callTargetStateToken, - &exceptionToken, &callTargetReturnToken, &firstInstruction); - - // *** - // BEGIN METHOD PART - // *** - - // *** Load instance into the stack (if not static) - if (isStatic) { - if (caller->type.valueType) { - // Static methods in a ValueType can't be instrumented. - // In the future this can be supported by adding a local for the valuetype and initialize it to the default value. - // After the signature modification we need to emit the following IL to initialize and load into the stack. - // ldloca.s [localIndex] - // initobj [valueType] - // ldloc.s [localIndex] - Warn("*** CallTarget_RewriterCallback(): Static methods in a ValueType cannot be instrumented. "); - return S_FALSE; - } - reWriterWrapper.LoadNull(); - } else { - reWriterWrapper.LoadArgument(0); - if (caller->type.valueType) { - if (caller->type.type_spec != mdTypeSpecNil) { - reWriterWrapper.LoadObj(caller->type.type_spec); - } - else if (!caller->type.isGeneric) { - reWriterWrapper.LoadObj(caller->type.id); - } else { - // Generic struct instrumentation is not supported - // IMetaDataImport::GetMemberProps and IMetaDataImport::GetMemberRefProps returns - // The parent token as mdTypeDef and not as a mdTypeSpec - // that's because the method definition is stored in the mdTypeDef - // The problem is that we don't have the exact Spec of that generic - // We can't emit LoadObj or Box because that would result in an invalid IL. - // This problem doesn't occur on a class type because we can always relay in the - // object type. - return S_FALSE; - } + // *** Create the rewriter wrapper helper + ILRewriterWrapper reWriterWrapper(&rewriter); + reWriterWrapper.SetILPosition(rewriter.GetILList()->m_pNext); + + // *** Modify the Local Var Signature of the method and initialize the new local vars + ULONG callTargetStateIndex = static_cast(ULONG_MAX); + ULONG exceptionIndex = static_cast(ULONG_MAX); + ULONG callTargetReturnIndex = static_cast(ULONG_MAX); + ULONG returnValueIndex = static_cast(ULONG_MAX); + mdToken callTargetStateToken = mdTokenNil; + mdToken exceptionToken = mdTokenNil; + mdToken callTargetReturnToken = mdTokenNil; + ILInstr* firstInstruction; + callTargetTokens->ModifyLocalSigAndInitialize(&reWriterWrapper, caller, &callTargetStateIndex, &exceptionIndex, + &callTargetReturnIndex, &returnValueIndex, &callTargetStateToken, + &exceptionToken, &callTargetReturnToken, &firstInstruction); + + // *** + // BEGIN METHOD PART + // *** + + // *** Load instance into the stack (if not static) + if (isStatic) + { + if (caller->type.valueType) + { + // Static methods in a ValueType can't be instrumented. + // In the future this can be supported by adding a local for the valuetype and initialize it to the default + // value. After the signature modification we need to emit the following IL to initialize and load into the + // stack. + // ldloca.s [localIndex] + // initobj [valueType] + // ldloc.s [localIndex] + Warn("*** CallTarget_RewriterCallback(): Static methods in a ValueType cannot be instrumented. "); + return S_FALSE; + } + reWriterWrapper.LoadNull(); + } + else + { + reWriterWrapper.LoadArgument(0); + if (caller->type.valueType) + { + if (caller->type.type_spec != mdTypeSpecNil) + { + reWriterWrapper.LoadObj(caller->type.type_spec); + } + else if (!caller->type.isGeneric) + { + reWriterWrapper.LoadObj(caller->type.id); + } + else + { + // Generic struct instrumentation is not supported + // IMetaDataImport::GetMemberProps and IMetaDataImport::GetMemberRefProps returns + // The parent token as mdTypeDef and not as a mdTypeSpec + // that's because the method definition is stored in the mdTypeDef + // The problem is that we don't have the exact Spec of that generic + // We can't emit LoadObj or Box because that would result in an invalid IL. + // This problem doesn't occur on a class type because we can always relay in the + // object type. + return S_FALSE; + } + } } - } - // *** Load the method arguments to the stack - unsigned elementType; - if (numArgs < FASTPATH_COUNT) { - // Load the arguments directly (FastPath) - for (int i = 0; i < numArgs; i++) { - reWriterWrapper.LoadArgument(i + (isStatic ? 0 : 1)); - auto argTypeFlags = methodArguments[i].GetTypeFlags(elementType); - if (argTypeFlags & TypeFlagByRef) { - Warn( - "*** CallTarget_RewriterCallback(): Methods with ref parameters " - "cannot be instrumented. "); - return S_FALSE; - } - } - } else { - // Load the arguments inside an object array (SlowPath) - reWriterWrapper.CreateArray(callTargetTokens->GetObjectTypeRef(), numArgs); - for (int i = 0; i < numArgs; i++) { - reWriterWrapper.BeginLoadValueIntoArray(i); - reWriterWrapper.LoadArgument(i + (isStatic ? 0 : 1)); - auto argTypeFlags = methodArguments[i].GetTypeFlags(elementType); - if (argTypeFlags & TypeFlagByRef) { - Warn( - "*** CallTarget_RewriterCallback(): Methods with ref parameters " - "cannot be instrumented. "); - return S_FALSE; - } - if (argTypeFlags & TypeFlagBoxedType) { - auto tok = methodArguments[i].GetTypeTok( - metaEmit, callTargetTokens->GetCorLibAssemblyRef()); - if (tok == mdTokenNil) { - return S_FALSE; + // *** Load the method arguments to the stack + unsigned elementType; + if (numArgs < FASTPATH_COUNT) + { + // Load the arguments directly (FastPath) + for (int i = 0; i < numArgs; i++) + { + reWriterWrapper.LoadArgument(i + (isStatic ? 0 : 1)); + auto argTypeFlags = methodArguments[i].GetTypeFlags(elementType); + if (argTypeFlags & TypeFlagByRef) + { + Warn("*** CallTarget_RewriterCallback(): Methods with ref parameters " + "cannot be instrumented. "); + return S_FALSE; + } + } + } + else + { + // Load the arguments inside an object array (SlowPath) + reWriterWrapper.CreateArray(callTargetTokens->GetObjectTypeRef(), numArgs); + for (int i = 0; i < numArgs; i++) + { + reWriterWrapper.BeginLoadValueIntoArray(i); + reWriterWrapper.LoadArgument(i + (isStatic ? 0 : 1)); + auto argTypeFlags = methodArguments[i].GetTypeFlags(elementType); + if (argTypeFlags & TypeFlagByRef) + { + Warn("*** CallTarget_RewriterCallback(): Methods with ref parameters " + "cannot be instrumented. "); + return S_FALSE; + } + if (argTypeFlags & TypeFlagBoxedType) + { + auto tok = methodArguments[i].GetTypeTok(metaEmit, callTargetTokens->GetCorLibAssemblyRef()); + if (tok == mdTokenNil) + { + return S_FALSE; + } + reWriterWrapper.Box(tok); + } + reWriterWrapper.EndLoadValueIntoArray(); } - reWriterWrapper.Box(tok); - } - reWriterWrapper.EndLoadValueIntoArray(); } - } - // *** Emit BeginMethod call - if (debug_logging_enabled) { - Debug("Caller Type.Id: ", HexStr(&caller->type.id, sizeof(mdToken))); - Debug("Caller Type.IsGeneric: ", caller->type.isGeneric); - Debug("Caller Type.IsValid: ", caller->type.IsValid()); - Debug("Caller Type.Name: ", caller->type.name); - Debug("Caller Type.TokenType: ", caller->type.token_type); - Debug("Caller Type.Spec: ", HexStr(&caller->type.type_spec, sizeof(mdTypeSpec))); - Debug("Caller Type.ValueType: ", caller->type.valueType); - // - if (caller->type.extend_from != nullptr) { - Debug("Caller Type Extend From.Id: ", HexStr(&caller->type.extend_from->id, sizeof(mdToken))); - Debug("Caller Type Extend From.IsGeneric: ", caller->type.extend_from->isGeneric); - Debug("Caller Type Extend From.IsValid: ", caller->type.extend_from->IsValid()); - Debug("Caller Type Extend From.Name: ", caller->type.extend_from->name); - Debug("Caller Type Extend From.TokenType: ", caller->type.extend_from->token_type); - Debug("Caller Type Extend From.Spec: ", HexStr(&caller->type.extend_from->type_spec, sizeof(mdTypeSpec))); - Debug("Caller Type Extend From.ValueType: ", caller->type.extend_from->valueType); - } - // - if (caller->type.parent_type != nullptr) { - Debug("Caller ParentType.Id: ", HexStr(&caller->type.parent_type->id, sizeof(mdToken))); - Debug("Caller ParentType.IsGeneric: ", caller->type.parent_type->isGeneric); - Debug("Caller ParentType.IsValid: ", caller->type.parent_type->IsValid()); - Debug("Caller ParentType.Name: ", caller->type.parent_type->name); - Debug("Caller ParentType.TokenType: ", caller->type.parent_type->token_type); - Debug("Caller ParentType.Spec: ", HexStr(&caller->type.parent_type->type_spec, sizeof(mdTypeSpec))); - Debug("Caller ParentType.ValueType: ", caller->type.parent_type->valueType); - } - } + // *** Emit BeginMethod call + if (debug_logging_enabled) + { + Debug("Caller Type.Id: ", HexStr(&caller->type.id, sizeof(mdToken))); + Debug("Caller Type.IsGeneric: ", caller->type.isGeneric); + Debug("Caller Type.IsValid: ", caller->type.IsValid()); + Debug("Caller Type.Name: ", caller->type.name); + Debug("Caller Type.TokenType: ", caller->type.token_type); + Debug("Caller Type.Spec: ", HexStr(&caller->type.type_spec, sizeof(mdTypeSpec))); + Debug("Caller Type.ValueType: ", caller->type.valueType); + // + if (caller->type.extend_from != nullptr) + { + Debug("Caller Type Extend From.Id: ", HexStr(&caller->type.extend_from->id, sizeof(mdToken))); + Debug("Caller Type Extend From.IsGeneric: ", caller->type.extend_from->isGeneric); + Debug("Caller Type Extend From.IsValid: ", caller->type.extend_from->IsValid()); + Debug("Caller Type Extend From.Name: ", caller->type.extend_from->name); + Debug("Caller Type Extend From.TokenType: ", caller->type.extend_from->token_type); + Debug("Caller Type Extend From.Spec: ", HexStr(&caller->type.extend_from->type_spec, sizeof(mdTypeSpec))); + Debug("Caller Type Extend From.ValueType: ", caller->type.extend_from->valueType); + } + // + if (caller->type.parent_type != nullptr) + { + Debug("Caller ParentType.Id: ", HexStr(&caller->type.parent_type->id, sizeof(mdToken))); + Debug("Caller ParentType.IsGeneric: ", caller->type.parent_type->isGeneric); + Debug("Caller ParentType.IsValid: ", caller->type.parent_type->IsValid()); + Debug("Caller ParentType.Name: ", caller->type.parent_type->name); + Debug("Caller ParentType.TokenType: ", caller->type.parent_type->token_type); + Debug("Caller ParentType.Spec: ", HexStr(&caller->type.parent_type->type_spec, sizeof(mdTypeSpec))); + Debug("Caller ParentType.ValueType: ", caller->type.parent_type->valueType); + } + } - ILInstr* beginCallInstruction; - hr = callTargetTokens->WriteBeginMethod(&reWriterWrapper, wrapper_type_ref, &caller->type, methodArguments, &beginCallInstruction); - if (FAILED(hr)) { - // Error message is written to the log in WriteBeginMethod. - return S_FALSE; - } - reWriterWrapper.StLocal(callTargetStateIndex); - ILInstr* pStateLeaveToBeginOriginalMethodInstr = reWriterWrapper.CreateInstr(CEE_LEAVE_S); - - // *** BeginMethod call catch - ILInstr* beginMethodCatchFirstInstr = nullptr; - callTargetTokens->WriteLogException(&reWriterWrapper, wrapper_type_ref, &caller->type, &beginMethodCatchFirstInstr); - ILInstr* beginMethodCatchLeaveInstr = reWriterWrapper.CreateInstr(CEE_LEAVE_S); - - // *** BeginMethod exception handling clause - EHClause beginMethodExClause{}; - beginMethodExClause.m_Flags = COR_ILEXCEPTION_CLAUSE_NONE; - beginMethodExClause.m_pTryBegin = firstInstruction; - beginMethodExClause.m_pTryEnd = beginMethodCatchFirstInstr; - beginMethodExClause.m_pHandlerBegin = beginMethodCatchFirstInstr; - beginMethodExClause.m_pHandlerEnd = beginMethodCatchLeaveInstr; - beginMethodExClause.m_ClassToken = callTargetTokens->GetExceptionTypeRef(); - - // *** - // METHOD EXECUTION - // *** - ILInstr* beginOriginalMethodInstr = reWriterWrapper.GetCurrentILInstr(); - pStateLeaveToBeginOriginalMethodInstr->m_pTarget = beginOriginalMethodInstr; - beginMethodCatchLeaveInstr->m_pTarget = beginOriginalMethodInstr; - - // *** - // ENDING OF THE METHOD EXECUTION - // *** - - // *** Create return instruction and insert it at the end - ILInstr* methodReturnInstr = rewriter.NewILInstr(); - methodReturnInstr->m_opcode = CEE_RET; - rewriter.InsertAfter(rewriter.GetILList()->m_pPrev, methodReturnInstr); - reWriterWrapper.SetILPosition(methodReturnInstr); - - // *** - // EXCEPTION CATCH - // *** - ILInstr* startExceptionCatch = reWriterWrapper.StLocal(exceptionIndex); - reWriterWrapper.SetILPosition(methodReturnInstr); - ILInstr* rethrowInstr = reWriterWrapper.Rethrow(); - - // *** - // EXCEPTION FINALLY / END METHOD PART - // *** - ILInstr* endMethodTryStartInstr; - - // *** Load instance into the stack (if not static) - if (isStatic) { - if (caller->type.valueType) { - // Static methods in a ValueType can't be instrumented. - // In the future this can be supported by adding a local for the valuetype - // and initialize it to the default value. After the signature - // modification we need to emit the following IL to initialize and load - // into the stack. - // ldloca.s [localIndex] - // initobj [valueType] - // ldloc.s [localIndex] - Warn( - "CallTarget_RewriterCallback: Static methods in a ValueType cannot " - "be instrumented. "); - return S_FALSE; - } - endMethodTryStartInstr = reWriterWrapper.LoadNull(); - } else { - endMethodTryStartInstr = reWriterWrapper.LoadArgument(0); - if (caller->type.valueType) { - if (caller->type.type_spec != mdTypeSpecNil) { - reWriterWrapper.LoadObj(caller->type.type_spec); - } else if (!caller->type.isGeneric) { - reWriterWrapper.LoadObj(caller->type.id); - } else { - // Generic struct instrumentation is not supported - // IMetaDataImport::GetMemberProps and IMetaDataImport::GetMemberRefProps returns - // The parent token as mdTypeDef and not as a mdTypeSpec - // that's because the method definition is stored in the mdTypeDef - // The problem is that we don't have the exact Spec of that generic - // We can't emit LoadObj or Box because that would result in an invalid IL. - // This problem doesn't occur on a class type because we can always relay in the - // object type. + ILInstr* beginCallInstruction; + hr = callTargetTokens->WriteBeginMethod(&reWriterWrapper, wrapper_type_ref, &caller->type, methodArguments, + &beginCallInstruction); + if (FAILED(hr)) + { + // Error message is written to the log in WriteBeginMethod. return S_FALSE; - } } - } + reWriterWrapper.StLocal(callTargetStateIndex); + ILInstr* pStateLeaveToBeginOriginalMethodInstr = reWriterWrapper.CreateInstr(CEE_LEAVE_S); + + // *** BeginMethod call catch + ILInstr* beginMethodCatchFirstInstr = nullptr; + callTargetTokens->WriteLogException(&reWriterWrapper, wrapper_type_ref, &caller->type, &beginMethodCatchFirstInstr); + ILInstr* beginMethodCatchLeaveInstr = reWriterWrapper.CreateInstr(CEE_LEAVE_S); + + // *** BeginMethod exception handling clause + EHClause beginMethodExClause{}; + beginMethodExClause.m_Flags = COR_ILEXCEPTION_CLAUSE_NONE; + beginMethodExClause.m_pTryBegin = firstInstruction; + beginMethodExClause.m_pTryEnd = beginMethodCatchFirstInstr; + beginMethodExClause.m_pHandlerBegin = beginMethodCatchFirstInstr; + beginMethodExClause.m_pHandlerEnd = beginMethodCatchLeaveInstr; + beginMethodExClause.m_ClassToken = callTargetTokens->GetExceptionTypeRef(); + + // *** + // METHOD EXECUTION + // *** + ILInstr* beginOriginalMethodInstr = reWriterWrapper.GetCurrentILInstr(); + pStateLeaveToBeginOriginalMethodInstr->m_pTarget = beginOriginalMethodInstr; + beginMethodCatchLeaveInstr->m_pTarget = beginOriginalMethodInstr; + + // *** + // ENDING OF THE METHOD EXECUTION + // *** + + // *** Create return instruction and insert it at the end + ILInstr* methodReturnInstr = rewriter.NewILInstr(); + methodReturnInstr->m_opcode = CEE_RET; + rewriter.InsertAfter(rewriter.GetILList()->m_pPrev, methodReturnInstr); + reWriterWrapper.SetILPosition(methodReturnInstr); + + // *** + // EXCEPTION CATCH + // *** + ILInstr* startExceptionCatch = reWriterWrapper.StLocal(exceptionIndex); + reWriterWrapper.SetILPosition(methodReturnInstr); + ILInstr* rethrowInstr = reWriterWrapper.Rethrow(); + + // *** + // EXCEPTION FINALLY / END METHOD PART + // *** + ILInstr* endMethodTryStartInstr; + + // *** Load instance into the stack (if not static) + if (isStatic) + { + if (caller->type.valueType) + { + // Static methods in a ValueType can't be instrumented. + // In the future this can be supported by adding a local for the valuetype + // and initialize it to the default value. After the signature + // modification we need to emit the following IL to initialize and load + // into the stack. + // ldloca.s [localIndex] + // initobj [valueType] + // ldloc.s [localIndex] + Warn("CallTarget_RewriterCallback: Static methods in a ValueType cannot " + "be instrumented. "); + return S_FALSE; + } + endMethodTryStartInstr = reWriterWrapper.LoadNull(); + } + else + { + endMethodTryStartInstr = reWriterWrapper.LoadArgument(0); + if (caller->type.valueType) + { + if (caller->type.type_spec != mdTypeSpecNil) + { + reWriterWrapper.LoadObj(caller->type.type_spec); + } + else if (!caller->type.isGeneric) + { + reWriterWrapper.LoadObj(caller->type.id); + } + else + { + // Generic struct instrumentation is not supported + // IMetaDataImport::GetMemberProps and IMetaDataImport::GetMemberRefProps returns + // The parent token as mdTypeDef and not as a mdTypeSpec + // that's because the method definition is stored in the mdTypeDef + // The problem is that we don't have the exact Spec of that generic + // We can't emit LoadObj or Box because that would result in an invalid IL. + // This problem doesn't occur on a class type because we can always relay in the + // object type. + return S_FALSE; + } + } + } - // *** Load the return value is is not void - if (!isVoid) { - reWriterWrapper.LoadLocal(returnValueIndex); - } + // *** Load the return value is is not void + if (!isVoid) + { + reWriterWrapper.LoadLocal(returnValueIndex); + } - reWriterWrapper.LoadLocal(exceptionIndex); - reWriterWrapper.LoadLocal(callTargetStateIndex); - - ILInstr* endMethodCallInstr; - if (isVoid) { - callTargetTokens->WriteEndVoidReturnMemberRef( - &reWriterWrapper, wrapper_type_ref, &caller->type, &endMethodCallInstr); - } else { - callTargetTokens->WriteEndReturnMemberRef(&reWriterWrapper, - wrapper_type_ref, &caller->type, - &retFuncArg, &endMethodCallInstr); - } - reWriterWrapper.StLocal(callTargetReturnIndex); + reWriterWrapper.LoadLocal(exceptionIndex); + reWriterWrapper.LoadLocal(callTargetStateIndex); - if (!isVoid) { - ILInstr* callTargetReturnGetReturnInstr; - reWriterWrapper.LoadLocalAddress(callTargetReturnIndex); - callTargetTokens->WriteCallTargetReturnGetReturnValue(&reWriterWrapper, callTargetReturnToken, &callTargetReturnGetReturnInstr); - reWriterWrapper.StLocal(returnValueIndex); - } + ILInstr* endMethodCallInstr; + if (isVoid) + { + callTargetTokens->WriteEndVoidReturnMemberRef(&reWriterWrapper, wrapper_type_ref, &caller->type, + &endMethodCallInstr); + } + else + { + callTargetTokens->WriteEndReturnMemberRef(&reWriterWrapper, wrapper_type_ref, &caller->type, &retFuncArg, + &endMethodCallInstr); + } + reWriterWrapper.StLocal(callTargetReturnIndex); + + if (!isVoid) + { + ILInstr* callTargetReturnGetReturnInstr; + reWriterWrapper.LoadLocalAddress(callTargetReturnIndex); + callTargetTokens->WriteCallTargetReturnGetReturnValue(&reWriterWrapper, callTargetReturnToken, + &callTargetReturnGetReturnInstr); + reWriterWrapper.StLocal(returnValueIndex); + } - ILInstr* endMethodTryLeave = reWriterWrapper.CreateInstr(CEE_LEAVE_S); - - // *** EndMethod call catch - ILInstr* endMethodCatchFirstInstr = nullptr; - callTargetTokens->WriteLogException(&reWriterWrapper, wrapper_type_ref, - &caller->type, &endMethodCatchFirstInstr); - ILInstr* endMethodCatchLeaveInstr = reWriterWrapper.CreateInstr(CEE_LEAVE_S); - - // *** EndMethod exception handling clause - EHClause endMethodExClause{}; - endMethodExClause.m_Flags = COR_ILEXCEPTION_CLAUSE_NONE; - endMethodExClause.m_pTryBegin = endMethodTryStartInstr; - endMethodExClause.m_pTryEnd = endMethodCatchFirstInstr; - endMethodExClause.m_pHandlerBegin = endMethodCatchFirstInstr; - endMethodExClause.m_pHandlerEnd = endMethodCatchLeaveInstr; - endMethodExClause.m_ClassToken = callTargetTokens->GetExceptionTypeRef(); - - // *** EndMethod leave to finally - ILInstr* endFinallyInstr = reWriterWrapper.EndFinally(); - endMethodTryLeave->m_pTarget = endFinallyInstr; - endMethodCatchLeaveInstr->m_pTarget = endFinallyInstr; - - // *** - // METHOD RETURN - // *** - - // Load the current return value from the local var - if (!isVoid) { - reWriterWrapper.LoadLocal(returnValueIndex); - } + ILInstr* endMethodTryLeave = reWriterWrapper.CreateInstr(CEE_LEAVE_S); + + // *** EndMethod call catch + ILInstr* endMethodCatchFirstInstr = nullptr; + callTargetTokens->WriteLogException(&reWriterWrapper, wrapper_type_ref, &caller->type, &endMethodCatchFirstInstr); + ILInstr* endMethodCatchLeaveInstr = reWriterWrapper.CreateInstr(CEE_LEAVE_S); + + // *** EndMethod exception handling clause + EHClause endMethodExClause{}; + endMethodExClause.m_Flags = COR_ILEXCEPTION_CLAUSE_NONE; + endMethodExClause.m_pTryBegin = endMethodTryStartInstr; + endMethodExClause.m_pTryEnd = endMethodCatchFirstInstr; + endMethodExClause.m_pHandlerBegin = endMethodCatchFirstInstr; + endMethodExClause.m_pHandlerEnd = endMethodCatchLeaveInstr; + endMethodExClause.m_ClassToken = callTargetTokens->GetExceptionTypeRef(); + + // *** EndMethod leave to finally + ILInstr* endFinallyInstr = reWriterWrapper.EndFinally(); + endMethodTryLeave->m_pTarget = endFinallyInstr; + endMethodCatchLeaveInstr->m_pTarget = endFinallyInstr; + + // *** + // METHOD RETURN + // *** + + // Load the current return value from the local var + if (!isVoid) + { + reWriterWrapper.LoadLocal(returnValueIndex); + } - // Changes all returns to a LEAVE.S - for (ILInstr* pInstr = rewriter.GetILList()->m_pNext; - pInstr != rewriter.GetILList(); pInstr = pInstr->m_pNext) { - switch (pInstr->m_opcode) { - case CEE_RET: { - if (pInstr != methodReturnInstr) { - if (!isVoid) { - reWriterWrapper.SetILPosition(pInstr); - reWriterWrapper.StLocal(returnValueIndex); - } - pInstr->m_opcode = CEE_LEAVE_S; - pInstr->m_pTarget = endFinallyInstr->m_pNext; - } - break; - } - default: - break; + // Changes all returns to a LEAVE.S + for (ILInstr* pInstr = rewriter.GetILList()->m_pNext; pInstr != rewriter.GetILList(); pInstr = pInstr->m_pNext) + { + switch (pInstr->m_opcode) + { + case CEE_RET: + { + if (pInstr != methodReturnInstr) + { + if (!isVoid) + { + reWriterWrapper.SetILPosition(pInstr); + reWriterWrapper.StLocal(returnValueIndex); + } + pInstr->m_opcode = CEE_LEAVE_S; + pInstr->m_pTarget = endFinallyInstr->m_pNext; + } + break; + } + default: + break; + } } - } - // Exception handling clauses - EHClause exClause{}; - exClause.m_Flags = COR_ILEXCEPTION_CLAUSE_NONE; - exClause.m_pTryBegin = firstInstruction; - exClause.m_pTryEnd = startExceptionCatch; - exClause.m_pHandlerBegin = startExceptionCatch; - exClause.m_pHandlerEnd = rethrowInstr; - exClause.m_ClassToken = callTargetTokens->GetExceptionTypeRef(); - - EHClause finallyClause{}; - finallyClause.m_Flags = COR_ILEXCEPTION_CLAUSE_FINALLY; - finallyClause.m_pTryBegin = firstInstruction; - finallyClause.m_pTryEnd = rethrowInstr->m_pNext; - finallyClause.m_pHandlerBegin = rethrowInstr->m_pNext; - finallyClause.m_pHandlerEnd = endFinallyInstr; - - // *** - // Update and Add exception clauses - // *** - auto ehCount = rewriter.GetEHCount(); - auto newEHClauses = new EHClause[ehCount + 4]; - for (unsigned i = 0; i < ehCount; i++) { - newEHClauses[i] = rewriter.GetEHPointer()[i]; - } + // Exception handling clauses + EHClause exClause{}; + exClause.m_Flags = COR_ILEXCEPTION_CLAUSE_NONE; + exClause.m_pTryBegin = firstInstruction; + exClause.m_pTryEnd = startExceptionCatch; + exClause.m_pHandlerBegin = startExceptionCatch; + exClause.m_pHandlerEnd = rethrowInstr; + exClause.m_ClassToken = callTargetTokens->GetExceptionTypeRef(); + + EHClause finallyClause{}; + finallyClause.m_Flags = COR_ILEXCEPTION_CLAUSE_FINALLY; + finallyClause.m_pTryBegin = firstInstruction; + finallyClause.m_pTryEnd = rethrowInstr->m_pNext; + finallyClause.m_pHandlerBegin = rethrowInstr->m_pNext; + finallyClause.m_pHandlerEnd = endFinallyInstr; + + // *** + // Update and Add exception clauses + // *** + auto ehCount = rewriter.GetEHCount(); + auto newEHClauses = new EHClause[ehCount + 4]; + for (unsigned i = 0; i < ehCount; i++) + { + newEHClauses[i] = rewriter.GetEHPointer()[i]; + } - // *** Add the new EH clauses - ehCount += 4; - newEHClauses[ehCount - 4] = beginMethodExClause; - newEHClauses[ehCount - 3] = endMethodExClause; - newEHClauses[ehCount - 2] = exClause; - newEHClauses[ehCount - 1] = finallyClause; - rewriter.SetEHClause(newEHClauses, ehCount); - - if (dump_il_rewrite_enabled) { - Info(original_code); - Info(GetILCodes("*** CallTarget_RewriterCallback(): Modified Code: ", - &rewriter, *caller, module_metadata)); - } + // *** Add the new EH clauses + ehCount += 4; + newEHClauses[ehCount - 4] = beginMethodExClause; + newEHClauses[ehCount - 3] = endMethodExClause; + newEHClauses[ehCount - 2] = exClause; + newEHClauses[ehCount - 1] = finallyClause; + rewriter.SetEHClause(newEHClauses, ehCount); + + if (dump_il_rewrite_enabled) + { + Info(original_code); + Info(GetILCodes("*** CallTarget_RewriterCallback(): Modified Code: ", &rewriter, *caller, module_metadata)); + } - hr = rewriter.Export(); + hr = rewriter.Export(); - if (FAILED(hr)) { - Warn( - "*** CallTarget_RewriterCallback(): Call to ILRewriter.Export() failed for " - "ModuleID=", - module_id, " ", function_token); - return S_FALSE; - } + if (FAILED(hr)) + { + Warn("*** CallTarget_RewriterCallback(): Call to ILRewriter.Export() failed for " + "ModuleID=", + module_id, " ", function_token); + return S_FALSE; + } - Info("*** CallTarget_RewriterCallback() Finished: ", caller->type.name, ".", - caller->name, "() [IsVoid=", isVoid, ", IsStatic=", isStatic, - ", IntegrationType=", method_replacement->wrapper_method.type_name, - ", Arguments=", numArgs, "]"); - return S_OK; + Info("*** CallTarget_RewriterCallback() Finished: ", caller->type.name, ".", caller->name, "() [IsVoid=", isVoid, + ", IsStatic=", isStatic, ", IntegrationType=", method_replacement->wrapper_method.type_name, + ", Arguments=", numArgs, "]"); + return S_OK; } -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/cor_profiler.h b/src/Datadog.Trace.ClrProfiler.Native/cor_profiler.h index 4582620097..f89a4acaee 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/cor_profiler.h +++ b/src/Datadog.Trace.ClrProfiler.Native/cor_profiler.h @@ -1,162 +1,140 @@ #ifndef DD_CLR_PROFILER_COR_PROFILER_H_ #define DD_CLR_PROFILER_COR_PROFILER_H_ +#include "cor.h" +#include "corprof.h" #include #include -#include #include #include -#include "cor.h" -#include "corprof.h" +#include #include "cor_profiler_base.h" #include "environment_variables.h" +#include "il_rewriter.h" #include "integration.h" #include "module_metadata.h" #include "pal.h" -#include "il_rewriter.h" #include "rejit_handler.h" -namespace trace { - -class CorProfiler : public CorProfilerBase { - private: - std::atomic_bool is_attached_ = {false}; - RuntimeInformation runtime_information_; - std::vector integration_methods_; - - // Startup helper variables - bool first_jit_compilation_completed = false; - - bool instrument_domain_neutral_assemblies = false; - bool corlib_module_loaded = false; - AppDomainID corlib_app_domain_id = 0; - bool managed_profiler_loaded_domain_neutral = false; - std::unordered_set managed_profiler_loaded_app_domains; - std::unordered_set first_jit_compilation_app_domains; - bool in_azure_app_services = false; - bool is_desktop_iis = false; - bool is_net46_or_greater = false; - - // - // CallTarget Members - // - RejitHandler* rejit_handler = nullptr; - - // Cor assembly properties - AssemblyProperty corAssemblyProperty{}; - - // - // OpCodes helper - // - std::vector opcodes_names; - - // - // Module helper variables - // - std::mutex module_id_to_info_map_lock_; - std::unordered_map module_id_to_info_map_; - - // - // Helper methods - // - bool GetWrapperMethodRef(ModuleMetadata* module_metadata, - ModuleID module_id, - const MethodReplacement& method_replacement, - mdMemberRef& wrapper_method_ref, - mdTypeRef& wrapper_type_ref); - HRESULT ProcessReplacementCalls(ModuleMetadata* module_metadata, - const FunctionID function_id, - const ModuleID module_id, - const mdToken function_token, - const FunctionInfo& caller, - const std::vector method_replacements); - HRESULT ProcessInsertionCalls(ModuleMetadata* module_metadata, - const FunctionID function_id, - const ModuleID module_id, - const mdToken function_token, - const FunctionInfo& caller, - const std::vector method_replacements); - bool ProfilerAssemblyIsLoadedIntoAppDomain(AppDomainID app_domain_id); - std::string GetILCodes(const std::string& title, ILRewriter* rewriter, - const FunctionInfo& caller, - ModuleMetadata* module_metadata); - // - // Startup methods - // - HRESULT RunILStartupHook(const ComPtr&, - const ModuleID module_id, - const mdToken function_token); - HRESULT GenerateVoidILStartupMethod(const ModuleID module_id, - mdMethodDef* ret_method_token); - HRESULT AddIISPreStartInitFlags(const ModuleID module_id, - const mdToken function_token); - - // - // CallTarget Methods - // - size_t CallTarget_RequestRejitForModule( - ModuleID module_id, ModuleMetadata* module_metadata, - const std::vector& filtered_integrations); - HRESULT CallTarget_RewriterCallback(RejitHandlerModule* moduleHandler, RejitHandlerModuleMethod* methodHandler); - - public: - CorProfiler() = default; - - bool IsAttached() const; - - void GetAssemblyAndSymbolsBytes(BYTE** pAssemblyArray, int* assemblySize, - BYTE** pSymbolsArray, int* symbolsSize) const; - - // - // ICorProfilerCallback methods - // - HRESULT STDMETHODCALLTYPE - Initialize(IUnknown* cor_profiler_info_unknown) override; - - HRESULT STDMETHODCALLTYPE AssemblyLoadFinished(AssemblyID assembly_id, - HRESULT hr_status) override; - - HRESULT STDMETHODCALLTYPE ModuleLoadFinished(ModuleID module_id, - HRESULT hr_status) override; - - HRESULT STDMETHODCALLTYPE ModuleUnloadStarted(ModuleID module_id) override; - - HRESULT STDMETHODCALLTYPE - JITCompilationStarted(FunctionID function_id, BOOL is_safe_to_block) override; - - HRESULT STDMETHODCALLTYPE Shutdown() override; - - HRESULT STDMETHODCALLTYPE ProfilerDetachSucceeded() override; - - HRESULT STDMETHODCALLTYPE JITInlining(FunctionID callerId, - FunctionID calleeId, - BOOL* pfShouldInline) override; - // - // ReJIT Methods - // - - HRESULT STDMETHODCALLTYPE ReJITCompilationStarted( - FunctionID functionId, ReJITID rejitId, BOOL fIsSafeToBlock) override; - - HRESULT STDMETHODCALLTYPE - GetReJITParameters(ModuleID moduleId, mdMethodDef methodId, - ICorProfilerFunctionControl* pFunctionControl) override; - - HRESULT STDMETHODCALLTYPE ReJITCompilationFinished( - FunctionID functionId, ReJITID rejitId, HRESULT hrStatus, - BOOL fIsSafeToBlock) override; - - HRESULT STDMETHODCALLTYPE ReJITError(ModuleID moduleId, mdMethodDef methodId, - FunctionID functionId, - HRESULT hrStatus) override; - - // - // ICorProfilerCallback6 methods - // - HRESULT STDMETHODCALLTYPE GetAssemblyReferences( - const WCHAR* wszAssemblyPath, - ICorProfilerAssemblyReferenceProvider* pAsmRefProvider) override; +namespace trace +{ + +class CorProfiler : public CorProfilerBase +{ +private: + std::atomic_bool is_attached_ = {false}; + RuntimeInformation runtime_information_; + std::vector integration_methods_; + + // Startup helper variables + bool first_jit_compilation_completed = false; + + bool instrument_domain_neutral_assemblies = false; + bool corlib_module_loaded = false; + AppDomainID corlib_app_domain_id = 0; + bool managed_profiler_loaded_domain_neutral = false; + std::unordered_set managed_profiler_loaded_app_domains; + std::unordered_set first_jit_compilation_app_domains; + bool in_azure_app_services = false; + bool is_desktop_iis = false; + bool is_net46_or_greater = false; + + // + // CallTarget Members + // + RejitHandler* rejit_handler = nullptr; + + // Cor assembly properties + AssemblyProperty corAssemblyProperty{}; + + // + // OpCodes helper + // + std::vector opcodes_names; + + // + // Module helper variables + // + std::mutex module_id_to_info_map_lock_; + std::unordered_map module_id_to_info_map_; + + // + // Helper methods + // + bool GetWrapperMethodRef(ModuleMetadata* module_metadata, ModuleID module_id, + const MethodReplacement& method_replacement, mdMemberRef& wrapper_method_ref, + mdTypeRef& wrapper_type_ref); + HRESULT ProcessReplacementCalls(ModuleMetadata* module_metadata, const FunctionID function_id, + const ModuleID module_id, const mdToken function_token, const FunctionInfo& caller, + const std::vector method_replacements); + HRESULT ProcessInsertionCalls(ModuleMetadata* module_metadata, const FunctionID function_id, + const ModuleID module_id, const mdToken function_token, const FunctionInfo& caller, + const std::vector method_replacements); + bool ProfilerAssemblyIsLoadedIntoAppDomain(AppDomainID app_domain_id); + std::string GetILCodes(const std::string& title, ILRewriter* rewriter, const FunctionInfo& caller, + ModuleMetadata* module_metadata); + // + // Startup methods + // + HRESULT RunILStartupHook(const ComPtr&, const ModuleID module_id, const mdToken function_token); + HRESULT GenerateVoidILStartupMethod(const ModuleID module_id, mdMethodDef* ret_method_token); + HRESULT AddIISPreStartInitFlags(const ModuleID module_id, const mdToken function_token); + + // + // CallTarget Methods + // + size_t CallTarget_RequestRejitForModule(ModuleID module_id, ModuleMetadata* module_metadata, + const std::vector& filtered_integrations); + HRESULT CallTarget_RewriterCallback(RejitHandlerModule* moduleHandler, RejitHandlerModuleMethod* methodHandler); + +public: + CorProfiler() = default; + + bool IsAttached() const; + + void GetAssemblyAndSymbolsBytes(BYTE** pAssemblyArray, int* assemblySize, BYTE** pSymbolsArray, + int* symbolsSize) const; + + // + // ICorProfilerCallback methods + // + HRESULT STDMETHODCALLTYPE Initialize(IUnknown* cor_profiler_info_unknown) override; + + HRESULT STDMETHODCALLTYPE AssemblyLoadFinished(AssemblyID assembly_id, HRESULT hr_status) override; + + HRESULT STDMETHODCALLTYPE ModuleLoadFinished(ModuleID module_id, HRESULT hr_status) override; + + HRESULT STDMETHODCALLTYPE ModuleUnloadStarted(ModuleID module_id) override; + + HRESULT STDMETHODCALLTYPE JITCompilationStarted(FunctionID function_id, BOOL is_safe_to_block) override; + + HRESULT STDMETHODCALLTYPE Shutdown() override; + + HRESULT STDMETHODCALLTYPE ProfilerDetachSucceeded() override; + + HRESULT STDMETHODCALLTYPE JITInlining(FunctionID callerId, FunctionID calleeId, BOOL* pfShouldInline) override; + // + // ReJIT Methods + // + + HRESULT STDMETHODCALLTYPE ReJITCompilationStarted(FunctionID functionId, ReJITID rejitId, + BOOL fIsSafeToBlock) override; + + HRESULT STDMETHODCALLTYPE GetReJITParameters(ModuleID moduleId, mdMethodDef methodId, + ICorProfilerFunctionControl* pFunctionControl) override; + + HRESULT STDMETHODCALLTYPE ReJITCompilationFinished(FunctionID functionId, ReJITID rejitId, HRESULT hrStatus, + BOOL fIsSafeToBlock) override; + + HRESULT STDMETHODCALLTYPE ReJITError(ModuleID moduleId, mdMethodDef methodId, FunctionID functionId, + HRESULT hrStatus) override; + + // + // ICorProfilerCallback6 methods + // + HRESULT STDMETHODCALLTYPE GetAssemblyReferences(const WCHAR* wszAssemblyPath, + ICorProfilerAssemblyReferenceProvider* pAsmRefProvider) override; }; // Note: Generally you should not have a single, global callback implementation, @@ -165,8 +143,8 @@ class CorProfiler : public CorProfilerBase { // alternative of dealing with multiple in-process side-by-side CLR instances. // First CLR to try to load us into this process wins; so there can only be one // callback implementation created. (See ProfilerCallback::CreateObject.) -extern CorProfiler* profiler; // global reference to callback object +extern CorProfiler* profiler; // global reference to callback object -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_COR_PROFILER_H_ +#endif // DD_CLR_PROFILER_COR_PROFILER_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/cor_profiler_base.cpp b/src/Datadog.Trace.ClrProfiler.Native/cor_profiler_base.cpp index ec2f9e76aa..47001ddfca 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/cor_profiler_base.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/cor_profiler_base.cpp @@ -1,494 +1,540 @@ #include "cor_profiler_base.h" #include "logging.h" -namespace trace { +namespace trace +{ -CorProfilerBase::CorProfilerBase() : ref_count_(0), info_(nullptr) {} +CorProfilerBase::CorProfilerBase() : ref_count_(0), info_(nullptr) +{ +} -CorProfilerBase::~CorProfilerBase() { - if (this->info_ != nullptr) { - this->info_->Release(); - this->info_ = nullptr; - } +CorProfilerBase::~CorProfilerBase() +{ + if (this->info_ != nullptr) + { + this->info_->Release(); + this->info_ = nullptr; + } } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::Initialize(IUnknown *pICorProfilerInfoUnk) { - Debug("Initialize"); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::Initialize(IUnknown* pICorProfilerInfoUnk) +{ + Debug("Initialize"); + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::Shutdown() { - Debug("Shutdown"); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::Shutdown() +{ + Debug("Shutdown"); + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::AppDomainCreationStarted(AppDomainID appDomainId) { - Debug("AppDomainCreationStarted: ", appDomainId); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::AppDomainCreationStarted(AppDomainID appDomainId) +{ + Debug("AppDomainCreationStarted: ", appDomainId); + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::AppDomainCreationFinished( - AppDomainID appDomainId, HRESULT hrStatus) { - Debug("AppDomainCreationFinished: ", appDomainId, " hrStatus=", hrStatus); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::AppDomainCreationFinished(AppDomainID appDomainId, HRESULT hrStatus) +{ + Debug("AppDomainCreationFinished: ", appDomainId, " hrStatus=", hrStatus); + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::AppDomainShutdownStarted(AppDomainID appDomainId) { - Debug("AppDomainShutdownStarted: ", appDomainId); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::AppDomainShutdownStarted(AppDomainID appDomainId) +{ + Debug("AppDomainShutdownStarted: ", appDomainId); + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::AppDomainShutdownFinished( - AppDomainID appDomainId, HRESULT hrStatus) { - Debug("AppDomainShutdownFinished: ", appDomainId, " ", hrStatus); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::AppDomainShutdownFinished(AppDomainID appDomainId, HRESULT hrStatus) +{ + Debug("AppDomainShutdownFinished: ", appDomainId, " ", hrStatus); + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::AssemblyLoadStarted(AssemblyID assemblyId) { - Debug("AssemblyLoadStarted: ", assemblyId); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::AssemblyLoadStarted(AssemblyID assemblyId) +{ + Debug("AssemblyLoadStarted: ", assemblyId); + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::AssemblyLoadFinished(AssemblyID assemblyId, HRESULT hrStatus) { - Debug("AssemblyLoadFinished: ", assemblyId, " ", hrStatus); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::AssemblyLoadFinished(AssemblyID assemblyId, HRESULT hrStatus) +{ + Debug("AssemblyLoadFinished: ", assemblyId, " ", hrStatus); + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::AssemblyUnloadStarted(AssemblyID assemblyId) { - Debug("AssemblyUnloadStarted: ", assemblyId); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::AssemblyUnloadStarted(AssemblyID assemblyId) +{ + Debug("AssemblyUnloadStarted: ", assemblyId); + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::AssemblyUnloadFinished( - AssemblyID assemblyId, HRESULT hrStatus) { - Debug("AssemblyUnloadFinished: ", assemblyId, " ", hrStatus); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::AssemblyUnloadFinished(AssemblyID assemblyId, HRESULT hrStatus) +{ + Debug("AssemblyUnloadFinished: ", assemblyId, " ", hrStatus); + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ModuleLoadStarted(ModuleID moduleId) { - Debug("ModuleLoadStarted: ", moduleId); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ModuleLoadStarted(ModuleID moduleId) +{ + Debug("ModuleLoadStarted: ", moduleId); + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ModuleLoadFinished(ModuleID moduleId, HRESULT hrStatus) { - Debug("ModuleLoadFinished: ", moduleId, " ", hrStatus); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ModuleLoadFinished(ModuleID moduleId, HRESULT hrStatus) +{ + Debug("ModuleLoadFinished: ", moduleId, " ", hrStatus); + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ModuleUnloadStarted(ModuleID moduleId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ModuleUnloadStarted(ModuleID moduleId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ModuleUnloadFinished(ModuleID moduleId, HRESULT hrStatus) { - Debug("ModuleUnloadFinished: ", moduleId, " ", hrStatus); - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ModuleUnloadFinished(ModuleID moduleId, HRESULT hrStatus) +{ + Debug("ModuleUnloadFinished: ", moduleId, " ", hrStatus); + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ModuleAttachedToAssembly( - ModuleID moduleId, AssemblyID AssemblyId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ModuleAttachedToAssembly(ModuleID moduleId, AssemblyID AssemblyId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ClassLoadStarted(ClassID classId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ClassLoadStarted(ClassID classId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ClassLoadFinished(ClassID classId, - HRESULT hrStatus) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ClassLoadFinished(ClassID classId, HRESULT hrStatus) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ClassUnloadStarted(ClassID classId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ClassUnloadStarted(ClassID classId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ClassUnloadFinished(ClassID classId, HRESULT hrStatus) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ClassUnloadFinished(ClassID classId, HRESULT hrStatus) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::FunctionUnloadStarted(FunctionID functionId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::FunctionUnloadStarted(FunctionID functionId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::JITCompilationStarted( - FunctionID functionId, BOOL fIsSafeToBlock) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::JITCompilationStarted(FunctionID functionId, BOOL fIsSafeToBlock) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::JITCompilationFinished( - FunctionID functionId, HRESULT hrStatus, BOOL fIsSafeToBlock) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::JITCompilationFinished(FunctionID functionId, HRESULT hrStatus, + BOOL fIsSafeToBlock) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::JITCachedFunctionSearchStarted( - FunctionID functionId, BOOL *pbUseCachedFunction) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::JITCachedFunctionSearchStarted(FunctionID functionId, + BOOL* pbUseCachedFunction) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::JITCachedFunctionSearchFinished( - FunctionID functionId, COR_PRF_JIT_CACHE result) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::JITCachedFunctionSearchFinished(FunctionID functionId, + COR_PRF_JIT_CACHE result) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::JITFunctionPitched(FunctionID functionId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::JITFunctionPitched(FunctionID functionId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::JITInlining(FunctionID callerId, - FunctionID calleeId, - BOOL *pfShouldInline) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::JITInlining(FunctionID callerId, FunctionID calleeId, BOOL* pfShouldInline) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ThreadCreated(ThreadID threadId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ThreadCreated(ThreadID threadId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ThreadDestroyed(ThreadID threadId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ThreadDestroyed(ThreadID threadId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ThreadAssignedToOSThread( - ThreadID managedThreadId, DWORD osThreadId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ThreadAssignedToOSThread(ThreadID managedThreadId, DWORD osThreadId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingClientInvocationStarted() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingClientInvocationStarted() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::RemotingClientSendingMessage(GUID *pCookie, BOOL fIsAsync) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingClientSendingMessage(GUID* pCookie, BOOL fIsAsync) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::RemotingClientReceivingReply(GUID *pCookie, BOOL fIsAsync) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingClientReceivingReply(GUID* pCookie, BOOL fIsAsync) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingClientInvocationFinished() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingClientInvocationFinished() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::RemotingServerReceivingMessage(GUID *pCookie, BOOL fIsAsync) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingServerReceivingMessage(GUID* pCookie, BOOL fIsAsync) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingServerInvocationStarted() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingServerInvocationStarted() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingServerInvocationReturned() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingServerInvocationReturned() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::RemotingServerSendingReply(GUID *pCookie, BOOL fIsAsync) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RemotingServerSendingReply(GUID* pCookie, BOOL fIsAsync) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::UnmanagedToManagedTransition( - FunctionID functionId, COR_PRF_TRANSITION_REASON reason) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::UnmanagedToManagedTransition(FunctionID functionId, + COR_PRF_TRANSITION_REASON reason) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ManagedToUnmanagedTransition( - FunctionID functionId, COR_PRF_TRANSITION_REASON reason) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ManagedToUnmanagedTransition(FunctionID functionId, + COR_PRF_TRANSITION_REASON reason) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::RuntimeSuspendStarted(COR_PRF_SUSPEND_REASON suspendReason) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeSuspendStarted(COR_PRF_SUSPEND_REASON suspendReason) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeSuspendFinished() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeSuspendFinished() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeSuspendAborted() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeSuspendAborted() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeResumeStarted() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeResumeStarted() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeResumeFinished() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeResumeFinished() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::RuntimeThreadSuspended(ThreadID threadId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeThreadSuspended(ThreadID threadId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::RuntimeThreadResumed(ThreadID threadId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RuntimeThreadResumed(ThreadID threadId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::MovedReferences( - ULONG cMovedObjectIDRanges, ObjectID oldObjectIDRangeStart[], - ObjectID newObjectIDRangeStart[], ULONG cObjectIDRangeLength[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::MovedReferences(ULONG cMovedObjectIDRanges, ObjectID oldObjectIDRangeStart[], + ObjectID newObjectIDRangeStart[], + ULONG cObjectIDRangeLength[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ObjectAllocated(ObjectID objectId, - ClassID classId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ObjectAllocated(ObjectID objectId, ClassID classId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ObjectsAllocatedByClass( - ULONG cClassCount, ClassID classIds[], ULONG cObjects[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ObjectsAllocatedByClass(ULONG cClassCount, ClassID classIds[], + ULONG cObjects[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ObjectReferences(ObjectID objectId, ClassID classId, - ULONG cObjectRefs, ObjectID objectRefIds[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ObjectReferences(ObjectID objectId, ClassID classId, ULONG cObjectRefs, + ObjectID objectRefIds[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::RootReferences(ULONG cRootRefs, ObjectID rootRefIds[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RootReferences(ULONG cRootRefs, ObjectID rootRefIds[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ExceptionThrown(ObjectID thrownObjectId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionThrown(ObjectID thrownObjectId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ExceptionSearchFunctionEnter(FunctionID functionId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionSearchFunctionEnter(FunctionID functionId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionSearchFunctionLeave() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionSearchFunctionLeave() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ExceptionSearchFilterEnter(FunctionID functionId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionSearchFilterEnter(FunctionID functionId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionSearchFilterLeave() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionSearchFilterLeave() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ExceptionSearchCatcherFound(FunctionID functionId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionSearchCatcherFound(FunctionID functionId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ExceptionOSHandlerEnter(UINT_PTR __unused) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionOSHandlerEnter(UINT_PTR __unused) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ExceptionOSHandlerLeave(UINT_PTR __unused) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionOSHandlerLeave(UINT_PTR __unused) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ExceptionUnwindFunctionEnter(FunctionID functionId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionUnwindFunctionEnter(FunctionID functionId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionUnwindFunctionLeave() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionUnwindFunctionLeave() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ExceptionUnwindFinallyEnter(FunctionID functionId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionUnwindFinallyEnter(FunctionID functionId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionUnwindFinallyLeave() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionUnwindFinallyLeave() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionCatcherEnter( - FunctionID functionId, ObjectID objectId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionCatcherEnter(FunctionID functionId, ObjectID objectId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionCatcherLeave() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionCatcherLeave() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::COMClassicVTableCreated( - ClassID wrappedClassId, REFGUID implementedIID, void *pVTable, - ULONG cSlots) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::COMClassicVTableCreated(ClassID wrappedClassId, REFGUID implementedIID, + void* pVTable, ULONG cSlots) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::COMClassicVTableDestroyed( - ClassID wrappedClassId, REFGUID implementedIID, void *pVTable) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::COMClassicVTableDestroyed(ClassID wrappedClassId, REFGUID implementedIID, + void* pVTable) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionCLRCatcherFound() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionCLRCatcherFound() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionCLRCatcherExecute() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ExceptionCLRCatcherExecute() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ThreadNameChanged(ThreadID threadId, - ULONG cchName, - WCHAR name[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ThreadNameChanged(ThreadID threadId, ULONG cchName, WCHAR name[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::GarbageCollectionStarted( - int cGenerations, BOOL generationCollected[], COR_PRF_GC_REASON reason) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::GarbageCollectionStarted(int cGenerations, BOOL generationCollected[], + COR_PRF_GC_REASON reason) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::SurvivingReferences( - ULONG cSurvivingObjectIDRanges, ObjectID objectIDRangeStart[], - ULONG cObjectIDRangeLength[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::SurvivingReferences(ULONG cSurvivingObjectIDRanges, + ObjectID objectIDRangeStart[], + ULONG cObjectIDRangeLength[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::GarbageCollectionFinished() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::GarbageCollectionFinished() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::FinalizeableObjectQueued( - DWORD finalizerFlags, ObjectID objectID) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::FinalizeableObjectQueued(DWORD finalizerFlags, ObjectID objectID) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::RootReferences2( - ULONG cRootRefs, ObjectID rootRefIds[], COR_PRF_GC_ROOT_KIND rootKinds[], - COR_PRF_GC_ROOT_FLAGS rootFlags[], UINT_PTR rootIds[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::RootReferences2(ULONG cRootRefs, ObjectID rootRefIds[], + COR_PRF_GC_ROOT_KIND rootKinds[], + COR_PRF_GC_ROOT_FLAGS rootFlags[], UINT_PTR rootIds[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::HandleCreated(GCHandleID handleId, ObjectID initialObjectId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::HandleCreated(GCHandleID handleId, ObjectID initialObjectId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::HandleDestroyed(GCHandleID handleId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::HandleDestroyed(GCHandleID handleId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::InitializeForAttach( - IUnknown *pCorProfilerInfoUnk, void *pvClientData, UINT cbClientData) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::InitializeForAttach(IUnknown* pCorProfilerInfoUnk, void* pvClientData, + UINT cbClientData) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ProfilerAttachComplete() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ProfilerAttachComplete() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ProfilerDetachSucceeded() { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ProfilerDetachSucceeded() +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ReJITCompilationStarted( - FunctionID functionId, ReJITID rejitId, BOOL fIsSafeToBlock) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ReJITCompilationStarted(FunctionID functionId, ReJITID rejitId, + BOOL fIsSafeToBlock) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::GetReJITParameters( - ModuleID moduleId, mdMethodDef methodId, - ICorProfilerFunctionControl *pFunctionControl) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::GetReJITParameters(ModuleID moduleId, mdMethodDef methodId, + ICorProfilerFunctionControl* pFunctionControl) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ReJITCompilationFinished( - FunctionID functionId, ReJITID rejitId, HRESULT hrStatus, - BOOL fIsSafeToBlock) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ReJITCompilationFinished(FunctionID functionId, ReJITID rejitId, + HRESULT hrStatus, BOOL fIsSafeToBlock) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::ReJITError(ModuleID moduleId, - mdMethodDef methodId, - FunctionID functionId, - HRESULT hrStatus) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ReJITError(ModuleID moduleId, mdMethodDef methodId, FunctionID functionId, + HRESULT hrStatus) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::MovedReferences2( - ULONG cMovedObjectIDRanges, ObjectID oldObjectIDRangeStart[], - ObjectID newObjectIDRangeStart[], SIZE_T cObjectIDRangeLength[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::MovedReferences2(ULONG cMovedObjectIDRanges, + ObjectID oldObjectIDRangeStart[], + ObjectID newObjectIDRangeStart[], + SIZE_T cObjectIDRangeLength[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::SurvivingReferences2( - ULONG cSurvivingObjectIDRanges, ObjectID objectIDRangeStart[], - SIZE_T cObjectIDRangeLength[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::SurvivingReferences2(ULONG cSurvivingObjectIDRanges, + ObjectID objectIDRangeStart[], + SIZE_T cObjectIDRangeLength[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ConditionalWeakTableElementReferences(ULONG cRootRefs, - ObjectID keyRefIds[], - ObjectID valueRefIds[], - GCHandleID rootIds[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ConditionalWeakTableElementReferences(ULONG cRootRefs, ObjectID keyRefIds[], + ObjectID valueRefIds[], + GCHandleID rootIds[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::GetAssemblyReferences( - const WCHAR *wszAssemblyPath, - ICorProfilerAssemblyReferenceProvider *pAsmRefProvider) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::GetAssemblyReferences(const WCHAR* wszAssemblyPath, + ICorProfilerAssemblyReferenceProvider* pAsmRefProvider) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE -CorProfilerBase::ModuleInMemorySymbolsUpdated(ModuleID moduleId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::ModuleInMemorySymbolsUpdated(ModuleID moduleId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::DynamicMethodJITCompilationStarted( - FunctionID functionId, BOOL fIsSafeToBlock, LPCBYTE ilHeader, - ULONG cbILHeader) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::DynamicMethodJITCompilationStarted(FunctionID functionId, + BOOL fIsSafeToBlock, LPCBYTE ilHeader, + ULONG cbILHeader) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::DynamicMethodJITCompilationFinished( - FunctionID functionId, HRESULT hrStatus, BOOL fIsSafeToBlock) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::DynamicMethodJITCompilationFinished(FunctionID functionId, HRESULT hrStatus, + BOOL fIsSafeToBlock) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::DynamicMethodUnloaded(FunctionID functionId) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::DynamicMethodUnloaded(FunctionID functionId) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::EventPipeEventDelivered( - EVENTPIPE_PROVIDER provider, DWORD eventId, DWORD eventVersion, - ULONG cbMetadataBlob, LPCBYTE metadataBlob, ULONG cbEventData, - LPCBYTE eventData, LPCGUID pActivityId, LPCGUID pRelatedActivityId, - ThreadID eventThread, ULONG numStackFrames, UINT_PTR stackFrames[]) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::EventPipeEventDelivered(EVENTPIPE_PROVIDER provider, DWORD eventId, + DWORD eventVersion, ULONG cbMetadataBlob, + LPCBYTE metadataBlob, ULONG cbEventData, + LPCBYTE eventData, LPCGUID pActivityId, + LPCGUID pRelatedActivityId, ThreadID eventThread, + ULONG numStackFrames, UINT_PTR stackFrames[]) +{ + return S_OK; } -HRESULT STDMETHODCALLTYPE CorProfilerBase::EventPipeProviderCreated(EVENTPIPE_PROVIDER provider) { - return S_OK; +HRESULT STDMETHODCALLTYPE CorProfilerBase::EventPipeProviderCreated(EVENTPIPE_PROVIDER provider) +{ + return S_OK; } -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/cor_profiler_base.h b/src/Datadog.Trace.ClrProfiler.Native/cor_profiler_base.h index c48fa4972e..11d54cd30e 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/cor_profiler_base.h +++ b/src/Datadog.Trace.ClrProfiler.Native/cor_profiler_base.h @@ -1,261 +1,204 @@ #ifndef DD_CLR_PROFILER_COR_PROFILER_BASE_H_ #define DD_CLR_PROFILER_COR_PROFILER_BASE_H_ +#include #include #include -#include - -namespace trace { - -class CorProfilerBase : public ICorProfilerCallback10 { - private: - std::atomic ref_count_; - - protected: - ICorProfilerInfo4* info_; - - public: - CorProfilerBase(); - virtual ~CorProfilerBase(); - - HRESULT STDMETHODCALLTYPE Initialize(IUnknown* pICorProfilerInfoUnk) override; - HRESULT STDMETHODCALLTYPE Shutdown() override; - HRESULT STDMETHODCALLTYPE - AppDomainCreationStarted(AppDomainID appDomainId) override; - HRESULT STDMETHODCALLTYPE - AppDomainCreationFinished(AppDomainID appDomainId, HRESULT hrStatus) override; - HRESULT STDMETHODCALLTYPE - AppDomainShutdownStarted(AppDomainID appDomainId) override; - HRESULT STDMETHODCALLTYPE - AppDomainShutdownFinished(AppDomainID appDomainId, HRESULT hrStatus) override; - HRESULT STDMETHODCALLTYPE AssemblyLoadStarted(AssemblyID assemblyId) override; - HRESULT STDMETHODCALLTYPE AssemblyLoadFinished(AssemblyID assemblyId, - HRESULT hrStatus) override; - HRESULT STDMETHODCALLTYPE - AssemblyUnloadStarted(AssemblyID assemblyId) override; - HRESULT STDMETHODCALLTYPE AssemblyUnloadFinished(AssemblyID assemblyId, - HRESULT hrStatus) override; - HRESULT STDMETHODCALLTYPE ModuleLoadStarted(ModuleID moduleId) override; - HRESULT STDMETHODCALLTYPE ModuleLoadFinished(ModuleID moduleId, - HRESULT hrStatus) override; - HRESULT STDMETHODCALLTYPE ModuleUnloadStarted(ModuleID moduleId) override; - HRESULT STDMETHODCALLTYPE ModuleUnloadFinished(ModuleID moduleId, - HRESULT hrStatus) override; - HRESULT STDMETHODCALLTYPE - ModuleAttachedToAssembly(ModuleID moduleId, AssemblyID AssemblyId) override; - HRESULT STDMETHODCALLTYPE ClassLoadStarted(ClassID classId) override; - HRESULT STDMETHODCALLTYPE ClassLoadFinished(ClassID classId, - HRESULT hrStatus) override; - HRESULT STDMETHODCALLTYPE ClassUnloadStarted(ClassID classId) override; - HRESULT STDMETHODCALLTYPE ClassUnloadFinished(ClassID classId, - HRESULT hrStatus) override; - HRESULT STDMETHODCALLTYPE - FunctionUnloadStarted(FunctionID functionId) override; - HRESULT STDMETHODCALLTYPE JITCompilationStarted(FunctionID functionId, - BOOL fIsSafeToBlock) override; - HRESULT STDMETHODCALLTYPE JITCompilationFinished( - FunctionID functionId, HRESULT hrStatus, BOOL fIsSafeToBlock) override; - HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchStarted( - FunctionID functionId, BOOL* pbUseCachedFunction) override; - HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchFinished( - FunctionID functionId, COR_PRF_JIT_CACHE result) override; - HRESULT STDMETHODCALLTYPE JITFunctionPitched(FunctionID functionId) override; - HRESULT STDMETHODCALLTYPE JITInlining(FunctionID callerId, - FunctionID calleeId, - BOOL* pfShouldInline) override; - HRESULT STDMETHODCALLTYPE ThreadCreated(ThreadID threadId) override; - HRESULT STDMETHODCALLTYPE ThreadDestroyed(ThreadID threadId) override; - HRESULT STDMETHODCALLTYPE ThreadAssignedToOSThread(ThreadID managedThreadId, - DWORD osThreadId) override; - HRESULT STDMETHODCALLTYPE RemotingClientInvocationStarted() override; - HRESULT STDMETHODCALLTYPE - RemotingClientSendingMessage(GUID* pCookie, BOOL fIsAsync) override; - HRESULT STDMETHODCALLTYPE - RemotingClientReceivingReply(GUID* pCookie, BOOL fIsAsync) override; - HRESULT STDMETHODCALLTYPE RemotingClientInvocationFinished() override; - HRESULT STDMETHODCALLTYPE - RemotingServerReceivingMessage(GUID* pCookie, BOOL fIsAsync) override; - HRESULT STDMETHODCALLTYPE RemotingServerInvocationStarted() override; - HRESULT STDMETHODCALLTYPE RemotingServerInvocationReturned() override; - HRESULT STDMETHODCALLTYPE RemotingServerSendingReply(GUID* pCookie, - BOOL fIsAsync) override; - HRESULT STDMETHODCALLTYPE UnmanagedToManagedTransition( - FunctionID functionId, COR_PRF_TRANSITION_REASON reason) override; - HRESULT STDMETHODCALLTYPE ManagedToUnmanagedTransition( - FunctionID functionId, COR_PRF_TRANSITION_REASON reason) override; - HRESULT STDMETHODCALLTYPE - RuntimeSuspendStarted(COR_PRF_SUSPEND_REASON suspendReason) override; - HRESULT STDMETHODCALLTYPE RuntimeSuspendFinished() override; - HRESULT STDMETHODCALLTYPE RuntimeSuspendAborted() override; - HRESULT STDMETHODCALLTYPE RuntimeResumeStarted() override; - HRESULT STDMETHODCALLTYPE RuntimeResumeFinished() override; - HRESULT STDMETHODCALLTYPE RuntimeThreadSuspended(ThreadID threadId) override; - HRESULT STDMETHODCALLTYPE RuntimeThreadResumed(ThreadID threadId) override; - HRESULT STDMETHODCALLTYPE MovedReferences( - ULONG cMovedObjectIDRanges, ObjectID oldObjectIDRangeStart[], - ObjectID newObjectIDRangeStart[], ULONG cObjectIDRangeLength[]) override; - HRESULT STDMETHODCALLTYPE ObjectAllocated(ObjectID objectId, - ClassID classId) override; - HRESULT STDMETHODCALLTYPE ObjectsAllocatedByClass(ULONG cClassCount, - ClassID classIds[], - ULONG cObjects[]) override; - HRESULT STDMETHODCALLTYPE ObjectReferences(ObjectID objectId, ClassID classId, - ULONG cObjectRefs, - ObjectID objectRefIds[]) override; - HRESULT STDMETHODCALLTYPE RootReferences(ULONG cRootRefs, - ObjectID rootRefIds[]) override; - HRESULT STDMETHODCALLTYPE ExceptionThrown(ObjectID thrownObjectId) override; - HRESULT STDMETHODCALLTYPE - ExceptionSearchFunctionEnter(FunctionID functionId) override; - HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionLeave() override; - HRESULT STDMETHODCALLTYPE - ExceptionSearchFilterEnter(FunctionID functionId) override; - HRESULT STDMETHODCALLTYPE ExceptionSearchFilterLeave() override; - HRESULT STDMETHODCALLTYPE - ExceptionSearchCatcherFound(FunctionID functionId) override; - HRESULT STDMETHODCALLTYPE ExceptionOSHandlerEnter(UINT_PTR __unused) override; - HRESULT STDMETHODCALLTYPE ExceptionOSHandlerLeave(UINT_PTR __unused) override; - HRESULT STDMETHODCALLTYPE - ExceptionUnwindFunctionEnter(FunctionID functionId) override; - HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionLeave() override; - HRESULT STDMETHODCALLTYPE - ExceptionUnwindFinallyEnter(FunctionID functionId) override; - HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyLeave() override; - HRESULT STDMETHODCALLTYPE ExceptionCatcherEnter(FunctionID functionId, - ObjectID objectId) override; - HRESULT STDMETHODCALLTYPE ExceptionCatcherLeave() override; - HRESULT STDMETHODCALLTYPE COMClassicVTableCreated(ClassID wrappedClassId, - REFGUID implementedIID, - void* pVTable, - ULONG cSlots) override; - HRESULT STDMETHODCALLTYPE COMClassicVTableDestroyed(ClassID wrappedClassId, - REFGUID implementedIID, - void* pVTable) override; - HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherFound() override; - HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherExecute() override; - HRESULT STDMETHODCALLTYPE ThreadNameChanged(ThreadID threadId, ULONG cchName, - WCHAR name[]) override; - HRESULT STDMETHODCALLTYPE - GarbageCollectionStarted(int cGenerations, BOOL generationCollected[], - COR_PRF_GC_REASON reason) override; - HRESULT STDMETHODCALLTYPE SurvivingReferences( - ULONG cSurvivingObjectIDRanges, ObjectID objectIDRangeStart[], - ULONG cObjectIDRangeLength[]) override; - HRESULT STDMETHODCALLTYPE GarbageCollectionFinished() override; - HRESULT STDMETHODCALLTYPE - FinalizeableObjectQueued(DWORD finalizerFlags, ObjectID objectID) override; - HRESULT STDMETHODCALLTYPE RootReferences2(ULONG cRootRefs, - ObjectID rootRefIds[], - COR_PRF_GC_ROOT_KIND rootKinds[], - COR_PRF_GC_ROOT_FLAGS rootFlags[], - UINT_PTR rootIds[]) override; - HRESULT STDMETHODCALLTYPE HandleCreated(GCHandleID handleId, - ObjectID initialObjectId) override; - HRESULT STDMETHODCALLTYPE HandleDestroyed(GCHandleID handleId) override; - HRESULT STDMETHODCALLTYPE InitializeForAttach(IUnknown* pCorProfilerInfoUnk, - void* pvClientData, - UINT cbClientData) override; - HRESULT STDMETHODCALLTYPE ProfilerAttachComplete() override; - HRESULT STDMETHODCALLTYPE ProfilerDetachSucceeded() override; - HRESULT STDMETHODCALLTYPE ReJITCompilationStarted( - FunctionID functionId, ReJITID rejitId, BOOL fIsSafeToBlock) override; - HRESULT STDMETHODCALLTYPE - GetReJITParameters(ModuleID moduleId, mdMethodDef methodId, - ICorProfilerFunctionControl* pFunctionControl) override; - HRESULT STDMETHODCALLTYPE - ReJITCompilationFinished(FunctionID functionId, ReJITID rejitId, - HRESULT hrStatus, BOOL fIsSafeToBlock) override; - HRESULT STDMETHODCALLTYPE ReJITError(ModuleID moduleId, mdMethodDef methodId, - FunctionID functionId, - HRESULT hrStatus) override; - HRESULT STDMETHODCALLTYPE MovedReferences2( - ULONG cMovedObjectIDRanges, ObjectID oldObjectIDRangeStart[], - ObjectID newObjectIDRangeStart[], SIZE_T cObjectIDRangeLength[]) override; - HRESULT STDMETHODCALLTYPE SurvivingReferences2( - ULONG cSurvivingObjectIDRanges, ObjectID objectIDRangeStart[], - SIZE_T cObjectIDRangeLength[]) override; - HRESULT STDMETHODCALLTYPE ConditionalWeakTableElementReferences( - ULONG cRootRefs, ObjectID keyRefIds[], ObjectID valueRefIds[], - GCHandleID rootIds[]) override; - HRESULT STDMETHODCALLTYPE GetAssemblyReferences( - const WCHAR* wszAssemblyPath, - ICorProfilerAssemblyReferenceProvider* pAsmRefProvider) override; - HRESULT STDMETHODCALLTYPE - ModuleInMemorySymbolsUpdated(ModuleID moduleId) override; - - HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationStarted( - FunctionID functionId, BOOL fIsSafeToBlock, LPCBYTE ilHeader, - ULONG cbILHeader) override; - HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationFinished( - FunctionID functionId, HRESULT hrStatus, BOOL fIsSafeToBlock) override; - - HRESULT STDMETHODCALLTYPE DynamicMethodUnloaded(FunctionID functionId) override; - HRESULT STDMETHODCALLTYPE EventPipeEventDelivered( - EVENTPIPE_PROVIDER provider, DWORD eventId, DWORD eventVersion, - ULONG cbMetadataBlob, LPCBYTE metadataBlob, ULONG cbEventData, - LPCBYTE eventData, LPCGUID pActivityId, LPCGUID pRelatedActivityId, - ThreadID eventThread, ULONG numStackFrames, - UINT_PTR stackFrames[]) override; - - HRESULT STDMETHODCALLTYPE EventPipeProviderCreated(EVENTPIPE_PROVIDER provider) override; - - HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, - void** ppvObject) override { - if (riid == __uuidof(ICorProfilerCallback10) || - riid == __uuidof(ICorProfilerCallback9) || - riid == __uuidof(ICorProfilerCallback8) || - riid == __uuidof(ICorProfilerCallback7) || - riid == __uuidof(ICorProfilerCallback6) || - riid == __uuidof(ICorProfilerCallback5) || - riid == __uuidof(ICorProfilerCallback4) || - riid == __uuidof(ICorProfilerCallback3) || - riid == __uuidof(ICorProfilerCallback2) || - riid == __uuidof(ICorProfilerCallback) || - riid == IID_IUnknown) { - *ppvObject = this; - this->AddRef(); - return S_OK; +namespace trace +{ + +class CorProfilerBase : public ICorProfilerCallback10 +{ +private: + std::atomic ref_count_; + +protected: + ICorProfilerInfo4* info_; + +public: + CorProfilerBase(); + virtual ~CorProfilerBase(); + + HRESULT STDMETHODCALLTYPE Initialize(IUnknown* pICorProfilerInfoUnk) override; + HRESULT STDMETHODCALLTYPE Shutdown() override; + HRESULT STDMETHODCALLTYPE AppDomainCreationStarted(AppDomainID appDomainId) override; + HRESULT STDMETHODCALLTYPE AppDomainCreationFinished(AppDomainID appDomainId, HRESULT hrStatus) override; + HRESULT STDMETHODCALLTYPE AppDomainShutdownStarted(AppDomainID appDomainId) override; + HRESULT STDMETHODCALLTYPE AppDomainShutdownFinished(AppDomainID appDomainId, HRESULT hrStatus) override; + HRESULT STDMETHODCALLTYPE AssemblyLoadStarted(AssemblyID assemblyId) override; + HRESULT STDMETHODCALLTYPE AssemblyLoadFinished(AssemblyID assemblyId, HRESULT hrStatus) override; + HRESULT STDMETHODCALLTYPE AssemblyUnloadStarted(AssemblyID assemblyId) override; + HRESULT STDMETHODCALLTYPE AssemblyUnloadFinished(AssemblyID assemblyId, HRESULT hrStatus) override; + HRESULT STDMETHODCALLTYPE ModuleLoadStarted(ModuleID moduleId) override; + HRESULT STDMETHODCALLTYPE ModuleLoadFinished(ModuleID moduleId, HRESULT hrStatus) override; + HRESULT STDMETHODCALLTYPE ModuleUnloadStarted(ModuleID moduleId) override; + HRESULT STDMETHODCALLTYPE ModuleUnloadFinished(ModuleID moduleId, HRESULT hrStatus) override; + HRESULT STDMETHODCALLTYPE ModuleAttachedToAssembly(ModuleID moduleId, AssemblyID AssemblyId) override; + HRESULT STDMETHODCALLTYPE ClassLoadStarted(ClassID classId) override; + HRESULT STDMETHODCALLTYPE ClassLoadFinished(ClassID classId, HRESULT hrStatus) override; + HRESULT STDMETHODCALLTYPE ClassUnloadStarted(ClassID classId) override; + HRESULT STDMETHODCALLTYPE ClassUnloadFinished(ClassID classId, HRESULT hrStatus) override; + HRESULT STDMETHODCALLTYPE FunctionUnloadStarted(FunctionID functionId) override; + HRESULT STDMETHODCALLTYPE JITCompilationStarted(FunctionID functionId, BOOL fIsSafeToBlock) override; + HRESULT STDMETHODCALLTYPE JITCompilationFinished(FunctionID functionId, HRESULT hrStatus, + BOOL fIsSafeToBlock) override; + HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchStarted(FunctionID functionId, BOOL* pbUseCachedFunction) override; + HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchFinished(FunctionID functionId, COR_PRF_JIT_CACHE result) override; + HRESULT STDMETHODCALLTYPE JITFunctionPitched(FunctionID functionId) override; + HRESULT STDMETHODCALLTYPE JITInlining(FunctionID callerId, FunctionID calleeId, BOOL* pfShouldInline) override; + HRESULT STDMETHODCALLTYPE ThreadCreated(ThreadID threadId) override; + HRESULT STDMETHODCALLTYPE ThreadDestroyed(ThreadID threadId) override; + HRESULT STDMETHODCALLTYPE ThreadAssignedToOSThread(ThreadID managedThreadId, DWORD osThreadId) override; + HRESULT STDMETHODCALLTYPE RemotingClientInvocationStarted() override; + HRESULT STDMETHODCALLTYPE RemotingClientSendingMessage(GUID* pCookie, BOOL fIsAsync) override; + HRESULT STDMETHODCALLTYPE RemotingClientReceivingReply(GUID* pCookie, BOOL fIsAsync) override; + HRESULT STDMETHODCALLTYPE RemotingClientInvocationFinished() override; + HRESULT STDMETHODCALLTYPE RemotingServerReceivingMessage(GUID* pCookie, BOOL fIsAsync) override; + HRESULT STDMETHODCALLTYPE RemotingServerInvocationStarted() override; + HRESULT STDMETHODCALLTYPE RemotingServerInvocationReturned() override; + HRESULT STDMETHODCALLTYPE RemotingServerSendingReply(GUID* pCookie, BOOL fIsAsync) override; + HRESULT STDMETHODCALLTYPE UnmanagedToManagedTransition(FunctionID functionId, + COR_PRF_TRANSITION_REASON reason) override; + HRESULT STDMETHODCALLTYPE ManagedToUnmanagedTransition(FunctionID functionId, + COR_PRF_TRANSITION_REASON reason) override; + HRESULT STDMETHODCALLTYPE RuntimeSuspendStarted(COR_PRF_SUSPEND_REASON suspendReason) override; + HRESULT STDMETHODCALLTYPE RuntimeSuspendFinished() override; + HRESULT STDMETHODCALLTYPE RuntimeSuspendAborted() override; + HRESULT STDMETHODCALLTYPE RuntimeResumeStarted() override; + HRESULT STDMETHODCALLTYPE RuntimeResumeFinished() override; + HRESULT STDMETHODCALLTYPE RuntimeThreadSuspended(ThreadID threadId) override; + HRESULT STDMETHODCALLTYPE RuntimeThreadResumed(ThreadID threadId) override; + HRESULT STDMETHODCALLTYPE MovedReferences(ULONG cMovedObjectIDRanges, ObjectID oldObjectIDRangeStart[], + ObjectID newObjectIDRangeStart[], ULONG cObjectIDRangeLength[]) override; + HRESULT STDMETHODCALLTYPE ObjectAllocated(ObjectID objectId, ClassID classId) override; + HRESULT STDMETHODCALLTYPE ObjectsAllocatedByClass(ULONG cClassCount, ClassID classIds[], ULONG cObjects[]) override; + HRESULT STDMETHODCALLTYPE ObjectReferences(ObjectID objectId, ClassID classId, ULONG cObjectRefs, + ObjectID objectRefIds[]) override; + HRESULT STDMETHODCALLTYPE RootReferences(ULONG cRootRefs, ObjectID rootRefIds[]) override; + HRESULT STDMETHODCALLTYPE ExceptionThrown(ObjectID thrownObjectId) override; + HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionEnter(FunctionID functionId) override; + HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionLeave() override; + HRESULT STDMETHODCALLTYPE ExceptionSearchFilterEnter(FunctionID functionId) override; + HRESULT STDMETHODCALLTYPE ExceptionSearchFilterLeave() override; + HRESULT STDMETHODCALLTYPE ExceptionSearchCatcherFound(FunctionID functionId) override; + HRESULT STDMETHODCALLTYPE ExceptionOSHandlerEnter(UINT_PTR __unused) override; + HRESULT STDMETHODCALLTYPE ExceptionOSHandlerLeave(UINT_PTR __unused) override; + HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionEnter(FunctionID functionId) override; + HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionLeave() override; + HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyEnter(FunctionID functionId) override; + HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyLeave() override; + HRESULT STDMETHODCALLTYPE ExceptionCatcherEnter(FunctionID functionId, ObjectID objectId) override; + HRESULT STDMETHODCALLTYPE ExceptionCatcherLeave() override; + HRESULT STDMETHODCALLTYPE COMClassicVTableCreated(ClassID wrappedClassId, REFGUID implementedIID, void* pVTable, + ULONG cSlots) override; + HRESULT STDMETHODCALLTYPE COMClassicVTableDestroyed(ClassID wrappedClassId, REFGUID implementedIID, + void* pVTable) override; + HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherFound() override; + HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherExecute() override; + HRESULT STDMETHODCALLTYPE ThreadNameChanged(ThreadID threadId, ULONG cchName, WCHAR name[]) override; + HRESULT STDMETHODCALLTYPE GarbageCollectionStarted(int cGenerations, BOOL generationCollected[], + COR_PRF_GC_REASON reason) override; + HRESULT STDMETHODCALLTYPE SurvivingReferences(ULONG cSurvivingObjectIDRanges, ObjectID objectIDRangeStart[], + ULONG cObjectIDRangeLength[]) override; + HRESULT STDMETHODCALLTYPE GarbageCollectionFinished() override; + HRESULT STDMETHODCALLTYPE FinalizeableObjectQueued(DWORD finalizerFlags, ObjectID objectID) override; + HRESULT STDMETHODCALLTYPE RootReferences2(ULONG cRootRefs, ObjectID rootRefIds[], COR_PRF_GC_ROOT_KIND rootKinds[], + COR_PRF_GC_ROOT_FLAGS rootFlags[], UINT_PTR rootIds[]) override; + HRESULT STDMETHODCALLTYPE HandleCreated(GCHandleID handleId, ObjectID initialObjectId) override; + HRESULT STDMETHODCALLTYPE HandleDestroyed(GCHandleID handleId) override; + HRESULT STDMETHODCALLTYPE InitializeForAttach(IUnknown* pCorProfilerInfoUnk, void* pvClientData, + UINT cbClientData) override; + HRESULT STDMETHODCALLTYPE ProfilerAttachComplete() override; + HRESULT STDMETHODCALLTYPE ProfilerDetachSucceeded() override; + HRESULT STDMETHODCALLTYPE ReJITCompilationStarted(FunctionID functionId, ReJITID rejitId, + BOOL fIsSafeToBlock) override; + HRESULT STDMETHODCALLTYPE GetReJITParameters(ModuleID moduleId, mdMethodDef methodId, + ICorProfilerFunctionControl* pFunctionControl) override; + HRESULT STDMETHODCALLTYPE ReJITCompilationFinished(FunctionID functionId, ReJITID rejitId, HRESULT hrStatus, + BOOL fIsSafeToBlock) override; + HRESULT STDMETHODCALLTYPE ReJITError(ModuleID moduleId, mdMethodDef methodId, FunctionID functionId, + HRESULT hrStatus) override; + HRESULT STDMETHODCALLTYPE MovedReferences2(ULONG cMovedObjectIDRanges, ObjectID oldObjectIDRangeStart[], + ObjectID newObjectIDRangeStart[], + SIZE_T cObjectIDRangeLength[]) override; + HRESULT STDMETHODCALLTYPE SurvivingReferences2(ULONG cSurvivingObjectIDRanges, ObjectID objectIDRangeStart[], + SIZE_T cObjectIDRangeLength[]) override; + HRESULT STDMETHODCALLTYPE ConditionalWeakTableElementReferences(ULONG cRootRefs, ObjectID keyRefIds[], + ObjectID valueRefIds[], + GCHandleID rootIds[]) override; + HRESULT STDMETHODCALLTYPE GetAssemblyReferences(const WCHAR* wszAssemblyPath, + ICorProfilerAssemblyReferenceProvider* pAsmRefProvider) override; + HRESULT STDMETHODCALLTYPE ModuleInMemorySymbolsUpdated(ModuleID moduleId) override; + + HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationStarted(FunctionID functionId, BOOL fIsSafeToBlock, + LPCBYTE ilHeader, ULONG cbILHeader) override; + HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationFinished(FunctionID functionId, HRESULT hrStatus, + BOOL fIsSafeToBlock) override; + + HRESULT STDMETHODCALLTYPE DynamicMethodUnloaded(FunctionID functionId) override; + + HRESULT STDMETHODCALLTYPE EventPipeEventDelivered(EVENTPIPE_PROVIDER provider, DWORD eventId, DWORD eventVersion, + ULONG cbMetadataBlob, LPCBYTE metadataBlob, ULONG cbEventData, + LPCBYTE eventData, LPCGUID pActivityId, + LPCGUID pRelatedActivityId, ThreadID eventThread, + ULONG numStackFrames, UINT_PTR stackFrames[]) override; + + HRESULT STDMETHODCALLTYPE EventPipeProviderCreated(EVENTPIPE_PROVIDER provider) override; + + HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject) override + { + if (riid == __uuidof(ICorProfilerCallback10) || riid == __uuidof(ICorProfilerCallback9) || + riid == __uuidof(ICorProfilerCallback8) || riid == __uuidof(ICorProfilerCallback7) || + riid == __uuidof(ICorProfilerCallback6) || riid == __uuidof(ICorProfilerCallback5) || + riid == __uuidof(ICorProfilerCallback4) || riid == __uuidof(ICorProfilerCallback3) || + riid == __uuidof(ICorProfilerCallback2) || riid == __uuidof(ICorProfilerCallback) || riid == IID_IUnknown) + { + *ppvObject = this; + this->AddRef(); + return S_OK; + } + + *ppvObject = nullptr; + return E_NOINTERFACE; } - *ppvObject = nullptr; - return E_NOINTERFACE; - } - - ULONG STDMETHODCALLTYPE AddRef(void) override { - return std::atomic_fetch_add(&this->ref_count_, 1) + 1; - } - - ULONG STDMETHODCALLTYPE Release(void) override { - int count = std::atomic_fetch_sub(&this->ref_count_, 1) - 1; - - /* - * Running netcoreapp2.x we get in similar scenarios as the one described in: - * https://github.com/dotnet/runtime/issues/11885 - * - * A crash while profiler is shutting down because one thread can be deleting the - * profiler instance while another thread can be trying to call - * `EEToProfInterfaceImpl::JITCompilationFinished` - * and crashing here https://github.com/dotnet/coreclr/blob/release/2.1/src/vm/eetoprofinterfaceimpl.cpp#L3220 as - * seen in several memory dumps. - * - * One way to avoid the crash is by skipping the deletion of the profiler, - * so the pointer doesn't get invalidated. So we are commenting the `delete this;` line. - * - * This behavior appears to be fixed in netcoreapp3.x as seen in the commit: - * https://github.com/dotnet/coreclr/commit/671772c20a27c050df3d7d11391ea4f7de05165c - * PR: - * https://github.com/dotnet/coreclr/pull/22712 - */ - - //if (count <= 0) { - // delete this; - //} + ULONG STDMETHODCALLTYPE AddRef(void) override + { + return std::atomic_fetch_add(&this->ref_count_, 1) + 1; + } - return count; - } + ULONG STDMETHODCALLTYPE Release(void) override + { + int count = std::atomic_fetch_sub(&this->ref_count_, 1) - 1; + + /* + * Running netcoreapp2.x we get in similar scenarios as the one described in: + * https://github.com/dotnet/runtime/issues/11885 + * + * A crash while profiler is shutting down because one thread can be deleting the + * profiler instance while another thread can be trying to call + * `EEToProfInterfaceImpl::JITCompilationFinished` + * and crashing here https://github.com/dotnet/coreclr/blob/release/2.1/src/vm/eetoprofinterfaceimpl.cpp#L3220 + * as seen in several memory dumps. + * + * One way to avoid the crash is by skipping the deletion of the profiler, + * so the pointer doesn't get invalidated. So we are commenting the `delete this;` line. + * + * This behavior appears to be fixed in netcoreapp3.x as seen in the commit: + * https://github.com/dotnet/coreclr/commit/671772c20a27c050df3d7d11391ea4f7de05165c + * PR: + * https://github.com/dotnet/coreclr/pull/22712 + */ + + // if (count <= 0) { + // delete this; + //} + + return count; + } }; -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_PROFILER_BASE_H_ +#endif // DD_CLR_PROFILER_PROFILER_BASE_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/dd_profiler_constants.h b/src/Datadog.Trace.ClrProfiler.Native/dd_profiler_constants.h index 0e90baacec..2735611526 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/dd_profiler_constants.h +++ b/src/Datadog.Trace.ClrProfiler.Native/dd_profiler_constants.h @@ -6,34 +6,34 @@ #include "environment_variables.h" #include "logging.h" -namespace trace { +namespace trace +{ - inline WSTRING env_vars_to_display[]{ - environment::tracing_enabled, - environment::debug_enabled, - environment::calltarget_enabled, - environment::profiler_home_path, - environment::integrations_path, - environment::include_process_names, - environment::exclude_process_names, - environment::agent_host, - environment::agent_port, - environment::env, - environment::service_name, - environment::service_version, - environment::disabled_integrations, - environment::log_path, - environment::log_directory, - environment::clr_disable_optimizations, - environment::clr_enable_inlining, - environment::domain_neutral_instrumentation, - environment::dump_il_rewrite_enabled, - environment::netstandard_enabled, - environment::azure_app_services, - environment::azure_app_services_app_pool_id, - environment::azure_app_services_cli_telemetry_profile_value}; +const WSTRING env_vars_to_display[]{environment::tracing_enabled, + environment::debug_enabled, + environment::calltarget_enabled, + environment::profiler_home_path, + environment::integrations_path, + environment::include_process_names, + environment::exclude_process_names, + environment::agent_host, + environment::agent_port, + environment::env, + environment::service_name, + environment::service_version, + environment::disabled_integrations, + environment::log_path, + environment::log_directory, + environment::clr_disable_optimizations, + environment::clr_enable_inlining, + environment::domain_neutral_instrumentation, + environment::dump_il_rewrite_enabled, + environment::netstandard_enabled, + environment::azure_app_services, + environment::azure_app_services_app_pool_id, + environment::azure_app_services_cli_telemetry_profile_value}; - inline WSTRING skip_assembly_prefixes[]{ +const WSTRING skip_assembly_prefixes[]{ WStr("Datadog.Trace"), WStr("OpenTelemetry.AutoInstrumentation"), WStr("MessagePack"), @@ -57,22 +57,21 @@ namespace trace { WStr("System.Threading"), WStr("System.Xml"), WStr("Newtonsoft"), - }; +}; - inline WSTRING skip_assemblies[]{ - WStr("mscorlib"), - WStr("netstandard"), - WStr("System.Configuration"), - WStr("Microsoft.AspNetCore.Razor.Language"), - WStr("Microsoft.AspNetCore.Mvc.RazorPages"), - WStr("Anonymously Hosted DynamicMethods Assembly"), - WStr("ISymWrapper") - }; +const WSTRING skip_assemblies[]{WStr("mscorlib"), + WStr("netstandard"), + WStr("System.Configuration"), + WStr("Microsoft.AspNetCore.Razor.Language"), + WStr("Microsoft.AspNetCore.Mvc.RazorPages"), + WStr("Anonymously Hosted DynamicMethods Assembly"), + WStr("ISymWrapper")}; - inline WSTRING managed_profiler_full_assembly_version = WStr("OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429"); +inline WSTRING managed_profiler_full_assembly_version = + WStr("OpenTelemetry.AutoInstrumentation.ClrProfiler.Managed, Version=0.0.1.0, Culture=neutral, PublicKeyToken=34b8972644a12429"); - inline WSTRING calltarget_modification_action = WStr("CallTargetModification"); +const WSTRING calltarget_modification_action = WStr("CallTargetModification"); -} // namespace trace +} // namespace trace -#endif // DD_PROFILER_CONSTANTS_H \ No newline at end of file +#endif // DD_PROFILER_CONSTANTS_H \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/dllmain.cpp b/src/Datadog.Trace.ClrProfiler.Native/dllmain.cpp index 5be492bf0e..4a044aef01 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/dllmain.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/dllmain.cpp @@ -5,47 +5,41 @@ #include "dllmain.h" #include "class_factory.h" -const IID IID_IUnknown = {0x00000000, - 0x0000, - 0x0000, - {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; +const IID IID_IUnknown = {0x00000000, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; -const IID IID_IClassFactory = { - 0x00000001, - 0x0000, - 0x0000, - {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; +const IID IID_IClassFactory = {0x00000001, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; HINSTANCE DllHandle; -extern "C" { -BOOL STDMETHODCALLTYPE DllMain(HMODULE hModule, DWORD ul_reason_for_call, - LPVOID lpReserved) { - DllHandle = hModule; - return TRUE; -} - -HRESULT STDMETHODCALLTYPE DllGetClassObject(REFCLSID rclsid, REFIID riid, - LPVOID* ppv) { - // {918728DD-259F-4A6A-AC2B-B85E1B658318} - const GUID CLSID_CorProfiler = { - 0x918728dd, - 0x259f, - 0x4a6a, - {0xac, 0x2b, 0xb8, 0x5e, 0x1b, 0x65, 0x83, 0x18}}; - - if (ppv == NULL || rclsid != CLSID_CorProfiler) { - return E_FAIL; - } - - auto factory = new ClassFactory; - - if (factory == NULL) { - return E_FAIL; - } - - return factory->QueryInterface(riid, ppv); -} - -HRESULT STDMETHODCALLTYPE DllCanUnloadNow() { return S_OK; } +extern "C" +{ + BOOL STDMETHODCALLTYPE DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) + { + DllHandle = hModule; + return TRUE; + } + + HRESULT STDMETHODCALLTYPE DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { + // {918728DD-259F-4A6A-AC2B-B85E1B658318} + const GUID CLSID_CorProfiler = {0x918728dd, 0x259f, 0x4a6a, {0xac, 0x2b, 0xb8, 0x5e, 0x1b, 0x65, 0x83, 0x18}}; + + if (ppv == NULL || rclsid != CLSID_CorProfiler) + { + return E_FAIL; + } + + auto factory = new ClassFactory; + + if (factory == NULL) + { + return E_FAIL; + } + + return factory->QueryInterface(riid, ppv); + } + + HRESULT STDMETHODCALLTYPE DllCanUnloadNow() + { + return S_OK; + } } diff --git a/src/Datadog.Trace.ClrProfiler.Native/dllmain.h b/src/Datadog.Trace.ClrProfiler.Native/dllmain.h index 7c4dce2d6c..4b93af9c11 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/dllmain.h +++ b/src/Datadog.Trace.ClrProfiler.Native/dllmain.h @@ -5,4 +5,4 @@ extern HINSTANCE DllHandle; -#endif // DD_CLR_PROFILER_DLLMAIN_H_ \ No newline at end of file +#endif // DD_CLR_PROFILER_DLLMAIN_H_ \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/environment_variables.h b/src/Datadog.Trace.ClrProfiler.Native/environment_variables.h index 3070524b17..fe0d988011 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/environment_variables.h +++ b/src/Datadog.Trace.ClrProfiler.Native/environment_variables.h @@ -1,110 +1,110 @@ #ifndef OTEL_CLR_PROFILER_ENVIRONMENT_VARIABLES_H_ #define OTEL_CLR_PROFILER_ENVIRONMENT_VARIABLES_H_ -#include "string.h" // NOLINT +#include "string.h" // NOLINT namespace trace { namespace environment { -// Sets whether the profiler is enabled. Default is true. -// Setting this to false disabled the profiler entirely. -const WSTRING tracing_enabled = WStr("OTEL_TRACE_ENABLED"); - -// Sets whether debug mode is enabled. Default is false. -const WSTRING debug_enabled = WStr("OTEL_TRACE_DEBUG"); - -// Sets the paths to integration definition JSON files. -// Supports multiple values separated with comma, for example: -// "C:\Program Files\OpenTelemetry .NET AutoInstrumentation\integrations.json,D:\temp\test_integrations.json" -const WSTRING integrations_path = WStr("OTEL_INTEGRATIONS"); - -// Sets the path to the profiler's home directory, for example: -// "C:\Program Files\OpenTelemetry .NET AutoInstrumentation\" or "/opt/datadog/" -const WSTRING profiler_home_path = WStr("OTEL_DOTNET_TRACER_HOME"); - -// Sets the filename of executables the profiler can attach to. -// If not defined (default), the profiler will attach to any process. -// Supports multiple values separated with comma, for example: -// "MyApp.exe,dotnet.exe" -const WSTRING include_process_names = WStr("OTEL_PROFILER_PROCESSES"); - -// Sets the filename of executables the profiler cannot attach to. -// If not defined (default), the profiler will attach to any process. -// Supports multiple values separated with comma, for example: -// "MyApp.exe,dotnet.exe" -const WSTRING exclude_process_names = WStr("OTEL_PROFILER_EXCLUDE_PROCESSES"); - -// Sets the Agent's host. Default is localhost. -const WSTRING agent_host = WStr("OTEL_AGENT_HOST"); - -// Sets the Agent's port. Default is 8126. -const WSTRING agent_port = WStr("OTEL_TRACE_AGENT_PORT"); - -// Sets the "env" tag for every span. -const WSTRING env = WStr("OTEL_ENV"); - -// Sets the default service name for every span. -// If not set, Tracer will try to determine service name automatically -// from application name (e.g. entry assembly or IIS application name). -const WSTRING service_name = WStr("OTEL_SERVICE"); - -// Sets the "service_version" tag for every span that belong to the root service (and not an external service). -const WSTRING service_version = WStr("OTEL_VERSION"); - -// Sets a list of integrations to disable. All other integrations will remain -// enabled. If not set (default), all integrations are enabled. Supports -// multiple values separated with comma, for example: -// "ElasticsearchNet,AspNetWebApi2" -const WSTRING disabled_integrations = WStr("OTEL_DISABLED_INTEGRATIONS"); - -// Sets the path for the profiler's log file. -// Environment variable OTEL_TRACE_LOG_DIRECTORY takes precedence over this setting, if set. -const WSTRING log_path = WStr("OTEL_TRACE_LOG_PATH"); - -// Sets the directory for the profiler's log file. -// If set, this setting takes precedence over environment variable OTEL_TRACE_LOG_PATH. -// If not set, default is -// "%ProgramData%"\OpenTelemetry .NET AutoInstrumentation\logs\" on Windows or -// "/var/log/opentelemetry/dotnet/" on Linux. -const WSTRING log_directory = WStr("OTEL_TRACE_LOG_DIRECTORY"); - -// Sets whether to disable all JIT optimizations. -// Default value is false (do not disable all optimizations). -// https://github.com/dotnet/coreclr/issues/24676 -// https://github.com/dotnet/coreclr/issues/12468 -const WSTRING clr_disable_optimizations = WStr("OTEL_CLR_DISABLE_OPTIMIZATIONS"); - -// Sets whether to intercept method calls when the caller method is inside a -// domain-neutral assembly. This is dangerous because the integration assembly -// the user can guarantee that all Application Pools on the system have at most -// Default is false. Only used in .NET Framework 4.5 and 4.5.1. -// https://github.com/DataDog/dd-trace-dotnet/pull/671 -const WSTRING domain_neutral_instrumentation = WStr("OTEL_TRACE_DOMAIN_NEUTRAL_INSTRUMENTATION"); - -// Indicates whether the profiler is running in the context -// of Azure App Services -const WSTRING azure_app_services = WStr("OTEL_AZURE_APP_SERVICES"); - -// The app_pool_id in the context of azure app services -const WSTRING azure_app_services_app_pool_id = WStr("APP_POOL_ID"); - -// The DOTNET_CLI_TELEMETRY_PROFILE in the context of azure app services -const WSTRING azure_app_services_cli_telemetry_profile_value = WStr("DOTNET_CLI_TELEMETRY_PROFILE"); - -// Determine whether to instrument calls into netstandard.dll. -// Default to false for now to avoid the unexpected overhead of additional spans. -const WSTRING netstandard_enabled = WStr("OTEL_TRACE_NETSTANDARD_ENABLED"); - -// Enable the profiler to dump the IL original code and modification to the log. -const WSTRING dump_il_rewrite_enabled = WStr("OTEL_DUMP_ILREWRITE_ENABLED"); - -// Sets whether to enable JIT inlining -const WSTRING clr_enable_inlining = WStr("OTEL_CLR_ENABLE_INLINING"); - -// Sets whether to enable the CallTarget instrumentation mode -const WSTRING calltarget_enabled = WStr("OTEL_TRACE_CALLTARGET_ENABLED"); - -} // namespace environment -} // namespace trace + // Sets whether the profiler is enabled. Default is true. + // Setting this to false disabled the profiler entirely. + const WSTRING tracing_enabled = WStr("OTEL_TRACE_ENABLED"); + + // Sets whether debug mode is enabled. Default is false. + const WSTRING debug_enabled = WStr("OTEL_TRACE_DEBUG"); + + // Sets the paths to integration definition JSON files. + // Supports multiple values separated with comma, for example: + // "C:\Program Files\OpenTelemetry .NET AutoInstrumentation\integrations.json,D:\temp\test_integrations.json" + const WSTRING integrations_path = WStr("OTEL_INTEGRATIONS"); + + // Sets the path to the profiler's home directory, for example: + // "C:\Program Files\OpenTelemetry .NET AutoInstrumentation\" or "/opt/datadog/" + const WSTRING profiler_home_path = WStr("OTEL_DOTNET_TRACER_HOME"); + + // Sets the filename of executables the profiler can attach to. + // If not defined (default), the profiler will attach to any process. + // Supports multiple values separated with comma, for example: + // "MyApp.exe,dotnet.exe" + const WSTRING include_process_names = WStr("OTEL_PROFILER_PROCESSES"); + + // Sets the filename of executables the profiler cannot attach to. + // If not defined (default), the profiler will attach to any process. + // Supports multiple values separated with comma, for example: + // "MyApp.exe,dotnet.exe" + const WSTRING exclude_process_names = WStr("OTEL_PROFILER_EXCLUDE_PROCESSES"); + + // Sets the Agent's host. Default is localhost. + const WSTRING agent_host = WStr("OTEL_AGENT_HOST"); + + // Sets the Agent's port. Default is 8126. + const WSTRING agent_port = WStr("OTEL_TRACE_AGENT_PORT"); + + // Sets the "env" tag for every span. + const WSTRING env = WStr("OTEL_ENV"); + + // Sets the default service name for every span. + // If not set, Tracer will try to determine service name automatically + // from application name (e.g. entry assembly or IIS application name). + const WSTRING service_name = WStr("OTEL_SERVICE"); + + // Sets the "service_version" tag for every span that belong to the root service (and not an external service). + const WSTRING service_version = WStr("OTEL_VERSION"); + + // Sets a list of integrations to disable. All other integrations will remain + // enabled. If not set (default), all integrations are enabled. Supports + // multiple values separated with comma, for example: + // "ElasticsearchNet,AspNetWebApi2" + const WSTRING disabled_integrations = WStr("OTEL_DISABLED_INTEGRATIONS"); + + // Sets the path for the profiler's log file. + // Environment variable OTEL_TRACE_LOG_DIRECTORY takes precedence over this setting, if set. + const WSTRING log_path = WStr("OTEL_TRACE_LOG_PATH"); + + // Sets the directory for the profiler's log file. + // If set, this setting takes precedence over environment variable OTEL_TRACE_LOG_PATH. + // If not set, default is + // "%ProgramData%"\OpenTelemetry .NET AutoInstrumentation\logs\" on Windows or + // "/var/log/opentelemetry/dotnet/" on Linux. + const WSTRING log_directory = WStr("OTEL_TRACE_LOG_DIRECTORY"); + + // Sets whether to disable all JIT optimizations. + // Default value is false (do not disable all optimizations). + // https://github.com/dotnet/coreclr/issues/24676 + // https://github.com/dotnet/coreclr/issues/12468 + const WSTRING clr_disable_optimizations = WStr("OTEL_CLR_DISABLE_OPTIMIZATIONS"); + + // Sets whether to intercept method calls when the caller method is inside a + // domain-neutral assembly. This is dangerous because the integration assembly + // the user can guarantee that all Application Pools on the system have at most + // Default is false. Only used in .NET Framework 4.5 and 4.5.1. + // https://github.com/DataDog/dd-trace-dotnet/pull/671 + const WSTRING domain_neutral_instrumentation = WStr("OTEL_TRACE_DOMAIN_NEUTRAL_INSTRUMENTATION"); + + // Indicates whether the profiler is running in the context + // of Azure App Services + const WSTRING azure_app_services = WStr("OTEL_AZURE_APP_SERVICES"); + + // The app_pool_id in the context of azure app services + const WSTRING azure_app_services_app_pool_id = WStr("APP_POOL_ID"); + + // The DOTNET_CLI_TELEMETRY_PROFILE in the context of azure app services + const WSTRING azure_app_services_cli_telemetry_profile_value = WStr("DOTNET_CLI_TELEMETRY_PROFILE"); + + // Determine whether to instrument calls into netstandard.dll. + // Default to false for now to avoid the unexpected overhead of additional spans. + const WSTRING netstandard_enabled = WStr("OTEL_TRACE_NETSTANDARD_ENABLED"); + + // Enable the profiler to dump the IL original code and modification to the log. + const WSTRING dump_il_rewrite_enabled = WStr("OTEL_DUMP_ILREWRITE_ENABLED"); + + // Sets whether to enable JIT inlining + const WSTRING clr_enable_inlining = WStr("OTEL_CLR_ENABLE_INLINING"); + + // Sets whether to enable the CallTarget instrumentation mode + const WSTRING calltarget_enabled = WStr("OTEL_TRACE_CALLTARGET_ENABLED"); + +} // namespace environment +} // namespace trace #endif diff --git a/src/Datadog.Trace.ClrProfiler.Native/environment_variables_util.h b/src/Datadog.Trace.ClrProfiler.Native/environment_variables_util.h index 57d8c0741c..df336ea119 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/environment_variables_util.h +++ b/src/Datadog.Trace.ClrProfiler.Native/environment_variables_util.h @@ -5,82 +5,98 @@ #include "string.h" #include "util.h" -#define CheckIfTrue(EXPR) \ - static int sValue = -1; \ - if (sValue == -1) { \ - const auto envValue = EXPR; \ - sValue = envValue == WStr("1") || envValue == WStr("true") ? 1 : 0; \ - } \ - return sValue == 1; - -#define CheckIfFalse(EXPR) \ - static int sValue = -1; \ - if (sValue == -1) { \ - const auto envValue = EXPR; \ - sValue = envValue == WStr("0") || envValue == WStr("false") ? 1 : 0; \ - } \ - return sValue == 1; - -#define ToBooleanWithDefault(EXPR, DEFAULT) \ - static int sValue = -1; \ - if (sValue == -1) { \ - const auto envValue = EXPR; \ - if (envValue == WStr("1") || envValue == WStr("true")) { \ - sValue = 1; \ - } else if (envValue == WStr("0") || envValue == WStr("false")) { \ - sValue = 0; \ - } else { \ - sValue = DEFAULT; \ - } \ - } \ - return sValue == 1; - -namespace trace { - -bool DisableOptimizations() { - CheckIfTrue(GetEnvironmentValue(environment::clr_disable_optimizations)); +#define CheckIfTrue(EXPR) \ + static int sValue = -1; \ + if (sValue == -1) \ + { \ + const auto envValue = EXPR; \ + sValue = envValue == WStr("1") || envValue == WStr("true") ? 1 : 0; \ + } \ + return sValue == 1; + +#define CheckIfFalse(EXPR) \ + static int sValue = -1; \ + if (sValue == -1) \ + { \ + const auto envValue = EXPR; \ + sValue = envValue == WStr("0") || envValue == WStr("false") ? 1 : 0; \ + } \ + return sValue == 1; + +#define ToBooleanWithDefault(EXPR, DEFAULT) \ + static int sValue = -1; \ + if (sValue == -1) \ + { \ + const auto envValue = EXPR; \ + if (envValue == WStr("1") || envValue == WStr("true")) \ + { \ + sValue = 1; \ + } \ + else if (envValue == WStr("0") || envValue == WStr("false")) \ + { \ + sValue = 0; \ + } \ + else \ + { \ + sValue = DEFAULT; \ + } \ + } \ + return sValue == 1; + +namespace trace +{ + +bool DisableOptimizations() +{ + CheckIfTrue(GetEnvironmentValue(environment::clr_disable_optimizations)); } -bool EnableInlining(bool defaultValue) { - ToBooleanWithDefault(GetEnvironmentValue(environment::clr_enable_inlining), - defaultValue); +bool EnableInlining(bool defaultValue) +{ + ToBooleanWithDefault(GetEnvironmentValue(environment::clr_enable_inlining), defaultValue); } -bool IsCallTargetEnabled() { +bool IsCallTargetEnabled(bool defaultValue) { #if defined(ARM64) || defined(ARM) - // - // If the architecture is ARM64 or ARM, we enable CallTarget instrumentation by default - // - ToBooleanWithDefault(GetEnvironmentValue(environment::calltarget_enabled), true); + // + // If the architecture is ARM64 or ARM, we enable CallTarget instrumentation by default + // + ToBooleanWithDefault(GetEnvironmentValue(environment::calltarget_enabled), true); #else - ToBooleanWithDefault(GetEnvironmentValue(environment::calltarget_enabled), false); + ToBooleanWithDefault(GetEnvironmentValue(environment::calltarget_enabled), defaultValue); #endif } -bool IsDebugEnabled() { - CheckIfTrue(GetEnvironmentValue(environment::debug_enabled)); +bool IsDebugEnabled() +{ + CheckIfTrue(GetEnvironmentValue(environment::debug_enabled)); } -bool IsDumpILRewriteEnabled() { - CheckIfTrue(GetEnvironmentValue(environment::dump_il_rewrite_enabled)); +bool IsDumpILRewriteEnabled() +{ + CheckIfTrue(GetEnvironmentValue(environment::dump_il_rewrite_enabled)); } -bool IsTracingDisabled() { - CheckIfFalse(GetEnvironmentValue(environment::tracing_enabled)); +bool IsTracingDisabled() +{ + CheckIfFalse(GetEnvironmentValue(environment::tracing_enabled)); } -bool IsAzureAppServices() { - CheckIfTrue(GetEnvironmentValue(environment::azure_app_services)); +bool IsAzureAppServices() +{ + CheckIfTrue(GetEnvironmentValue(environment::azure_app_services)); } -bool IsNetstandardEnabled() { - CheckIfTrue(GetEnvironmentValue(environment::netstandard_enabled)); +bool IsNetstandardEnabled() +{ + CheckIfTrue(GetEnvironmentValue(environment::netstandard_enabled)); } -bool IsDomainNeutralInstrumentation() { - CheckIfTrue(GetEnvironmentValue(environment::domain_neutral_instrumentation)); +bool IsDomainNeutralInstrumentation() +{ + CheckIfTrue(GetEnvironmentValue(environment::domain_neutral_instrumentation)); } -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_ENVIRONMENT_VARIABLES_UTIL_H_ \ No newline at end of file +#endif // DD_CLR_PROFILER_ENVIRONMENT_VARIABLES_UTIL_H_ \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.cpp b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.cpp index a6bf1b1e4a..38728e534e 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.cpp @@ -7,19 +7,22 @@ #include "il_rewriter.h" #undef IfFailRet -#define IfFailRet(EXPR) \ - do { \ - HRESULT hr = (EXPR); \ - if (FAILED(hr)) { \ - return (hr); \ - } \ - } while (0) +#define IfFailRet(EXPR) \ + do \ + { \ + HRESULT hr = (EXPR); \ + if (FAILED(hr)) \ + { \ + return (hr); \ + } \ + } while (0) #undef IfNullRet -#define IfNullRet(EXPR) \ - do { \ - if ((EXPR) == NULL) return E_OUTOFMEMORY; \ - } while (0) +#define IfNullRet(EXPR) \ + do \ + { \ + if ((EXPR) == NULL) return E_OUTOFMEMORY; \ + } while (0) #define OPCODEFLAGS_SizeMask 0x0F #define OPCODEFLAGS_BranchTarget 0x10 @@ -85,8 +88,7 @@ static int k_rgnStackPushes[] = { #define PushI8 1 #define PushR8 1 #define PushRef 1 -#define VarPush \ - 1 // Test code doesn't call vararg fcns, so this should not be used +#define VarPush 1 // Test code doesn't call vararg fcns, so this should not be used #include "opcode.def" @@ -104,566 +106,625 @@ static int k_rgnStackPushes[] = { 0 // CEE_SWITCH_ARG }; -ILRewriter::ILRewriter( - ICorProfilerInfo* pICorProfilerInfo, - ICorProfilerFunctionControl* pICorProfilerFunctionControl, - ModuleID moduleID, mdToken tkMethod) - : m_pICorProfilerInfo(pICorProfilerInfo), - m_pICorProfilerFunctionControl(pICorProfilerFunctionControl), - m_moduleId(moduleID), - m_tkMethod(tkMethod), - m_fGenerateTinyHeader(false), - m_pEH(nullptr), - m_pOffsetToInstr(nullptr), - m_pOutputBuffer(nullptr), - m_pIMethodMalloc(nullptr) { - m_IL.m_pNext = &m_IL; - m_IL.m_pPrev = &m_IL; - - m_nInstrs = 0; +ILRewriter::ILRewriter(ICorProfilerInfo* pICorProfilerInfo, ICorProfilerFunctionControl* pICorProfilerFunctionControl, + ModuleID moduleID, mdToken tkMethod) : + m_pICorProfilerInfo(pICorProfilerInfo), + m_pICorProfilerFunctionControl(pICorProfilerFunctionControl), + m_moduleId(moduleID), + m_tkMethod(tkMethod), + m_fGenerateTinyHeader(false), + m_pEH(nullptr), + m_pOffsetToInstr(nullptr), + m_pOutputBuffer(nullptr), + m_pIMethodMalloc(nullptr) +{ + m_IL.m_pNext = &m_IL; + m_IL.m_pPrev = &m_IL; + + m_nInstrs = 0; } -ILRewriter::~ILRewriter() { - ILInstr* p = m_IL.m_pNext; - while (p != &m_IL) { - ILInstr* t = p->m_pNext; - delete p; - p = t; - } - delete[] m_pEH; - delete[] m_pOffsetToInstr; - delete[] m_pOutputBuffer; - - if (m_pIMethodMalloc) { - m_pIMethodMalloc->Release(); - } +ILRewriter::~ILRewriter() +{ + ILInstr* p = m_IL.m_pNext; + while (p != &m_IL) + { + ILInstr* t = p->m_pNext; + delete p; + p = t; + } + delete[] m_pEH; + delete[] m_pOffsetToInstr; + delete[] m_pOutputBuffer; + + if (m_pIMethodMalloc) + { + m_pIMethodMalloc->Release(); + } } -void ILRewriter::InitializeTiny() { - m_tkLocalVarSig = 0; - m_maxStack = 8; - m_flags = CorILMethod_TinyFormat; - m_CodeSize = 0; - m_nEH = 0; - m_fGenerateTinyHeader = true; +void ILRewriter::InitializeTiny() +{ + m_tkLocalVarSig = 0; + m_maxStack = 8; + m_flags = CorILMethod_TinyFormat; + m_CodeSize = 0; + m_nEH = 0; + m_fGenerateTinyHeader = true; } -mdToken ILRewriter::GetTkLocalVarSig() { return m_tkLocalVarSig; } +mdToken ILRewriter::GetTkLocalVarSig() +{ + return m_tkLocalVarSig; +} -void ILRewriter::SetTkLocalVarSig(mdToken tkLocalVarSig) { - m_tkLocalVarSig = tkLocalVarSig; - m_fGenerateTinyHeader = false; +void ILRewriter::SetTkLocalVarSig(mdToken tkLocalVarSig) +{ + m_tkLocalVarSig = tkLocalVarSig; + m_fGenerateTinyHeader = false; } -unsigned ILRewriter::GetEHCount() { return m_nEH; } +unsigned ILRewriter::GetEHCount() +{ + return m_nEH; +} -EHClause* ILRewriter::GetEHPointer() { return m_pEH; } +EHClause* ILRewriter::GetEHPointer() +{ + return m_pEH; +} -void ILRewriter::SetEHClause(EHClause* ehPointer, unsigned ehLength) { - m_nEH = ehLength; - m_pEH = ehPointer; +void ILRewriter::SetEHClause(EHClause* ehPointer, unsigned ehLength) +{ + m_nEH = ehLength; + m_pEH = ehPointer; } -HRESULT ILRewriter::Import() { - LPCBYTE pMethodBytes; +HRESULT ILRewriter::Import() +{ + LPCBYTE pMethodBytes; - IfFailRet(m_pICorProfilerInfo->GetILFunctionBody(m_moduleId, m_tkMethod, - &pMethodBytes, nullptr)); + IfFailRet(m_pICorProfilerInfo->GetILFunctionBody(m_moduleId, m_tkMethod, &pMethodBytes, nullptr)); - COR_ILMETHOD_DECODER decoder((COR_ILMETHOD*)pMethodBytes); + COR_ILMETHOD_DECODER decoder((COR_ILMETHOD*) pMethodBytes); - // Import the header flags - m_tkLocalVarSig = decoder.GetLocalVarSigTok(); - m_maxStack = decoder.GetMaxStack(); - m_flags = (decoder.GetFlags() & CorILMethod_InitLocals); + // Import the header flags + m_tkLocalVarSig = decoder.GetLocalVarSigTok(); + m_maxStack = decoder.GetMaxStack(); + m_flags = (decoder.GetFlags() & CorILMethod_InitLocals); - m_CodeSize = decoder.GetCodeSize(); + m_CodeSize = decoder.GetCodeSize(); - IfFailRet(ImportIL(decoder.Code)); + IfFailRet(ImportIL(decoder.Code)); - IfFailRet(ImportEH(decoder.EH, decoder.EHCount())); + IfFailRet(ImportEH(decoder.EH, decoder.EHCount())); - return S_OK; + return S_OK; } -HRESULT ILRewriter::ImportIL(LPCBYTE pIL) { - m_pOffsetToInstr = new ILInstr*[m_CodeSize + 1]; - IfNullRet(m_pOffsetToInstr); - - ZeroMemory(m_pOffsetToInstr, m_CodeSize * sizeof(ILInstr*)); - - // Set the sentinel instruction - m_pOffsetToInstr[m_CodeSize] = &m_IL; - m_IL.m_opcode = -1; +HRESULT ILRewriter::ImportIL(LPCBYTE pIL) +{ + m_pOffsetToInstr = new ILInstr*[m_CodeSize + 1]; + IfNullRet(m_pOffsetToInstr); - bool fBranch = false; - unsigned offset = 0; - while (offset < m_CodeSize) { - unsigned startOffset = offset; - unsigned opcode = pIL[offset++]; + ZeroMemory(m_pOffsetToInstr, m_CodeSize * sizeof(ILInstr*)); - if (opcode == CEE_PREFIX1) { - if (offset >= m_CodeSize) { - return COR_E_INVALIDPROGRAM; - } - opcode = 0x100 + pIL[offset++]; - } + // Set the sentinel instruction + m_pOffsetToInstr[m_CodeSize] = &m_IL; + m_IL.m_opcode = -1; - if ((CEE_PREFIX7 <= opcode) && (opcode <= CEE_PREFIX2)) { - // NOTE: CEE_PREFIX2-7 are currently not supported - return COR_E_INVALIDPROGRAM; - } + bool fBranch = false; + unsigned offset = 0; + while (offset < m_CodeSize) + { + unsigned startOffset = offset; + unsigned opcode = pIL[offset++]; + + if (opcode == CEE_PREFIX1) + { + if (offset >= m_CodeSize) + { + return COR_E_INVALIDPROGRAM; + } + opcode = 0x100 + pIL[offset++]; + } - if (opcode >= CEE_COUNT) { - return COR_E_INVALIDPROGRAM; - } + if ((CEE_PREFIX7 <= opcode) && (opcode <= CEE_PREFIX2)) + { + // NOTE: CEE_PREFIX2-7 are currently not supported + return COR_E_INVALIDPROGRAM; + } - BYTE flags = s_OpCodeFlags[opcode]; + if (opcode >= CEE_COUNT) + { + return COR_E_INVALIDPROGRAM; + } - int size = (flags & OPCODEFLAGS_SizeMask); - if (offset + size > m_CodeSize) { - return COR_E_INVALIDPROGRAM; - } + BYTE flags = s_OpCodeFlags[opcode]; - ILInstr* pInstr = NewILInstr(); - IfNullRet(pInstr); - - pInstr->m_opcode = opcode; - - InsertBefore(&m_IL, pInstr); - - m_pOffsetToInstr[startOffset] = pInstr; - - switch (flags) { - case 0: - break; - case 1: - pInstr->m_Arg8 = *(UNALIGNED INT8*)&(pIL[offset]); - break; - case 2: - pInstr->m_Arg16 = *(UNALIGNED INT16*)&(pIL[offset]); - break; - case 4: - pInstr->m_Arg32 = *(UNALIGNED INT32*)&(pIL[offset]); - break; - case 8: - pInstr->m_Arg64 = *(UNALIGNED INT64*)&(pIL[offset]); - break; - case 1 | OPCODEFLAGS_BranchTarget: - pInstr->m_Arg32 = offset + 1 + *(UNALIGNED INT8*)&(pIL[offset]); - fBranch = true; - break; - case 4 | OPCODEFLAGS_BranchTarget: - pInstr->m_Arg32 = offset + 4 + *(UNALIGNED INT32*)&(pIL[offset]); - fBranch = true; - break; - case 0 | OPCODEFLAGS_Switch: { - if (offset + sizeof(INT32) > m_CodeSize) { - return COR_E_INVALIDPROGRAM; + int size = (flags & OPCODEFLAGS_SizeMask); + if (offset + size > m_CodeSize) + { + return COR_E_INVALIDPROGRAM; } - unsigned nTargets = *(UNALIGNED INT32*)&(pIL[offset]); - pInstr->m_Arg32 = nTargets; - offset += sizeof(INT32); + ILInstr* pInstr = NewILInstr(); + IfNullRet(pInstr); + + pInstr->m_opcode = opcode; + + InsertBefore(&m_IL, pInstr); + + m_pOffsetToInstr[startOffset] = pInstr; + + switch (flags) + { + case 0: + break; + case 1: + pInstr->m_Arg8 = *(UNALIGNED INT8*) &(pIL[offset]); + break; + case 2: + pInstr->m_Arg16 = *(UNALIGNED INT16*) &(pIL[offset]); + break; + case 4: + pInstr->m_Arg32 = *(UNALIGNED INT32*) &(pIL[offset]); + break; + case 8: + pInstr->m_Arg64 = *(UNALIGNED INT64*) &(pIL[offset]); + break; + case 1 | OPCODEFLAGS_BranchTarget: + pInstr->m_Arg32 = offset + 1 + *(UNALIGNED INT8*) &(pIL[offset]); + fBranch = true; + break; + case 4 | OPCODEFLAGS_BranchTarget: + pInstr->m_Arg32 = offset + 4 + *(UNALIGNED INT32*) &(pIL[offset]); + fBranch = true; + break; + case 0 | OPCODEFLAGS_Switch: + { + if (offset + sizeof(INT32) > m_CodeSize) + { + return COR_E_INVALIDPROGRAM; + } - unsigned base = offset + nTargets * sizeof(INT32); + unsigned nTargets = *(UNALIGNED INT32*) &(pIL[offset]); + pInstr->m_Arg32 = nTargets; + offset += sizeof(INT32); - for (unsigned iTarget = 0; iTarget < nTargets; iTarget++) { - if (offset + sizeof(INT32) > m_CodeSize) { - return COR_E_INVALIDPROGRAM; - } + unsigned base = offset + nTargets * sizeof(INT32); + + for (unsigned iTarget = 0; iTarget < nTargets; iTarget++) + { + if (offset + sizeof(INT32) > m_CodeSize) + { + return COR_E_INVALIDPROGRAM; + } - pInstr = NewILInstr(); - IfNullRet(pInstr); + pInstr = NewILInstr(); + IfNullRet(pInstr); - pInstr->m_opcode = CEE_SWITCH_ARG; + pInstr->m_opcode = CEE_SWITCH_ARG; - pInstr->m_Arg32 = base + *(UNALIGNED INT32*)&(pIL[offset]); - offset += sizeof(INT32); + pInstr->m_Arg32 = base + *(UNALIGNED INT32*) &(pIL[offset]); + offset += sizeof(INT32); - InsertBefore(&m_IL, pInstr); + InsertBefore(&m_IL, pInstr); + } + fBranch = true; + break; + } + default: + return COR_E_INVALIDPROGRAM; } - fBranch = true; - break; - } - default: + offset += size; + } + + if (offset != m_CodeSize) + { return COR_E_INVALIDPROGRAM; } - offset += size; - } - if (offset != m_CodeSize) { - return COR_E_INVALIDPROGRAM; - } - - if (fBranch) { - // Go over all control flow instructions and resolve the targets - for (ILInstr* pInstr = m_IL.m_pNext; pInstr != &m_IL; - pInstr = pInstr->m_pNext) { - if (s_OpCodeFlags[pInstr->m_opcode] & OPCODEFLAGS_BranchTarget) { - IfFailRet(GetInstrFromOffset(pInstr->m_Arg32, &pInstr->m_pTarget)); - } + if (fBranch) + { + // Go over all control flow instructions and resolve the targets + for (ILInstr* pInstr = m_IL.m_pNext; pInstr != &m_IL; pInstr = pInstr->m_pNext) + { + if (s_OpCodeFlags[pInstr->m_opcode] & OPCODEFLAGS_BranchTarget) + { + IfFailRet(GetInstrFromOffset(pInstr->m_Arg32, &pInstr->m_pTarget)); + } + } } - } - return S_OK; + return S_OK; } -HRESULT ILRewriter::ImportEH(const COR_ILMETHOD_SECT_EH* pILEH, unsigned nEH) { - if(m_pEH != nullptr) - { - return COR_E_INVALIDOPERATION; - } +HRESULT ILRewriter::ImportEH(const COR_ILMETHOD_SECT_EH* pILEH, unsigned nEH) +{ + if (m_pEH != nullptr) + { + return COR_E_INVALIDOPERATION; + } - m_nEH = nEH; + m_nEH = nEH; - if (nEH == 0) return S_OK; + if (nEH == 0) return S_OK; - IfNullRet(m_pEH = new EHClause[m_nEH]); - for (unsigned iEH = 0; iEH < m_nEH; iEH++) { - // If the EH clause is in tiny form, the call to pILEH->EHClause() below - // will use this as a scratch buffer to expand the EH clause into its fat - // form. - COR_ILMETHOD_SECT_EH_CLAUSE_FAT scratch; + IfNullRet(m_pEH = new EHClause[m_nEH]); + for (unsigned iEH = 0; iEH < m_nEH; iEH++) + { + // If the EH clause is in tiny form, the call to pILEH->EHClause() below + // will use this as a scratch buffer to expand the EH clause into its fat + // form. + COR_ILMETHOD_SECT_EH_CLAUSE_FAT scratch; - const COR_ILMETHOD_SECT_EH_CLAUSE_FAT* ehInfo; - ehInfo = (COR_ILMETHOD_SECT_EH_CLAUSE_FAT*)pILEH->EHClause(iEH, &scratch); + const COR_ILMETHOD_SECT_EH_CLAUSE_FAT* ehInfo; + ehInfo = (COR_ILMETHOD_SECT_EH_CLAUSE_FAT*) pILEH->EHClause(iEH, &scratch); - EHClause* clause = &(m_pEH[iEH]); - clause->m_Flags = ehInfo->GetFlags(); - ILInstr* pInstr = nullptr; + EHClause* clause = &(m_pEH[iEH]); + clause->m_Flags = ehInfo->GetFlags(); + ILInstr* pInstr = nullptr; - IfFailRet(GetInstrFromOffset(ehInfo->GetTryOffset(), &pInstr)); - clause->m_pTryBegin = pInstr; + IfFailRet(GetInstrFromOffset(ehInfo->GetTryOffset(), &pInstr)); + clause->m_pTryBegin = pInstr; - IfFailRet(GetInstrFromOffset(ehInfo->GetTryOffset() + ehInfo->GetTryLength(), &pInstr)); - clause->m_pTryEnd = pInstr; + IfFailRet(GetInstrFromOffset(ehInfo->GetTryOffset() + ehInfo->GetTryLength(), &pInstr)); + clause->m_pTryEnd = pInstr; - IfFailRet(GetInstrFromOffset(ehInfo->GetHandlerOffset(), &pInstr)); - clause->m_pHandlerBegin = pInstr; + IfFailRet(GetInstrFromOffset(ehInfo->GetHandlerOffset(), &pInstr)); + clause->m_pHandlerBegin = pInstr; - IfFailRet(GetInstrFromOffset(ehInfo->GetHandlerOffset() + ehInfo->GetHandlerLength(), &pInstr)); - clause->m_pHandlerEnd = pInstr->m_pPrev; + IfFailRet(GetInstrFromOffset(ehInfo->GetHandlerOffset() + ehInfo->GetHandlerLength(), &pInstr)); + clause->m_pHandlerEnd = pInstr->m_pPrev; - if ((clause->m_Flags & COR_ILEXCEPTION_CLAUSE_FILTER) == 0) { - clause->m_ClassToken = ehInfo->GetClassToken(); - } else { - IfFailRet(GetInstrFromOffset(ehInfo->GetFilterOffset(), &pInstr)); - clause->m_pFilter = pInstr; + if ((clause->m_Flags & COR_ILEXCEPTION_CLAUSE_FILTER) == 0) + { + clause->m_ClassToken = ehInfo->GetClassToken(); + } + else + { + IfFailRet(GetInstrFromOffset(ehInfo->GetFilterOffset(), &pInstr)); + clause->m_pFilter = pInstr; + } } - } - return S_OK; + return S_OK; } -ILInstr* ILRewriter::NewILInstr() { - m_nInstrs++; - return new ILInstr(); +ILInstr* ILRewriter::NewILInstr() +{ + m_nInstrs++; + return new ILInstr(); } -HRESULT ILRewriter::GetInstrFromOffset(unsigned offset, ILInstr** ppInstr) { - if (offset <= m_CodeSize) { - ILInstr* result = m_pOffsetToInstr[offset]; +HRESULT ILRewriter::GetInstrFromOffset(unsigned offset, ILInstr** ppInstr) +{ + if (offset <= m_CodeSize) + { + ILInstr* result = m_pOffsetToInstr[offset]; - if(result != nullptr) { - *ppInstr = result; - return S_OK; + if (result != nullptr) + { + *ppInstr = result; + return S_OK; + } } - } - return COR_E_INVALIDPROGRAM; + return COR_E_INVALIDPROGRAM; } -void ILRewriter::InsertBefore(ILInstr* pWhere, ILInstr* pWhat) { - pWhat->m_pNext = pWhere; - pWhat->m_pPrev = pWhere->m_pPrev; +void ILRewriter::InsertBefore(ILInstr* pWhere, ILInstr* pWhat) +{ + pWhat->m_pNext = pWhere; + pWhat->m_pPrev = pWhere->m_pPrev; - pWhat->m_pNext->m_pPrev = pWhat; - pWhat->m_pPrev->m_pNext = pWhat; + pWhat->m_pNext->m_pPrev = pWhat; + pWhat->m_pPrev->m_pNext = pWhat; - AdjustState(pWhat); + AdjustState(pWhat); } -void ILRewriter::InsertAfter(ILInstr* pWhere, ILInstr* pWhat) { - pWhat->m_pNext = pWhere->m_pNext; - pWhat->m_pPrev = pWhere; +void ILRewriter::InsertAfter(ILInstr* pWhere, ILInstr* pWhat) +{ + pWhat->m_pNext = pWhere->m_pNext; + pWhat->m_pPrev = pWhere; - pWhat->m_pNext->m_pPrev = pWhat; - pWhat->m_pPrev->m_pNext = pWhat; + pWhat->m_pNext->m_pPrev = pWhat; + pWhat->m_pPrev->m_pNext = pWhat; - AdjustState(pWhat); + AdjustState(pWhat); } -void ILRewriter::AdjustState(ILInstr* pNewInstr) { - m_maxStack += k_rgnStackPushes[pNewInstr->m_opcode]; +void ILRewriter::AdjustState(ILInstr* pNewInstr) +{ + m_maxStack += k_rgnStackPushes[pNewInstr->m_opcode]; } -ILInstr* ILRewriter::GetILList() { return &m_IL; } +ILInstr* ILRewriter::GetILList() +{ + return &m_IL; +} -HRESULT ILRewriter::Export() { - // One instruction produces 2 + sizeof(native int) bytes in the worst case - // which can be 10 bytes for 64-bit. For simplification we just use 10 here. - unsigned maxSize = m_nInstrs * 10; +HRESULT ILRewriter::Export() +{ + // One instruction produces 2 + sizeof(native int) bytes in the worst case + // which can be 10 bytes for 64-bit. For simplification we just use 10 here. + unsigned maxSize = m_nInstrs * 10; - m_pOutputBuffer = new BYTE[maxSize]; - IfNullRet(m_pOutputBuffer); + m_pOutputBuffer = new BYTE[maxSize]; + IfNullRet(m_pOutputBuffer); again: - BYTE* pIL = m_pOutputBuffer; - - bool fBranch = false; - unsigned offset = 0; + BYTE* pIL = m_pOutputBuffer; - // Go over all instructions and produce code for them - for (ILInstr* pInstr = m_IL.m_pNext; pInstr != &m_IL; - pInstr = pInstr->m_pNext) { + bool fBranch = false; + unsigned offset = 0; - if(offset >= maxSize) + // Go over all instructions and produce code for them + for (ILInstr* pInstr = m_IL.m_pNext; pInstr != &m_IL; pInstr = pInstr->m_pNext) { - return COR_E_INDEXOUTOFRANGE; - } - pInstr->m_offset = offset; + if (offset >= maxSize) + { + return COR_E_INDEXOUTOFRANGE; + } + + pInstr->m_offset = offset; + + unsigned opcode = pInstr->m_opcode; + if (opcode < CEE_COUNT) + { + // CEE_PREFIX1 refers not to instruction prefixes (like tail.), but to + // the lead byte of multi-byte opcodes. For now, the only lead byte + // supported is CEE_PREFIX1 = 0xFE. + if (opcode >= 0x100) m_pOutputBuffer[offset++] = CEE_PREFIX1; - unsigned opcode = pInstr->m_opcode; - if (opcode < CEE_COUNT) { - // CEE_PREFIX1 refers not to instruction prefixes (like tail.), but to - // the lead byte of multi-byte opcodes. For now, the only lead byte - // supported is CEE_PREFIX1 = 0xFE. - if (opcode >= 0x100) m_pOutputBuffer[offset++] = CEE_PREFIX1; + // This appears to depend on an implicit conversion from + // unsigned opcode down to BYTE, to deliberately lose data and have + // opcode >= 0x100 wrap around to 0. + m_pOutputBuffer[offset++] = (opcode & 0xFF); + } + + if (pInstr->m_opcode >= (sizeof(s_OpCodeFlags) / sizeof(BYTE))) + { + return COR_E_INVALIDPROGRAM; + } - // This appears to depend on an implicit conversion from - // unsigned opcode down to BYTE, to deliberately lose data and have - // opcode >= 0x100 wrap around to 0. - m_pOutputBuffer[offset++] = (opcode & 0xFF); + BYTE flags = s_OpCodeFlags[pInstr->m_opcode]; + switch (flags) + { + case 0: + break; + case 1: + *(UNALIGNED INT8*) &(pIL[offset]) = pInstr->m_Arg8; + break; + case 2: + *(UNALIGNED INT16*) &(pIL[offset]) = pInstr->m_Arg16; + break; + case 4: + *(UNALIGNED INT32*) &(pIL[offset]) = pInstr->m_Arg32; + break; + case 8: + *(UNALIGNED INT64*) &(pIL[offset]) = pInstr->m_Arg64; + break; + case 1 | OPCODEFLAGS_BranchTarget: + fBranch = true; + break; + case 4 | OPCODEFLAGS_BranchTarget: + fBranch = true; + break; + case 0 | OPCODEFLAGS_Switch: + *(UNALIGNED INT32*) &(pIL[offset]) = pInstr->m_Arg32; + offset += sizeof(INT32); + break; + default: + return COR_E_INVALIDPROGRAM; + } + offset += (flags & OPCODEFLAGS_SizeMask); } + m_IL.m_offset = offset; - if (pInstr->m_opcode >= (sizeof(s_OpCodeFlags) / sizeof(BYTE))) + if (fBranch) { - return COR_E_INVALIDPROGRAM; - } + bool fTryAgain = false; + unsigned switchBase = 0; + + // Go over all control flow instructions and resolve the targets + for (ILInstr* pInstr = m_IL.m_pNext; pInstr != &m_IL; pInstr = pInstr->m_pNext) + { + unsigned opcode = pInstr->m_opcode; + + if (pInstr->m_opcode == CEE_SWITCH) + { + switchBase = pInstr->m_offset + 1 + sizeof(INT32) * (pInstr->m_Arg32 + 1); + continue; + } + if (opcode == CEE_SWITCH_ARG) + { + // Switch args are special + *(UNALIGNED INT32*) &(pIL[pInstr->m_offset]) = pInstr->m_pTarget->m_offset - switchBase; + continue; + } - BYTE flags = s_OpCodeFlags[pInstr->m_opcode]; - switch (flags) { - case 0: - break; - case 1: - *(UNALIGNED INT8*)&(pIL[offset]) = pInstr->m_Arg8; - break; - case 2: - *(UNALIGNED INT16*)&(pIL[offset]) = pInstr->m_Arg16; - break; - case 4: - *(UNALIGNED INT32*)&(pIL[offset]) = pInstr->m_Arg32; - break; - case 8: - *(UNALIGNED INT64*)&(pIL[offset]) = pInstr->m_Arg64; - break; - case 1 | OPCODEFLAGS_BranchTarget: - fBranch = true; - break; - case 4 | OPCODEFLAGS_BranchTarget: - fBranch = true; - break; - case 0 | OPCODEFLAGS_Switch: - *(UNALIGNED INT32*)&(pIL[offset]) = pInstr->m_Arg32; - offset += sizeof(INT32); - break; - default: - return COR_E_INVALIDPROGRAM; - } - offset += (flags & OPCODEFLAGS_SizeMask); - } - m_IL.m_offset = offset; - - if (fBranch) { - bool fTryAgain = false; - unsigned switchBase = 0; - - // Go over all control flow instructions and resolve the targets - for (ILInstr* pInstr = m_IL.m_pNext; pInstr != &m_IL; - pInstr = pInstr->m_pNext) { - unsigned opcode = pInstr->m_opcode; - - if (pInstr->m_opcode == CEE_SWITCH) { - switchBase = - pInstr->m_offset + 1 + sizeof(INT32) * (pInstr->m_Arg32 + 1); - continue; - } - if (opcode == CEE_SWITCH_ARG) { - // Switch args are special - *(UNALIGNED INT32*)&(pIL[pInstr->m_offset]) = - pInstr->m_pTarget->m_offset - switchBase; - continue; - } - - BYTE flags = s_OpCodeFlags[pInstr->m_opcode]; - - if (flags & OPCODEFLAGS_BranchTarget) { - int delta = pInstr->m_pTarget->m_offset - pInstr->m_pNext->m_offset; - - switch (flags) { - case 1 | OPCODEFLAGS_BranchTarget: - // Check if delta is too big to fit into an INT8. - // - // (see #pragma at top of file) - if ((INT8)delta != delta) { - if (opcode == CEE_LEAVE_S) { - pInstr->m_opcode = CEE_LEAVE; - } else { - if(!(opcode >= CEE_BR_S && opcode <= CEE_BLT_UN_S)) - { - return COR_E_INVALIDPROGRAM; - } + BYTE flags = s_OpCodeFlags[pInstr->m_opcode]; - pInstr->m_opcode = opcode - CEE_BR_S + CEE_BR; + if (flags & OPCODEFLAGS_BranchTarget) + { + int delta = pInstr->m_pTarget->m_offset - pInstr->m_pNext->m_offset; - if(!(pInstr->m_opcode >= CEE_BR && pInstr->m_opcode <= CEE_BLT_UN)) + switch (flags) { - return COR_E_INVALIDPROGRAM; + case 1 | OPCODEFLAGS_BranchTarget: + // Check if delta is too big to fit into an INT8. + // + // (see #pragma at top of file) + if ((INT8) delta != delta) + { + if (opcode == CEE_LEAVE_S) + { + pInstr->m_opcode = CEE_LEAVE; + } + else + { + if (!(opcode >= CEE_BR_S && opcode <= CEE_BLT_UN_S)) + { + return COR_E_INVALIDPROGRAM; + } + + pInstr->m_opcode = opcode - CEE_BR_S + CEE_BR; + + if (!(pInstr->m_opcode >= CEE_BR && pInstr->m_opcode <= CEE_BLT_UN)) + { + return COR_E_INVALIDPROGRAM; + } + } + fTryAgain = true; + continue; + } + *(UNALIGNED INT8*) &(pIL[pInstr->m_pNext->m_offset - sizeof(INT8)]) = delta; + break; + case 4 | OPCODEFLAGS_BranchTarget: + *(UNALIGNED INT32*) &(pIL[pInstr->m_pNext->m_offset - sizeof(INT32)]) = delta; + break; + default: + return COR_E_INVALIDPROGRAM; } - } - fTryAgain = true; - continue; } - *(UNALIGNED INT8*)&(pIL[pInstr->m_pNext->m_offset - sizeof(INT8)]) = - delta; - break; - case 4 | OPCODEFLAGS_BranchTarget: - *(UNALIGNED INT32*)&( - pIL[pInstr->m_pNext->m_offset - sizeof(INT32)]) = delta; - break; - default: - return COR_E_INVALIDPROGRAM; } - } + + // Do the whole thing again if we changed the size of some branch targets + if (fTryAgain) goto again; } - // Do the whole thing again if we changed the size of some branch targets - if (fTryAgain) goto again; - } - - unsigned codeSize = offset; - unsigned totalSize; - LPBYTE pBody = NULL; - if (m_fGenerateTinyHeader) { - // Make sure we can fit in a tiny header - if (codeSize >= 64) return E_FAIL; - - totalSize = sizeof(IMAGE_COR_ILMETHOD_TINY) + codeSize; - pBody = AllocateILMemory(totalSize); - IfNullRet(pBody); - - BYTE* pCurrent = pBody; - - // Here's the tiny header - *pCurrent = (BYTE)(CorILMethod_TinyFormat | (codeSize << 2)); - pCurrent += sizeof(IMAGE_COR_ILMETHOD_TINY); - - // And the body - CopyMemory(pCurrent, m_pOutputBuffer, codeSize); - } else { - // Use FAT header - - unsigned alignedCodeSize = (offset + 3) & ~3; - - totalSize = sizeof(IMAGE_COR_ILMETHOD_FAT) + alignedCodeSize + - (m_nEH ? (sizeof(IMAGE_COR_ILMETHOD_SECT_FAT) + - sizeof(IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT) * m_nEH) - : 0); - - pBody = AllocateILMemory(totalSize); - IfNullRet(pBody); - - BYTE* pCurrent = pBody; - - IMAGE_COR_ILMETHOD_FAT* pHeader = (IMAGE_COR_ILMETHOD_FAT*)pCurrent; - pHeader->Flags = - m_flags | (m_nEH ? CorILMethod_MoreSects : 0) | CorILMethod_FatFormat; - pHeader->Size = sizeof(IMAGE_COR_ILMETHOD_FAT) / sizeof(DWORD); - pHeader->MaxStack = m_maxStack; - pHeader->CodeSize = offset; - pHeader->LocalVarSigTok = m_tkLocalVarSig; - - pCurrent = (BYTE*)(pHeader + 1); - - CopyMemory(pCurrent, m_pOutputBuffer, codeSize); - pCurrent += alignedCodeSize; - - if (m_nEH != 0) { - IMAGE_COR_ILMETHOD_SECT_FAT* pEH = (IMAGE_COR_ILMETHOD_SECT_FAT*)pCurrent; - pEH->Kind = CorILMethod_Sect_EHTable | CorILMethod_Sect_FatFormat; - pEH->DataSize = - (unsigned)(sizeof(IMAGE_COR_ILMETHOD_SECT_FAT) + - sizeof(IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT) * m_nEH); - - pCurrent = (BYTE*)(pEH + 1); - - for (unsigned iEH = 0; iEH < m_nEH; iEH++) { - EHClause* pSrc = &(m_pEH[iEH]); - IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT* pDst = - (IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT*)pCurrent; - - pDst->Flags = pSrc->m_Flags; - pDst->TryOffset = pSrc->m_pTryBegin->m_offset; - pDst->TryLength = - pSrc->m_pTryEnd->m_offset - pSrc->m_pTryBegin->m_offset; - pDst->HandlerOffset = pSrc->m_pHandlerBegin->m_offset; - pDst->HandlerLength = pSrc->m_pHandlerEnd->m_pNext->m_offset - - pSrc->m_pHandlerBegin->m_offset; - if ((pSrc->m_Flags & COR_ILEXCEPTION_CLAUSE_FILTER) == 0) - pDst->ClassToken = pSrc->m_ClassToken; - else - pDst->FilterOffset = pSrc->m_pFilter->m_offset; + unsigned codeSize = offset; + unsigned totalSize; + LPBYTE pBody = NULL; + if (m_fGenerateTinyHeader) + { + // Make sure we can fit in a tiny header + if (codeSize >= 64) return E_FAIL; + + totalSize = sizeof(IMAGE_COR_ILMETHOD_TINY) + codeSize; + pBody = AllocateILMemory(totalSize); + IfNullRet(pBody); + + BYTE* pCurrent = pBody; + + // Here's the tiny header + *pCurrent = (BYTE)(CorILMethod_TinyFormat | (codeSize << 2)); + pCurrent += sizeof(IMAGE_COR_ILMETHOD_TINY); + + // And the body + CopyMemory(pCurrent, m_pOutputBuffer, codeSize); + } + else + { + // Use FAT header + + unsigned alignedCodeSize = (offset + 3) & ~3; + + totalSize = + sizeof(IMAGE_COR_ILMETHOD_FAT) + alignedCodeSize + + (m_nEH ? (sizeof(IMAGE_COR_ILMETHOD_SECT_FAT) + sizeof(IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT) * m_nEH) : 0); + + pBody = AllocateILMemory(totalSize); + IfNullRet(pBody); + + BYTE* pCurrent = pBody; + + IMAGE_COR_ILMETHOD_FAT* pHeader = (IMAGE_COR_ILMETHOD_FAT*) pCurrent; + pHeader->Flags = m_flags | (m_nEH ? CorILMethod_MoreSects : 0) | CorILMethod_FatFormat; + pHeader->Size = sizeof(IMAGE_COR_ILMETHOD_FAT) / sizeof(DWORD); + pHeader->MaxStack = m_maxStack; + pHeader->CodeSize = offset; + pHeader->LocalVarSigTok = m_tkLocalVarSig; + + pCurrent = (BYTE*) (pHeader + 1); + + CopyMemory(pCurrent, m_pOutputBuffer, codeSize); + pCurrent += alignedCodeSize; + + if (m_nEH != 0) + { + IMAGE_COR_ILMETHOD_SECT_FAT* pEH = (IMAGE_COR_ILMETHOD_SECT_FAT*) pCurrent; + pEH->Kind = CorILMethod_Sect_EHTable | CorILMethod_Sect_FatFormat; + pEH->DataSize = (unsigned) (sizeof(IMAGE_COR_ILMETHOD_SECT_FAT) + + sizeof(IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT) * m_nEH); + + pCurrent = (BYTE*) (pEH + 1); + + for (unsigned iEH = 0; iEH < m_nEH; iEH++) + { + EHClause* pSrc = &(m_pEH[iEH]); + IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT* pDst = (IMAGE_COR_ILMETHOD_SECT_EH_CLAUSE_FAT*) pCurrent; + + pDst->Flags = pSrc->m_Flags; + pDst->TryOffset = pSrc->m_pTryBegin->m_offset; + pDst->TryLength = pSrc->m_pTryEnd->m_offset - pSrc->m_pTryBegin->m_offset; + pDst->HandlerOffset = pSrc->m_pHandlerBegin->m_offset; + pDst->HandlerLength = pSrc->m_pHandlerEnd->m_pNext->m_offset - pSrc->m_pHandlerBegin->m_offset; + if ((pSrc->m_Flags & COR_ILEXCEPTION_CLAUSE_FILTER) == 0) + pDst->ClassToken = pSrc->m_ClassToken; + else + pDst->FilterOffset = pSrc->m_pFilter->m_offset; - pCurrent = (BYTE*)(pDst + 1); - } + pCurrent = (BYTE*) (pDst + 1); + } + } } - } - IfFailRet(SetILFunctionBody(totalSize, pBody)); - DeallocateILMemory(pBody); + IfFailRet(SetILFunctionBody(totalSize, pBody)); + DeallocateILMemory(pBody); - return S_OK; + return S_OK; } -HRESULT ILRewriter::SetILFunctionBody(unsigned size, LPBYTE pBody) { - if (m_pICorProfilerFunctionControl != nullptr) { - // We're supplying IL for a rejit, so use the rejit mechanism - IfFailRet(m_pICorProfilerFunctionControl->SetILFunctionBody(size, pBody)); - } else { - // "classic-style" instrumentation on first JIT, so use old mechanism - IfFailRet( - m_pICorProfilerInfo->SetILFunctionBody(m_moduleId, m_tkMethod, pBody)); - } - - return S_OK; +HRESULT ILRewriter::SetILFunctionBody(unsigned size, LPBYTE pBody) +{ + if (m_pICorProfilerFunctionControl != nullptr) + { + // We're supplying IL for a rejit, so use the rejit mechanism + IfFailRet(m_pICorProfilerFunctionControl->SetILFunctionBody(size, pBody)); + } + else + { + // "classic-style" instrumentation on first JIT, so use old mechanism + IfFailRet(m_pICorProfilerInfo->SetILFunctionBody(m_moduleId, m_tkMethod, pBody)); + } + + return S_OK; } -LPBYTE ILRewriter::AllocateILMemory(unsigned size) { - if (m_pICorProfilerFunctionControl != nullptr) { - // We're supplying IL for a rejit, so we can just allocate from - // the heap - return new BYTE[size]; - } +LPBYTE ILRewriter::AllocateILMemory(unsigned size) +{ + if (m_pICorProfilerFunctionControl != nullptr) + { + // We're supplying IL for a rejit, so we can just allocate from + // the heap + return new BYTE[size]; + } - // Else, this is "classic-style" instrumentation on first JIT, and - // need to use the CLR's IL allocator + // Else, this is "classic-style" instrumentation on first JIT, and + // need to use the CLR's IL allocator - if (FAILED(m_pICorProfilerInfo->GetILFunctionBodyAllocator( - m_moduleId, &m_pIMethodMalloc))) - return nullptr; + if (FAILED(m_pICorProfilerInfo->GetILFunctionBodyAllocator(m_moduleId, &m_pIMethodMalloc))) return nullptr; - return (LPBYTE)m_pIMethodMalloc->Alloc(size); + return (LPBYTE) m_pIMethodMalloc->Alloc(size); } -void ILRewriter::DeallocateILMemory(LPBYTE pBody) { - if (m_pICorProfilerFunctionControl == nullptr) { - // Old-style instrumentation does not provide a way to free up bytes - return; - } +void ILRewriter::DeallocateILMemory(LPBYTE pBody) +{ + if (m_pICorProfilerFunctionControl == nullptr) + { + // Old-style instrumentation does not provide a way to free up bytes + return; + } - delete[] pBody; + delete[] pBody; } -unsigned ILRewriter::GetMaxStackValue() { return m_maxStack; } +unsigned ILRewriter::GetMaxStackValue() +{ + return m_maxStack; +} diff --git a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.h b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.h index 2e6ee6a72a..1799656300 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.h +++ b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.h @@ -8,133 +8,138 @@ #include #include -typedef enum { +typedef enum +{ #define OPDEF(c, s, pop, push, args, type, l, s1, s2, ctrl) c, #include "opcode.def" #undef OPDEF - CEE_COUNT, - CEE_SWITCH_ARG, - // special internal instructions + CEE_COUNT, + CEE_SWITCH_ARG, + // special internal instructions } OPCODE; -struct ILInstr { - ILInstr* m_pNext; - ILInstr* m_pPrev; - - unsigned m_opcode; - unsigned m_offset; - - union { - ILInstr* m_pTarget; - INT8 m_Arg8; - INT16 m_Arg16; - INT32 m_Arg32; - INT64 m_Arg64; - }; +struct ILInstr +{ + ILInstr* m_pNext; + ILInstr* m_pPrev; + + unsigned m_opcode; + unsigned m_offset; + + union + { + ILInstr* m_pTarget; + INT8 m_Arg8; + INT16 m_Arg16; + INT32 m_Arg32; + INT64 m_Arg64; + }; }; -struct EHClause { - CorExceptionFlag m_Flags; - ILInstr* m_pTryBegin; - ILInstr* m_pTryEnd; - ILInstr* m_pHandlerBegin; // First instruction inside the handler - ILInstr* m_pHandlerEnd; // Last instruction inside the handler - union { - DWORD m_ClassToken; // use for type-based exception handlers - ILInstr* m_pFilter; // use for filter-based exception handlers - // (COR_ILEXCEPTION_CLAUSE_FILTER is set) - }; +struct EHClause +{ + CorExceptionFlag m_Flags; + ILInstr* m_pTryBegin; + ILInstr* m_pTryEnd; + ILInstr* m_pHandlerBegin; // First instruction inside the handler + ILInstr* m_pHandlerEnd; // Last instruction inside the handler + union + { + DWORD m_ClassToken; // use for type-based exception handlers + ILInstr* m_pFilter; // use for filter-based exception handlers + // (COR_ILEXCEPTION_CLAUSE_FILTER is set) + }; }; -class ILRewriter { - private: - ICorProfilerInfo* m_pICorProfilerInfo; - ICorProfilerFunctionControl* m_pICorProfilerFunctionControl; +class ILRewriter +{ +private: + ICorProfilerInfo* m_pICorProfilerInfo; + ICorProfilerFunctionControl* m_pICorProfilerFunctionControl; - ModuleID m_moduleId; - mdToken m_tkMethod; + ModuleID m_moduleId; + mdToken m_tkMethod; - mdToken m_tkLocalVarSig; - unsigned m_maxStack; - unsigned m_flags; - bool m_fGenerateTinyHeader; + mdToken m_tkLocalVarSig; + unsigned m_maxStack; + unsigned m_flags; + bool m_fGenerateTinyHeader; - ILInstr m_IL; // Double linked list of all il instructions + ILInstr m_IL; // Double linked list of all il instructions - unsigned m_nEH; - EHClause* m_pEH; + unsigned m_nEH; + EHClause* m_pEH; - // Helper table for importing. Sparse array that maps BYTE offset of - // beginning of an instruction to that instruction's ILInstr*. BYTE offsets - // that don't correspond to the beginning of an instruction are mapped to - // NULL. - ILInstr** m_pOffsetToInstr; - unsigned m_CodeSize; + // Helper table for importing. Sparse array that maps BYTE offset of + // beginning of an instruction to that instruction's ILInstr*. BYTE offsets + // that don't correspond to the beginning of an instruction are mapped to + // NULL. + ILInstr** m_pOffsetToInstr; + unsigned m_CodeSize; - unsigned m_nInstrs; + unsigned m_nInstrs; - BYTE* m_pOutputBuffer; + BYTE* m_pOutputBuffer; - IMethodMalloc* m_pIMethodMalloc; + IMethodMalloc* m_pIMethodMalloc; - public: - ILRewriter(ICorProfilerInfo* pICorProfilerInfo, - ICorProfilerFunctionControl* pICorProfilerFunctionControl, - ModuleID moduleID, mdToken tkMethod); +public: + ILRewriter(ICorProfilerInfo* pICorProfilerInfo, ICorProfilerFunctionControl* pICorProfilerFunctionControl, + ModuleID moduleID, mdToken tkMethod); - ~ILRewriter(); + ~ILRewriter(); - void InitializeTiny(); + void InitializeTiny(); - mdToken GetTkLocalVarSig(); + mdToken GetTkLocalVarSig(); - void SetTkLocalVarSig(mdToken tkLocalVarSig); + void SetTkLocalVarSig(mdToken tkLocalVarSig); - unsigned GetEHCount(); + unsigned GetEHCount(); - EHClause* GetEHPointer(); + EHClause* GetEHPointer(); - void SetEHClause(EHClause* ehPointer, unsigned ehLength); + void SetEHClause(EHClause* ehPointer, unsigned ehLength); - ///////////////////////////////////////////////////////////////////////////////////////////////// - // - // I M P O R T - // - //////////////////////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////////////////////// + // + // I M P O R T + // + //////////////////////////////////////////////////////////////////////////////////////////////// - HRESULT Import(); + HRESULT Import(); - HRESULT ImportIL(LPCBYTE pIL); + HRESULT ImportIL(LPCBYTE pIL); - HRESULT ImportEH(const COR_ILMETHOD_SECT_EH* pILEH, unsigned nEH); + HRESULT ImportEH(const COR_ILMETHOD_SECT_EH* pILEH, unsigned nEH); - ILInstr* NewILInstr(); + ILInstr* NewILInstr(); - HRESULT GetInstrFromOffset(unsigned offset, ILInstr** ppInstr); + HRESULT GetInstrFromOffset(unsigned offset, ILInstr** ppInstr); - void InsertBefore(ILInstr* pWhere, ILInstr* pWhat); + void InsertBefore(ILInstr* pWhere, ILInstr* pWhat); - void InsertAfter(ILInstr* pWhere, ILInstr* pWhat); + void InsertAfter(ILInstr* pWhere, ILInstr* pWhat); - void AdjustState(ILInstr* pNewInstr); + void AdjustState(ILInstr* pNewInstr); - ILInstr* GetILList(); + ILInstr* GetILList(); - ///////////////////////////////////////////////////////////////////////////////////////////////// - // - // E X P O R T - // - //////////////////////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////////////////////// + // + // E X P O R T + // + //////////////////////////////////////////////////////////////////////////////////////////////// - HRESULT Export(); + HRESULT Export(); - HRESULT SetILFunctionBody(unsigned size, LPBYTE pBody); + HRESULT SetILFunctionBody(unsigned size, LPBYTE pBody); - LPBYTE AllocateILMemory(unsigned size); + LPBYTE AllocateILMemory(unsigned size); - void DeallocateILMemory(LPBYTE pBody); + void DeallocateILMemory(LPBYTE pBody); - unsigned GetMaxStackValue(); + unsigned GetMaxStackValue(); }; -#endif // DD_CLR_PROFILER_IL_REWRITER_H_ +#endif // DD_CLR_PROFILER_IL_REWRITER_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter_wrapper.cpp b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter_wrapper.cpp index 33da8bea4c..dfb7902070 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter_wrapper.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter_wrapper.cpp @@ -1,276 +1,331 @@ #include "il_rewriter_wrapper.h" -ILRewriter* ILRewriterWrapper::GetILRewriter() const { return m_ILRewriter; } +ILRewriter* ILRewriterWrapper::GetILRewriter() const +{ + return m_ILRewriter; +} -ILInstr* ILRewriterWrapper::GetCurrentILInstr() const { return m_ILInstr; } +ILInstr* ILRewriterWrapper::GetCurrentILInstr() const +{ + return m_ILInstr; +} -void ILRewriterWrapper::SetILPosition(ILInstr* pILInstr) { - m_ILInstr = pILInstr; +void ILRewriterWrapper::SetILPosition(ILInstr* pILInstr) +{ + m_ILInstr = pILInstr; } -void ILRewriterWrapper::Pop() const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_POP; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); +void ILRewriterWrapper::Pop() const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_POP; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); } -ILInstr* ILRewriterWrapper::LoadNull() const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_LDNULL; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::LoadNull() const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_LDNULL; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -void ILRewriterWrapper::LoadInt64(const INT64 value) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_LDC_I8; - pNewInstr->m_Arg64 = value; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); +void ILRewriterWrapper::LoadInt64(const INT64 value) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_LDC_I8; + pNewInstr->m_Arg64 = value; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); } -void ILRewriterWrapper::LoadInt32(const INT32 value) const { - static const std::vector opcodes = { - CEE_LDC_I4_0, CEE_LDC_I4_1, CEE_LDC_I4_2, CEE_LDC_I4_3, CEE_LDC_I4_4, - CEE_LDC_I4_5, CEE_LDC_I4_6, CEE_LDC_I4_7, CEE_LDC_I4_8, - }; - - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - - if (value >= 0 && value <= 8) { - pNewInstr->m_opcode = opcodes[value]; - } else if (-128 <= value && value <= 127) { - pNewInstr->m_opcode = CEE_LDC_I4_S; - pNewInstr->m_Arg8 = static_cast(value); - } else { - pNewInstr->m_opcode = CEE_LDC_I4; - pNewInstr->m_Arg32 = value; - } - - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); +void ILRewriterWrapper::LoadInt32(const INT32 value) const +{ + static const std::vector opcodes = { + CEE_LDC_I4_0, CEE_LDC_I4_1, CEE_LDC_I4_2, CEE_LDC_I4_3, CEE_LDC_I4_4, + CEE_LDC_I4_5, CEE_LDC_I4_6, CEE_LDC_I4_7, CEE_LDC_I4_8, + }; + + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + + if (value >= 0 && value <= 8) + { + pNewInstr->m_opcode = opcodes[value]; + } + else if (-128 <= value && value <= 127) + { + pNewInstr->m_opcode = CEE_LDC_I4_S; + pNewInstr->m_Arg8 = static_cast(value); + } + else + { + pNewInstr->m_opcode = CEE_LDC_I4; + pNewInstr->m_Arg32 = value; + } + + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); } -ILInstr* ILRewriterWrapper::LoadArgument(const UINT16 index) const { - static const std::vector opcodes = { - CEE_LDARG_0, - CEE_LDARG_1, - CEE_LDARG_2, - CEE_LDARG_3, - }; - - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - - if (index >= 0 && index <= 3) { - pNewInstr->m_opcode = opcodes[index]; - } else if (index <= 255) { - pNewInstr->m_opcode = CEE_LDARG_S; - pNewInstr->m_Arg8 = static_cast(index); - } else { - pNewInstr->m_opcode = CEE_LDARG; - pNewInstr->m_Arg16 = index; - } - - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::LoadArgument(const UINT16 index) const +{ + static const std::vector opcodes = { + CEE_LDARG_0, + CEE_LDARG_1, + CEE_LDARG_2, + CEE_LDARG_3, + }; + + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + + if (index >= 0 && index <= 3) + { + pNewInstr->m_opcode = opcodes[index]; + } + else if (index <= 255) + { + pNewInstr->m_opcode = CEE_LDARG_S; + pNewInstr->m_Arg8 = static_cast(index); + } + else + { + pNewInstr->m_opcode = CEE_LDARG; + pNewInstr->m_Arg16 = index; + } + + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -void ILRewriterWrapper::Cast(const mdTypeRef type_ref) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_CASTCLASS; - pNewInstr->m_Arg32 = type_ref; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); +void ILRewriterWrapper::Cast(const mdTypeRef type_ref) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_CASTCLASS; + pNewInstr->m_Arg32 = type_ref; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); } -void ILRewriterWrapper::Box(const mdTypeRef type_ref) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_BOX; - pNewInstr->m_Arg32 = type_ref; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); +void ILRewriterWrapper::Box(const mdTypeRef type_ref) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_BOX; + pNewInstr->m_Arg32 = type_ref; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); } -void ILRewriterWrapper::UnboxAny(const mdTypeRef type_ref) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_UNBOX_ANY; - pNewInstr->m_Arg32 = type_ref; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); +void ILRewriterWrapper::UnboxAny(const mdTypeRef type_ref) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_UNBOX_ANY; + pNewInstr->m_Arg32 = type_ref; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); } -void ILRewriterWrapper::UnboxAnyAfter(const mdTypeRef type_ref) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_UNBOX_ANY; - pNewInstr->m_Arg32 = type_ref; - m_ILRewriter->InsertAfter(m_ILInstr, pNewInstr); +void ILRewriterWrapper::UnboxAnyAfter(const mdTypeRef type_ref) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_UNBOX_ANY; + pNewInstr->m_Arg32 = type_ref; + m_ILRewriter->InsertAfter(m_ILInstr, pNewInstr); } -void ILRewriterWrapper::CreateArray(const mdTypeRef type_ref, - const INT32 size) const { - mdTypeRef typeRef = mdTypeRefNil; - LoadInt32(size); +void ILRewriterWrapper::CreateArray(const mdTypeRef type_ref, const INT32 size) const +{ + mdTypeRef typeRef = mdTypeRefNil; + LoadInt32(size); - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_NEWARR; - pNewInstr->m_Arg32 = type_ref; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_NEWARR; + pNewInstr->m_Arg32 = type_ref; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); } -ILInstr* ILRewriterWrapper::CallMember(const mdMemberRef& member_ref, - const bool is_virtual) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = is_virtual ? CEE_CALLVIRT : CEE_CALL; - pNewInstr->m_Arg32 = member_ref; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::CallMember(const mdMemberRef& member_ref, const bool is_virtual) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = is_virtual ? CEE_CALLVIRT : CEE_CALL; + pNewInstr->m_Arg32 = member_ref; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -void ILRewriterWrapper::Duplicate() const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_DUP; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); +void ILRewriterWrapper::Duplicate() const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_DUP; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); } -void ILRewriterWrapper::BeginLoadValueIntoArray(const INT32 arrayIndex) const { - // duplicate the array reference - Duplicate(); +void ILRewriterWrapper::BeginLoadValueIntoArray(const INT32 arrayIndex) const +{ + // duplicate the array reference + Duplicate(); - // load the specified array index - LoadInt32(arrayIndex); + // load the specified array index + LoadInt32(arrayIndex); } -void ILRewriterWrapper::EndLoadValueIntoArray() const { - // stelem.ref (store value into array at the specified index) - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_STELEM_REF; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); +void ILRewriterWrapper::EndLoadValueIntoArray() const +{ + // stelem.ref (store value into array at the specified index) + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_STELEM_REF; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); } -bool ILRewriterWrapper::ReplaceMethodCalls( - const mdMemberRef old_method_ref, const mdMemberRef new_method_ref) const { - bool modified = false; - - for (ILInstr* pInstr = m_ILRewriter->GetILList()->m_pNext; - pInstr != m_ILRewriter->GetILList(); pInstr = pInstr->m_pNext) { - if ((pInstr->m_opcode == CEE_CALL || pInstr->m_opcode == CEE_CALLVIRT) && - pInstr->m_Arg32 == static_cast(old_method_ref)) { - pInstr->m_opcode = CEE_CALL; - pInstr->m_Arg32 = new_method_ref; - - modified = true; +bool ILRewriterWrapper::ReplaceMethodCalls(const mdMemberRef old_method_ref, const mdMemberRef new_method_ref) const +{ + bool modified = false; + + for (ILInstr* pInstr = m_ILRewriter->GetILList()->m_pNext; pInstr != m_ILRewriter->GetILList(); + pInstr = pInstr->m_pNext) + { + if ((pInstr->m_opcode == CEE_CALL || pInstr->m_opcode == CEE_CALLVIRT) && + pInstr->m_Arg32 == static_cast(old_method_ref)) + { + pInstr->m_opcode = CEE_CALL; + pInstr->m_Arg32 = new_method_ref; + + modified = true; + } } - } - return modified; + return modified; } -ILInstr* ILRewriterWrapper::LoadToken(mdToken token) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_LDTOKEN; - pNewInstr->m_Arg32 = token; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::LoadToken(mdToken token) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_LDTOKEN; + pNewInstr->m_Arg32 = token; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::LoadObj(mdToken token) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_LDOBJ; - pNewInstr->m_Arg32 = token; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::LoadObj(mdToken token) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_LDOBJ; + pNewInstr->m_Arg32 = token; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::StLocal(unsigned index) const { - static const std::vector opcodes = { - CEE_STLOC_0, - CEE_STLOC_1, - CEE_STLOC_2, - CEE_STLOC_3, - }; - - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - if (index <= 3) { - pNewInstr->m_opcode = opcodes[index]; - } else if (index <= 255) { - pNewInstr->m_opcode = CEE_STLOC_S; - pNewInstr->m_Arg8 = static_cast(index); - } else { - pNewInstr->m_opcode = CEE_STLOC; - pNewInstr->m_Arg16 = index; - } - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::StLocal(unsigned index) const +{ + static const std::vector opcodes = { + CEE_STLOC_0, + CEE_STLOC_1, + CEE_STLOC_2, + CEE_STLOC_3, + }; + + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + if (index <= 3) + { + pNewInstr->m_opcode = opcodes[index]; + } + else if (index <= 255) + { + pNewInstr->m_opcode = CEE_STLOC_S; + pNewInstr->m_Arg8 = static_cast(index); + } + else + { + pNewInstr->m_opcode = CEE_STLOC; + pNewInstr->m_Arg16 = index; + } + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::LoadLocal(unsigned index) const { - static const std::vector opcodes = { - CEE_LDLOC_0, - CEE_LDLOC_1, - CEE_LDLOC_2, - CEE_LDLOC_3, - }; - - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - if (index <= 3) { - pNewInstr->m_opcode = opcodes[index]; - } else if (index <= 255) { - pNewInstr->m_opcode = CEE_LDLOC_S; - pNewInstr->m_Arg8 = static_cast(index); - } else { - pNewInstr->m_opcode = CEE_LDLOC; - pNewInstr->m_Arg16 = index; - } - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::LoadLocal(unsigned index) const +{ + static const std::vector opcodes = { + CEE_LDLOC_0, + CEE_LDLOC_1, + CEE_LDLOC_2, + CEE_LDLOC_3, + }; + + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + if (index <= 3) + { + pNewInstr->m_opcode = opcodes[index]; + } + else if (index <= 255) + { + pNewInstr->m_opcode = CEE_LDLOC_S; + pNewInstr->m_Arg8 = static_cast(index); + } + else + { + pNewInstr->m_opcode = CEE_LDLOC; + pNewInstr->m_Arg16 = index; + } + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::LoadLocalAddress(unsigned index) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - if (index <= 255) { - pNewInstr->m_opcode = CEE_LDLOCA_S; - pNewInstr->m_Arg8 = static_cast(index); - } else { - pNewInstr->m_opcode = CEE_LDLOCA; - pNewInstr->m_Arg16 = index; - } - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::LoadLocalAddress(unsigned index) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + if (index <= 255) + { + pNewInstr->m_opcode = CEE_LDLOCA_S; + pNewInstr->m_Arg8 = static_cast(index); + } + else + { + pNewInstr->m_opcode = CEE_LDLOCA; + pNewInstr->m_Arg16 = index; + } + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::Return() const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_RET; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::Return() const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_RET; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::Rethrow() const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_RETHROW; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::Rethrow() const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_RETHROW; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::EndFinally() const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_ENDFINALLY; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::EndFinally() const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_ENDFINALLY; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::NOP() const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_NOP; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::NOP() const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_NOP; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::CreateInstr(unsigned opCode) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = opCode; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::CreateInstr(unsigned opCode) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = opCode; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } -ILInstr* ILRewriterWrapper::InitObj(mdTypeRef type_ref) const { - ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); - pNewInstr->m_opcode = CEE_INITOBJ; - pNewInstr->m_Arg32 = type_ref; - m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); - return pNewInstr; +ILInstr* ILRewriterWrapper::InitObj(mdTypeRef type_ref) const +{ + ILInstr* pNewInstr = m_ILRewriter->NewILInstr(); + pNewInstr->m_opcode = CEE_INITOBJ; + pNewInstr->m_Arg32 = type_ref; + m_ILRewriter->InsertBefore(m_ILInstr, pNewInstr); + return pNewInstr; } \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter_wrapper.h b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter_wrapper.h index 7d37db2498..ed34a8fab2 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter_wrapper.h +++ b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter_wrapper.h @@ -4,46 +4,47 @@ #include "il_rewriter.h" #include "module_metadata.h" -class ILRewriterWrapper { - private: - ILRewriter* const m_ILRewriter; - ILInstr* m_ILInstr; +class ILRewriterWrapper +{ +private: + ILRewriter* const m_ILRewriter; + ILInstr* m_ILInstr; - public: - ILRewriterWrapper(ILRewriter* const il_rewriter) - : m_ILRewriter(il_rewriter), m_ILInstr(nullptr) {} +public: + ILRewriterWrapper(ILRewriter* const il_rewriter) : m_ILRewriter(il_rewriter), m_ILInstr(nullptr) + { + } - ILRewriter* GetILRewriter() const; - ILInstr* GetCurrentILInstr() const; - void SetILPosition(ILInstr* pILInstr); - void Pop() const; - ILInstr* LoadNull() const; - void LoadInt64(INT64 value) const; - void LoadInt32(INT32 value) const; - ILInstr* LoadArgument(UINT16 index) const; - void Cast(mdTypeRef type_ref) const; - void Box(mdTypeRef type_ref) const; - void UnboxAny(mdTypeRef type_ref) const; - void UnboxAnyAfter(mdTypeRef type_ref) const; - void CreateArray(mdTypeRef type_ref, INT32 size) const; - ILInstr* CallMember(const mdMemberRef& member_ref, bool is_virtual) const; - void Duplicate() const; - void BeginLoadValueIntoArray(INT32 arrayIndex) const; - void EndLoadValueIntoArray() const; - bool ReplaceMethodCalls(mdMemberRef old_method_ref, - mdMemberRef new_method_ref) const; - ILInstr* LoadToken(mdToken token) const; - ILInstr* LoadObj(mdToken token) const; - ILInstr* StLocal(unsigned index) const; - ILInstr* LoadLocal(unsigned index) const; - ILInstr* LoadLocalAddress(unsigned index) const; - ILInstr* Return() const; - ILInstr* NOP() const; - ILInstr* Rethrow() const; - ILInstr* EndFinally() const; + ILRewriter* GetILRewriter() const; + ILInstr* GetCurrentILInstr() const; + void SetILPosition(ILInstr* pILInstr); + void Pop() const; + ILInstr* LoadNull() const; + void LoadInt64(INT64 value) const; + void LoadInt32(INT32 value) const; + ILInstr* LoadArgument(UINT16 index) const; + void Cast(mdTypeRef type_ref) const; + void Box(mdTypeRef type_ref) const; + void UnboxAny(mdTypeRef type_ref) const; + void UnboxAnyAfter(mdTypeRef type_ref) const; + void CreateArray(mdTypeRef type_ref, INT32 size) const; + ILInstr* CallMember(const mdMemberRef& member_ref, bool is_virtual) const; + void Duplicate() const; + void BeginLoadValueIntoArray(INT32 arrayIndex) const; + void EndLoadValueIntoArray() const; + bool ReplaceMethodCalls(mdMemberRef old_method_ref, mdMemberRef new_method_ref) const; + ILInstr* LoadToken(mdToken token) const; + ILInstr* LoadObj(mdToken token) const; + ILInstr* StLocal(unsigned index) const; + ILInstr* LoadLocal(unsigned index) const; + ILInstr* LoadLocalAddress(unsigned index) const; + ILInstr* Return() const; + ILInstr* NOP() const; + ILInstr* Rethrow() const; + ILInstr* EndFinally() const; - ILInstr* CreateInstr(unsigned opCode) const; - ILInstr* InitObj(mdTypeRef type_ref) const; + ILInstr* CreateInstr(unsigned opCode) const; + ILInstr* InitObj(mdTypeRef type_ref) const; }; -#endif // DD_CLR_PROFILER_IL_REWRITER_WRAPPER_H_ +#endif // DD_CLR_PROFILER_IL_REWRITER_WRAPPER_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/integration.cpp b/src/Datadog.Trace.ClrProfiler.Native/integration.cpp index a28519f0de..de3d380d0a 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/integration.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/integration.cpp @@ -10,122 +10,137 @@ #include "util.h" -namespace trace { - -AssemblyReference::AssemblyReference(const WSTRING& str) - : name(GetNameFromAssemblyReferenceString(str)), - version(GetVersionFromAssemblyReferenceString(str)), - locale(GetLocaleFromAssemblyReferenceString(str)), - public_key(GetPublicKeyFromAssemblyReferenceString(str)) {} +namespace trace +{ + +AssemblyReference::AssemblyReference(const WSTRING& str) : + name(GetNameFromAssemblyReferenceString(str)), + version(GetVersionFromAssemblyReferenceString(str)), + locale(GetLocaleFromAssemblyReferenceString(str)), + public_key(GetPublicKeyFromAssemblyReferenceString(str)) +{ +} -namespace { +namespace +{ -WSTRING GetNameFromAssemblyReferenceString(const WSTRING& wstr) { - WSTRING name = wstr; + WSTRING GetNameFromAssemblyReferenceString(const WSTRING& wstr) + { + WSTRING name = wstr; - auto pos = name.find(WStr(',')); - if (pos != WSTRING::npos) { - name = name.substr(0, pos); - } + auto pos = name.find(WStr(',')); + if (pos != WSTRING::npos) + { + name = name.substr(0, pos); + } - // strip spaces - pos = name.rfind(WStr(' ')); - if (pos != WSTRING::npos) { - name = name.substr(0, pos); - } + // strip spaces + pos = name.rfind(WStr(' ')); + if (pos != WSTRING::npos) + { + name = name.substr(0, pos); + } - return name; -} + return name; + } -Version GetVersionFromAssemblyReferenceString(const WSTRING& str) { - unsigned short major = 0; - unsigned short minor = 0; - unsigned short build = 0; - unsigned short revision = 0; + Version GetVersionFromAssemblyReferenceString(const WSTRING& str) + { + unsigned short major = 0; + unsigned short minor = 0; + unsigned short build = 0; + unsigned short revision = 0; #ifdef _WIN32 - static auto re = - std::wregex(WStr("Version=([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+)")); + static auto re = std::wregex(WStr("Version=([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+)")); - std::wsmatch match; - if (std::regex_search(str, match, re) && match.size() == 5) { - WSTRINGSTREAM(match.str(1)) >> major; - WSTRINGSTREAM(match.str(2)) >> minor; - WSTRINGSTREAM(match.str(3)) >> build; - WSTRINGSTREAM(match.str(4)) >> revision; - } + std::wsmatch match; + if (std::regex_search(str, match, re) && match.size() == 5) + { + WSTRINGSTREAM(match.str(1)) >> major; + WSTRINGSTREAM(match.str(2)) >> minor; + WSTRINGSTREAM(match.str(3)) >> build; + WSTRINGSTREAM(match.str(4)) >> revision; + } #else - static re2::RE2 re("Version=([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+)", - RE2::Quiet); - re2::RE2::FullMatch(ToString(str), re, &major, &minor, &build, &revision); + static re2::RE2 re("Version=([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+)", RE2::Quiet); + re2::RE2::FullMatch(ToString(str), re, &major, &minor, &build, &revision); #endif - return {major, minor, build, revision}; -} + return {major, minor, build, revision}; + } -WSTRING GetLocaleFromAssemblyReferenceString(const WSTRING& str) { - WSTRING locale = WStr("neutral"); + WSTRING GetLocaleFromAssemblyReferenceString(const WSTRING& str) + { + WSTRING locale = WStr("neutral"); #ifdef _WIN32 - static auto re = std::wregex(WStr("Culture=([a-zA-Z0-9]+)")); - std::wsmatch match; - if (std::regex_search(str, match, re) && match.size() == 2) { - locale = match.str(1); - } + static auto re = std::wregex(WStr("Culture=([a-zA-Z0-9]+)")); + std::wsmatch match; + if (std::regex_search(str, match, re) && match.size() == 2) + { + locale = match.str(1); + } #else - static re2::RE2 re("Culture=([a-zA-Z0-9]+)", RE2::Quiet); + static re2::RE2 re("Culture=([a-zA-Z0-9]+)", RE2::Quiet); - std::string match; - if (re2::RE2::FullMatch(ToString(str), re, &match)) { - locale = ToWSTRING(match); - } + std::string match; + if (re2::RE2::FullMatch(ToString(str), re, &match)) + { + locale = ToWSTRING(match); + } #endif - return locale; -} + return locale; + } -PublicKey GetPublicKeyFromAssemblyReferenceString(const WSTRING& str) { - BYTE data[8] = {0}; + PublicKey GetPublicKeyFromAssemblyReferenceString(const WSTRING& str) + { + BYTE data[8] = {0}; #ifdef _WIN32 - static auto re = std::wregex(WStr("PublicKeyToken=([a-fA-F0-9]{16})")); - std::wsmatch match; - if (std::regex_search(str, match, re) && match.size() == 2) { - for (int i = 0; i < 8; i++) { - auto s = match.str(1).substr(i * 2, 2); - unsigned long x; - WSTRINGSTREAM(s) >> std::hex >> x; - data[i] = BYTE(x); - } - } + static auto re = std::wregex(WStr("PublicKeyToken=([a-fA-F0-9]{16})")); + std::wsmatch match; + if (std::regex_search(str, match, re) && match.size() == 2) + { + for (int i = 0; i < 8; i++) + { + auto s = match.str(1).substr(i * 2, 2); + unsigned long x; + WSTRINGSTREAM(s) >> std::hex >> x; + data[i] = BYTE(x); + } + } #else - static re2::RE2 re("PublicKeyToken=([a-fA-F0-9]{16})"); - std::string match; - if (re2::RE2::FullMatch(ToString(str), re, &match)) { - for (int i = 0; i < 8; i++) { - auto s = match.substr(i * 2, 2); - unsigned long x; - std::stringstream(s) >> std::hex >> x; - data[i] = BYTE(x); - } - } + static re2::RE2 re("PublicKeyToken=([a-fA-F0-9]{16})"); + std::string match; + if (re2::RE2::FullMatch(ToString(str), re, &match)) + { + for (int i = 0; i < 8; i++) + { + auto s = match.substr(i * 2, 2); + unsigned long x; + std::stringstream(s) >> std::hex >> x; + data[i] = BYTE(x); + } + } #endif - return PublicKey(data); -} + return PublicKey(data); + } -} // namespace +} // namespace -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/integration.h b/src/Datadog.Trace.ClrProfiler.Native/integration.h index 530452e645..98f1b6bf6f 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/integration.h +++ b/src/Datadog.Trace.ClrProfiler.Native/integration.h @@ -11,295 +11,354 @@ #undef major #undef minor -namespace trace { +namespace trace +{ const size_t kPublicKeySize = 8; // PublicKey represents an Assembly Public Key token, which is an 8 byte binary // RSA key. -struct PublicKey { - const BYTE data[kPublicKeySize]; +struct PublicKey +{ + const BYTE data[kPublicKeySize]; - PublicKey() : data{0} {} - PublicKey(const BYTE (&arr)[kPublicKeySize]) - : data{arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7]} {} + PublicKey() : data{0} + { + } + PublicKey(const BYTE (&arr)[kPublicKeySize]) : data{arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7]} + { + } - inline bool operator==(const PublicKey& other) const { - for (int i = 0; i < kPublicKeySize; i++) { - if (data[i] != other.data[i]) { - return false; - } + inline bool operator==(const PublicKey& other) const + { + for (int i = 0; i < kPublicKeySize; i++) + { + if (data[i] != other.data[i]) + { + return false; + } + } + return true; } - return true; - } - inline WSTRING str() const { - std::stringstream ss; - for (int i = 0; i < kPublicKeySize; i++) { - ss << std::setfill('0') << std::setw(2) << std::hex - << static_cast(data[i]); + inline WSTRING str() const + { + std::stringstream ss; + for (int i = 0; i < kPublicKeySize; i++) + { + ss << std::setfill('0') << std::setw(2) << std::hex << static_cast(data[i]); + } + return ToWSTRING(ss.str()); } - return ToWSTRING(ss.str()); - } }; // Version is an Assembly version in the form Major.Minor.Build.Revision // (1.0.0.0) -struct Version { - const unsigned short major; - const unsigned short minor; - const unsigned short build; - const unsigned short revision; - - Version() : major(0), minor(0), build(0), revision(0) {} - Version(const unsigned short major, const unsigned short minor, - const unsigned short build, const unsigned short revision) - : major(major), minor(minor), build(build), revision(revision) {} - - inline bool operator==(const Version& other) const { - return major == other.major && minor == other.minor && - build == other.build && revision == other.revision; - } - - inline WSTRING str() const { - std::stringstream ss; - ss << major << "." << minor << "." << build << "." << revision; - return ToWSTRING(ss.str()); - } - - inline bool operator<(const Version& other) const { - if (major < other.major) { - return true; +struct Version +{ + const unsigned short major; + const unsigned short minor; + const unsigned short build; + const unsigned short revision; + + Version() : major(0), minor(0), build(0), revision(0) + { } - if (major == other.major && minor < other.minor) { - return true; + Version(const unsigned short major, const unsigned short minor, const unsigned short build, + const unsigned short revision) : + major(major), minor(minor), build(build), revision(revision) + { } - if (major == other.major && minor == other.minor && build < other.build) { - return true; + + inline bool operator==(const Version& other) const + { + return major == other.major && minor == other.minor && build == other.build && revision == other.revision; } - return false; - } - inline bool operator>(const Version& other) const { - if (major > other.major) { - return true; + inline WSTRING str() const + { + std::stringstream ss; + ss << major << "." << minor << "." << build << "." << revision; + return ToWSTRING(ss.str()); } - if (major == other.major && minor > other.minor) { - return true; + + inline bool operator<(const Version& other) const + { + if (major < other.major) + { + return true; + } + if (major == other.major && minor < other.minor) + { + return true; + } + if (major == other.major && minor == other.minor && build < other.build) + { + return true; + } + return false; } - if (major == other.major && minor == other.minor && build > other.build) { - return true; + + inline bool operator>(const Version& other) const + { + if (major > other.major) + { + return true; + } + if (major == other.major && minor > other.minor) + { + return true; + } + if (major == other.major && minor == other.minor && build > other.build) + { + return true; + } + return false; } - return false; - } }; // An AssemblyReference is a reference to a .Net assembly. In general it will // look like: // Some.Assembly.Name, Version=1.0.0.0, Culture=neutral, // PublicKeyToken=abcdef0123456789 -struct AssemblyReference { - const WSTRING name; - const Version version; - const WSTRING locale; - const PublicKey public_key; - - AssemblyReference() {} - AssemblyReference(const WSTRING& str); - - inline bool operator==(const AssemblyReference& other) const { - return name == other.name && version == other.version && - locale == other.locale && public_key == other.public_key; - } - - inline WSTRING str() const { - const auto ss = name + WStr(", Version=") + version.str() + WStr(", Culture=") + locale - + WStr(", PublicKeyToken=") + public_key.str(); - return ss; - } +struct AssemblyReference +{ + const WSTRING name; + const Version version; + const WSTRING locale; + const PublicKey public_key; + + AssemblyReference() + { + } + AssemblyReference(const WSTRING& str); + + inline bool operator==(const AssemblyReference& other) const + { + return name == other.name && version == other.version && locale == other.locale && + public_key == other.public_key; + } + + inline WSTRING str() const + { + const auto ss = name + WStr(", Version=") + version.str() + WStr(", Culture=") + locale + + WStr(", PublicKeyToken=") + public_key.str(); + return ss; + } }; // A MethodSignature is a byte array. The format is: // [calling convention, number of parameters, return type, parameter type...] // For types see CorElementType -struct MethodSignature { - public: - const std::vector data; - - MethodSignature() {} - MethodSignature(const std::vector& data) : data(data) {} +struct MethodSignature +{ +public: + const std::vector data; - inline bool operator==(const MethodSignature& other) const { - return data == other.data; - } - - CorCallingConvention CallingConvention() const { - return CorCallingConvention(data.empty() ? 0 : data[0]); - } - - size_t NumberOfTypeArguments() const { - if (data.size() > 1 && - (CallingConvention() & IMAGE_CEE_CS_CALLCONV_GENERIC) != 0) { - return data[1]; + MethodSignature() + { + } + MethodSignature(const std::vector& data) : data(data) + { } - return 0; - } - size_t NumberOfArguments() const { - if (data.size() > 2 && - (CallingConvention() & IMAGE_CEE_CS_CALLCONV_GENERIC) != 0) { - return data[2]; + inline bool operator==(const MethodSignature& other) const + { + return data == other.data; } - if (data.size() > 1) { - return data[1]; + + CorCallingConvention CallingConvention() const + { + return CorCallingConvention(data.empty() ? 0 : data[0]); } - return 0; - } - bool ReturnTypeIsObject() const { - if (data.size() > 2 && - (CallingConvention() & IMAGE_CEE_CS_CALLCONV_GENERIC) != 0) { - return data[3] == ELEMENT_TYPE_OBJECT; + size_t NumberOfTypeArguments() const + { + if (data.size() > 1 && (CallingConvention() & IMAGE_CEE_CS_CALLCONV_GENERIC) != 0) + { + return data[1]; + } + return 0; } - if (data.size() > 1) { - return data[2] == ELEMENT_TYPE_OBJECT; + + size_t NumberOfArguments() const + { + if (data.size() > 2 && (CallingConvention() & IMAGE_CEE_CS_CALLCONV_GENERIC) != 0) + { + return data[2]; + } + if (data.size() > 1) + { + return data[1]; + } + return 0; } - return false; - } + bool ReturnTypeIsObject() const + { + if (data.size() > 2 && (CallingConvention() & IMAGE_CEE_CS_CALLCONV_GENERIC) != 0) + { + return data[3] == ELEMENT_TYPE_OBJECT; + } + if (data.size() > 1) + { + return data[2] == ELEMENT_TYPE_OBJECT; + } - size_t IndexOfReturnType() const { - if (data.size() > 2 && - (CallingConvention() & IMAGE_CEE_CS_CALLCONV_GENERIC) != 0) { - return 3; + return false; } - if (data.size() > 1) { - return 2; + + size_t IndexOfReturnType() const + { + if (data.size() > 2 && (CallingConvention() & IMAGE_CEE_CS_CALLCONV_GENERIC) != 0) + { + return 3; + } + if (data.size() > 1) + { + return 2; + } + return 0; } - return 0; - } - WSTRING str() const { - std::stringstream ss; - for (auto& b : data) { - ss << std::hex << std::setfill('0') << std::setw(2) << static_cast(b); + WSTRING str() const + { + std::stringstream ss; + for (auto& b : data) + { + ss << std::hex << std::setfill('0') << std::setw(2) << static_cast(b); + } + return ToWSTRING(ss.str()); } - return ToWSTRING(ss.str()); - } - BOOL IsInstanceMethod() const { - return (CallingConvention() & IMAGE_CEE_CS_CALLCONV_HASTHIS) != 0; - } + BOOL IsInstanceMethod() const + { + return (CallingConvention() & IMAGE_CEE_CS_CALLCONV_HASTHIS) != 0; + } }; -struct MethodReference { - const AssemblyReference assembly; - const WSTRING type_name; - const WSTRING method_name; - const WSTRING action; - const MethodSignature method_signature; - const Version min_version; - const Version max_version; - const std::vector signature_types; - - MethodReference() - : min_version(Version(0, 0, 0, 0)), - max_version(Version(USHRT_MAX, USHRT_MAX, USHRT_MAX, USHRT_MAX)) {} - - MethodReference(const WSTRING& assembly_name, WSTRING type_name, WSTRING method_name, - WSTRING action, Version min_version, Version max_version, - const std::vector& method_signature, - const std::vector& signature_types) - : assembly(assembly_name), +struct MethodReference +{ + const AssemblyReference assembly; + const WSTRING type_name; + const WSTRING method_name; + const WSTRING action; + const MethodSignature method_signature; + const Version min_version; + const Version max_version; + const std::vector signature_types; + + MethodReference() : + min_version(Version(0, 0, 0, 0)), max_version(Version(USHRT_MAX, USHRT_MAX, USHRT_MAX, USHRT_MAX)) + { + } + + MethodReference(const WSTRING& assembly_name, WSTRING type_name, WSTRING method_name, WSTRING action, + Version min_version, Version max_version, const std::vector& method_signature, + const std::vector& signature_types) : + assembly(assembly_name), type_name(type_name), method_name(method_name), action(action), method_signature(method_signature), min_version(min_version), max_version(max_version), - signature_types(signature_types) {} - - inline WSTRING get_type_cache_key() const { - return WStr("[") + assembly.name + WStr("]") + type_name + WStr("_vMin_") + - min_version.str() + WStr("_vMax_") + max_version.str(); - } - - inline WSTRING get_method_cache_key() const { - return WStr("[") + assembly.name + WStr("]") + type_name + WStr(".") + method_name + - WStr("_vMin_") + min_version.str() + WStr("_vMax_") + max_version.str(); - } - - inline bool operator==(const MethodReference& other) const { - return assembly == other.assembly && type_name == other.type_name && - min_version == other.min_version && - max_version == other.max_version && - method_name == other.method_name && - method_signature == other.method_signature; - } + signature_types(signature_types) + { + } + + inline WSTRING get_type_cache_key() const + { + return WStr("[") + assembly.name + WStr("]") + type_name + WStr("_vMin_") + min_version.str() + WStr("_vMax_") + + max_version.str(); + } + + inline WSTRING get_method_cache_key() const + { + return WStr("[") + assembly.name + WStr("]") + type_name + WStr(".") + method_name + WStr("_vMin_") + + min_version.str() + WStr("_vMax_") + max_version.str(); + } + + inline bool operator==(const MethodReference& other) const + { + return assembly == other.assembly && type_name == other.type_name && min_version == other.min_version && + max_version == other.max_version && method_name == other.method_name && + method_signature == other.method_signature; + } }; -struct MethodReplacement { - const MethodReference caller_method; - const MethodReference target_method; - const MethodReference wrapper_method; - - MethodReplacement() {} - - MethodReplacement(MethodReference caller_method, - MethodReference target_method, - MethodReference wrapper_method) - : caller_method(caller_method), - target_method(target_method), - wrapper_method(wrapper_method) {} - - inline bool operator==(const MethodReplacement& other) const { - return caller_method == other.caller_method && - target_method == other.target_method && - wrapper_method == other.wrapper_method; - } +struct MethodReplacement +{ + const MethodReference caller_method; + const MethodReference target_method; + const MethodReference wrapper_method; + + MethodReplacement() + { + } + + MethodReplacement(MethodReference caller_method, MethodReference target_method, MethodReference wrapper_method) : + caller_method(caller_method), target_method(target_method), wrapper_method(wrapper_method) + { + } + + inline bool operator==(const MethodReplacement& other) const + { + return caller_method == other.caller_method && target_method == other.target_method && + wrapper_method == other.wrapper_method; + } }; -struct Integration { - const WSTRING integration_name; - std::vector method_replacements; +struct Integration +{ + const WSTRING integration_name; + std::vector method_replacements; - Integration() : integration_name(WStr("")), method_replacements({}) {} + Integration() : integration_name(WStr("")), method_replacements({}) + { + } - Integration(WSTRING integration_name, - std::vector method_replacements) - : integration_name(integration_name), - method_replacements(method_replacements) {} + Integration(WSTRING integration_name, std::vector method_replacements) : + integration_name(integration_name), method_replacements(method_replacements) + { + } - inline bool operator==(const Integration& other) const { - return integration_name == other.integration_name && - method_replacements == other.method_replacements; - } + inline bool operator==(const Integration& other) const + { + return integration_name == other.integration_name && method_replacements == other.method_replacements; + } }; -struct IntegrationMethod { - const WSTRING integration_name; - MethodReplacement replacement; +struct IntegrationMethod +{ + const WSTRING integration_name; + MethodReplacement replacement; - IntegrationMethod() : integration_name(WStr("")), replacement({}) {} + IntegrationMethod() : integration_name(WStr("")), replacement({}) + { + } - IntegrationMethod(WSTRING integration_name, MethodReplacement replacement) - : integration_name(integration_name), replacement(replacement) {} + IntegrationMethod(WSTRING integration_name, MethodReplacement replacement) : + integration_name(integration_name), replacement(replacement) + { + } - inline bool operator==(const IntegrationMethod& other) const { - return integration_name == other.integration_name && - replacement == other.replacement; - } + inline bool operator==(const IntegrationMethod& other) const + { + return integration_name == other.integration_name && replacement == other.replacement; + } }; -namespace { +namespace +{ -WSTRING GetNameFromAssemblyReferenceString(const WSTRING& wstr); -Version GetVersionFromAssemblyReferenceString(const WSTRING& wstr); -WSTRING GetLocaleFromAssemblyReferenceString(const WSTRING& wstr); -PublicKey GetPublicKeyFromAssemblyReferenceString(const WSTRING& wstr); + WSTRING GetNameFromAssemblyReferenceString(const WSTRING& wstr); + Version GetVersionFromAssemblyReferenceString(const WSTRING& wstr); + WSTRING GetLocaleFromAssemblyReferenceString(const WSTRING& wstr); + PublicKey GetPublicKeyFromAssemblyReferenceString(const WSTRING& wstr); -} // namespace +} // namespace -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_INTEGRATION_H_ +#endif // DD_CLR_PROFILER_INTEGRATION_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/integration_loader.cpp b/src/Datadog.Trace.ClrProfiler.Native/integration_loader.cpp index 433b4f6a2c..feedb5fdc3 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/integration_loader.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/integration_loader.cpp @@ -7,221 +7,278 @@ #include "logging.h" #include "util.h" -namespace trace { +namespace trace +{ using json = nlohmann::json; -std::vector LoadIntegrationsFromEnvironment() { - std::vector integrations; - for (const auto f : GetEnvironmentValues(environment::integrations_path)) { - Debug("Loading integrations from file: ", f); - auto is = LoadIntegrationsFromFile(f); - for (auto& i : is) { - integrations.push_back(i); +std::vector LoadIntegrationsFromEnvironment() +{ + std::vector integrations; + for (const auto f : GetEnvironmentValues(environment::integrations_path)) + { + Debug("Loading integrations from file: ", f); + auto is = LoadIntegrationsFromFile(f); + for (auto& i : is) + { + integrations.push_back(i); + } } - } - return integrations; + return integrations; } -std::vector LoadIntegrationsFromFile(const WSTRING& file_path) { - std::vector integrations; +std::vector LoadIntegrationsFromFile(const WSTRING& file_path) +{ + std::vector integrations; - try { - std::ifstream stream; - stream.open(ToString(file_path)); + try + { + std::ifstream stream; + stream.open(ToString(file_path)); - if (static_cast(stream)) { - integrations = LoadIntegrationsFromStream(stream); - } else { - Warn("Failed to load integrations from file ", file_path); - } + if (static_cast(stream)) + { + integrations = LoadIntegrationsFromStream(stream); + } + else + { + Warn("Failed to load integrations from file ", file_path); + } - stream.close(); - } catch (...) { - auto ex = std::current_exception(); - try { - if (ex) { - std::rethrow_exception(ex); - } - } catch (const std::exception& ex) { - Warn("Failed to load integrations: ", ex.what()); + stream.close(); + } + catch (...) + { + auto ex = std::current_exception(); + try + { + if (ex) + { + std::rethrow_exception(ex); + } + } + catch (const std::exception& ex) + { + Warn("Failed to load integrations: ", ex.what()); + } } - } - return integrations; + return integrations; } -std::vector LoadIntegrationsFromStream(std::istream& stream) { - std::vector integrations; +std::vector LoadIntegrationsFromStream(std::istream& stream) +{ + std::vector integrations; - try { - json j; - // parse the stream - stream >> j; + try + { + json j; + // parse the stream + stream >> j; - for (auto& el : j) { - auto i = IntegrationFromJson(el); - if (std::get<1>(i)) { - integrations.push_back(std::get<0>(i)); - } - } + for (auto& el : j) + { + auto i = IntegrationFromJson(el); + if (std::get<1>(i)) + { + integrations.push_back(std::get<0>(i)); + } + } - // Debug("Loaded integrations: ", j.dump()); - } catch (const json::parse_error& e) { - Warn("Invalid integrations:", e.what()); - } catch (const json::type_error& e) { - Warn("Invalid integrations:", e.what()); - } catch (...) { - auto ex = std::current_exception(); - try { - if (ex) { - std::rethrow_exception(ex); - } - } catch (const std::exception& ex) { - Warn("Failed to load integrations: ", ex.what()); + // Debug("Loaded integrations: ", j.dump()); + } + catch (const json::parse_error& e) + { + Warn("Invalid integrations:", e.what()); + } + catch (const json::type_error& e) + { + Warn("Invalid integrations:", e.what()); + } + catch (...) + { + auto ex = std::current_exception(); + try + { + if (ex) + { + std::rethrow_exception(ex); + } + } + catch (const std::exception& ex) + { + Warn("Failed to load integrations: ", ex.what()); + } } - } - return integrations; + return integrations; } -namespace { - -std::pair IntegrationFromJson(const json::value_type& src) { - if (!src.is_object()) { - return std::make_pair({}, false); - } - - // first get the name, which is required - const auto name = ToWSTRING(src.value("name", "")); - if (name.empty()) { - Warn("Integration name is missing for integration: ", src.dump()); - return std::make_pair({}, false); - } - - std::vector replacements; - auto arr = src.value("method_replacements", json::array()); - if (arr.is_array()) { - for (auto& el : arr) { - auto mr = MethodReplacementFromJson(el); - if (std::get<1>(mr)) { - replacements.push_back(std::get<0>(mr)); - } - } - } - return std::make_pair({name, replacements}, true); -} +namespace +{ -std::pair MethodReplacementFromJson( - const json::value_type& src) { - if (!src.is_object()) { - return std::make_pair({}, false); - } - - const auto caller = - MethodReferenceFromJson(src.value("caller", json::object()), false, false); - const auto target = - MethodReferenceFromJson(src.value("target", json::object()), true, false); - const auto wrapper = - MethodReferenceFromJson(src.value("wrapper", json::object()), false, true); - return std::make_pair({caller, target, wrapper}, - true); -} + std::pair IntegrationFromJson(const json::value_type& src) + { + if (!src.is_object()) + { + return std::make_pair({}, false); + } -MethodReference MethodReferenceFromJson(const json::value_type& src, - const bool is_target_method, - const bool is_wrapper_method) { - if (!src.is_object()) { - return {}; - } - - const auto assembly = ToWSTRING(src.value("assembly", "")); - const auto type = ToWSTRING(src.value("type", "")); - const auto method = ToWSTRING(src.value("method", "")); - auto raw_signature = src.value("signature", json::array()); - - const auto eoj = src.end(); - USHORT min_major = 0; - USHORT min_minor = 0; - USHORT min_patch = 0; - USHORT max_major = USHRT_MAX; - USHORT max_minor = USHRT_MAX; - USHORT max_patch = USHRT_MAX; - std::vector signature_type_array; - WSTRING action = WStr(""); - - if (is_target_method) { - // these fields only exist in the target definition - - if (src.find("minimum_major") != eoj) { - min_major = src["minimum_major"].get(); - } - if (src.find("minimum_minor") != eoj) { - min_minor = src["minimum_minor"].get(); - } - if (src.find("minimum_patch") != eoj) { - min_patch = src["minimum_patch"].get(); - } - if (src.find("maximum_major") != eoj) { - max_major = src["maximum_major"].get(); - } - if (src.find("maximum_minor") != eoj) { - max_minor = src["maximum_minor"].get(); - } - if (src.find("maximum_patch") != eoj) { - max_patch = src["maximum_patch"].get(); - } + // first get the name, which is required + const auto name = ToWSTRING(src.value("name", "")); + if (name.empty()) + { + Warn("Integration name is missing for integration: ", src.dump()); + return std::make_pair({}, false); + } - if (src.find("signature_types") != eoj) { - // c++ is unable to handle null values in this array - // we would need to write out own parsing here for null values - auto sig_types = src["signature_types"].get>(); - signature_type_array = std::vector(sig_types.size()); - for (auto i = sig_types.size() - 1; i < sig_types.size(); i--) { - signature_type_array[i] = ToWSTRING(sig_types[i]); - } + std::vector replacements; + auto arr = src.value("method_replacements", json::array()); + if (arr.is_array()) + { + for (auto& el : arr) + { + auto mr = MethodReplacementFromJson(el); + if (std::get<1>(mr)) + { + replacements.push_back(std::get<0>(mr)); + } + } + } + return std::make_pair({name, replacements}, true); } - } else if (is_wrapper_method) { - action = ToWSTRING(src.value("action", "")); - } - - std::vector signature; - if (raw_signature.is_array()) { - for (auto& el : raw_signature) { - if (el.is_number_unsigned()) { - signature.push_back(BYTE(el.get())); - } + + std::pair MethodReplacementFromJson(const json::value_type& src) + { + if (!src.is_object()) + { + return std::make_pair({}, false); + } + + const auto caller = MethodReferenceFromJson(src.value("caller", json::object()), false, false); + const auto target = MethodReferenceFromJson(src.value("target", json::object()), true, false); + const auto wrapper = MethodReferenceFromJson(src.value("wrapper", json::object()), false, true); + return std::make_pair({caller, target, wrapper}, true); } - } else if (raw_signature.is_string()) { - // load as a hex string - std::string str = raw_signature; - bool flip = false; - char prev = 0; - for (auto& c : str) { - BYTE b = 0; - if ('0' <= c && c <= '9') { - b = c - '0'; - } else if ('a' <= c && c <= 'f') { - b = c - 'a' + 10; - } else if ('A' <= c && c <= 'F') { - b = c - 'A' + 10; - } else { - // skip any non-hex character - continue; - } - if (flip) { - signature.push_back((prev << 4) + b); - } - flip = !flip; - prev = b; + + MethodReference MethodReferenceFromJson(const json::value_type& src, const bool is_target_method, + const bool is_wrapper_method) + { + if (!src.is_object()) + { + return {}; + } + + const auto assembly = ToWSTRING(src.value("assembly", "")); + const auto type = ToWSTRING(src.value("type", "")); + const auto method = ToWSTRING(src.value("method", "")); + auto raw_signature = src.value("signature", json::array()); + + const auto eoj = src.end(); + USHORT min_major = 0; + USHORT min_minor = 0; + USHORT min_patch = 0; + USHORT max_major = USHRT_MAX; + USHORT max_minor = USHRT_MAX; + USHORT max_patch = USHRT_MAX; + std::vector signature_type_array; + WSTRING action = WStr(""); + + if (is_target_method) + { + // these fields only exist in the target definition + + if (src.find("minimum_major") != eoj) + { + min_major = src["minimum_major"].get(); + } + if (src.find("minimum_minor") != eoj) + { + min_minor = src["minimum_minor"].get(); + } + if (src.find("minimum_patch") != eoj) + { + min_patch = src["minimum_patch"].get(); + } + if (src.find("maximum_major") != eoj) + { + max_major = src["maximum_major"].get(); + } + if (src.find("maximum_minor") != eoj) + { + max_minor = src["maximum_minor"].get(); + } + if (src.find("maximum_patch") != eoj) + { + max_patch = src["maximum_patch"].get(); + } + + if (src.find("signature_types") != eoj) + { + // c++ is unable to handle null values in this array + // we would need to write out own parsing here for null values + auto sig_types = src["signature_types"].get>(); + signature_type_array = std::vector(sig_types.size()); + for (auto i = sig_types.size() - 1; i < sig_types.size(); i--) + { + signature_type_array[i] = ToWSTRING(sig_types[i]); + } + } + } + else if (is_wrapper_method) + { + action = ToWSTRING(src.value("action", "")); + } + + std::vector signature; + if (raw_signature.is_array()) + { + for (auto& el : raw_signature) + { + if (el.is_number_unsigned()) + { + signature.push_back(BYTE(el.get())); + } + } + } + else if (raw_signature.is_string()) + { + // load as a hex string + std::string str = raw_signature; + bool flip = false; + char prev = 0; + for (auto& c : str) + { + BYTE b = 0; + if ('0' <= c && c <= '9') + { + b = c - '0'; + } + else if ('a' <= c && c <= 'f') + { + b = c - 'a' + 10; + } + else if ('A' <= c && c <= 'F') + { + b = c - 'A' + 10; + } + else + { + // skip any non-hex character + continue; + } + if (flip) + { + signature.push_back((prev << 4) + b); + } + flip = !flip; + prev = b; + } + } + return MethodReference(assembly, type, method, action, Version(min_major, min_minor, min_patch, 0), + Version(max_major, max_minor, max_patch, USHRT_MAX), signature, signature_type_array); } - } - return MethodReference(assembly, type, method, action, - Version(min_major, min_minor, min_patch, 0), - Version(max_major, max_minor, max_patch, USHRT_MAX), - signature, signature_type_array); -} -} // namespace +} // namespace -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/integration_loader.h b/src/Datadog.Trace.ClrProfiler.Native/integration_loader.h index 0f71555d5b..ec9111baab 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/integration_loader.h +++ b/src/Datadog.Trace.ClrProfiler.Native/integration_loader.h @@ -10,7 +10,8 @@ #include "integration.h" #include "macros.h" -namespace trace { +namespace trace +{ using json = nlohmann::json; @@ -22,17 +23,16 @@ std::vector LoadIntegrationsFromFile(const WSTRING& file_path); // LoadIntegrationsFromFile loads the integrations from a stream std::vector LoadIntegrationsFromStream(std::istream& stream); -namespace { +namespace +{ -std::pair IntegrationFromJson(const json::value_type& src); -std::pair MethodReplacementFromJson( - const json::value_type& src); -MethodReference MethodReferenceFromJson(const json::value_type& src, - const bool is_target_method, - const bool is_wrapper_method); + std::pair IntegrationFromJson(const json::value_type& src); + std::pair MethodReplacementFromJson(const json::value_type& src); + MethodReference MethodReferenceFromJson(const json::value_type& src, const bool is_target_method, + const bool is_wrapper_method); -} // namespace +} // namespace -} // namespace trace +} // namespace trace #endif diff --git a/src/Datadog.Trace.ClrProfiler.Native/interop.cpp b/src/Datadog.Trace.ClrProfiler.Native/interop.cpp index 80e77e147f..43176a1e06 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/interop.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/interop.cpp @@ -8,10 +8,13 @@ #include "cor_profiler.h" -EXTERN_C BOOL STDAPICALLTYPE IsProfilerAttached() { - return trace::profiler->IsAttached(); +EXTERN_C BOOL STDAPICALLTYPE IsProfilerAttached() +{ + return trace::profiler->IsAttached(); } -EXTERN_C VOID STDAPICALLTYPE GetAssemblyAndSymbolsBytes(BYTE** pAssemblyArray, int* assemblySize, BYTE** pSymbolsArray, int* symbolsSize) { - return trace::profiler->GetAssemblyAndSymbolsBytes(pAssemblyArray, assemblySize, pSymbolsArray, symbolsSize); +EXTERN_C VOID STDAPICALLTYPE GetAssemblyAndSymbolsBytes(BYTE** pAssemblyArray, int* assemblySize, BYTE** pSymbolsArray, + int* symbolsSize) +{ + return trace::profiler->GetAssemblyAndSymbolsBytes(pAssemblyArray, assemblySize, pSymbolsArray, symbolsSize); } diff --git a/src/Datadog.Trace.ClrProfiler.Native/lib/coreclr/src/README.md b/src/Datadog.Trace.ClrProfiler.Native/lib/coreclr/src/README.md new file mode 100644 index 0000000000..3ff9777802 --- /dev/null +++ b/src/Datadog.Trace.ClrProfiler.Native/lib/coreclr/src/README.md @@ -0,0 +1,20 @@ +The files here were copied from https://github.com/dotnet/runtime/tree/v5.0.5/src/coreclr/src. + +This is to allow using the runtime's Platform Adaptation Layer. + +Add back the definition of g_tkCorEncodeToken in cor.h l.2096: + +replace +extern const mdToken g_tkCorEncodeToken[]; +by +const mdToken g_tkCorEncodeToken[4] = { mdtTypeDef, mdtTypeRef, mdtTypeSpec, mdtBaseType }; + +Commented #define statements because there is naming conflicts when compiling with the stdlibc++ 8 (+ C++17) +in `dotnet-runtime-coreclr\pal\inc\rt\sal.h` +l.2612 // commented because it conflicts with stdlibc++ 8 +l.2613 //#define __valid + +and + +l.2622 // commented because it conflicts with stdlibc++ 8 +l.2623 //#define __pre \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/lib/coreclr/src/pal/inc/rt/sal.h b/src/Datadog.Trace.ClrProfiler.Native/lib/coreclr/src/pal/inc/rt/sal.h index 9f7c014b79..273fb46b75 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/lib/coreclr/src/pal/inc/rt/sal.h +++ b/src/Datadog.Trace.ClrProfiler.Native/lib/coreclr/src/pal/inc/rt/sal.h @@ -2609,7 +2609,8 @@ extern "C" { #define __readonly #define __notreadonly #define __maybereadonly - #define __valid + // commented because it conflicts with stdlibc++ 8 + //#define __valid #define __notvalid #define __maybevalid #define __readableTo(extent) @@ -2618,7 +2619,8 @@ extern "C" { #define __writableTo(size) #define __elem_writableTo(size) #define __byte_writableTo(size) - #define __pre + // commented because it conflicts with stdlibc++ 8 + //#define __pre #define __post #define __precond(expr) #define __postcond(expr) @@ -2949,4 +2951,4 @@ __PRIMOP(int, _In_function_class_(__In_impl_ char*);) #ifdef __cplusplus // [ } -#endif // ] +#endif // ] \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/logging.cpp b/src/Datadog.Trace.ClrProfiler.Native/logging.cpp index 07032f518f..40557c0ab7 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/logging.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/logging.cpp @@ -9,97 +9,123 @@ typedef struct stat Stat; #endif -namespace trace { +namespace trace +{ bool debug_logging_enabled = false; bool dump_il_rewrite_enabled = false; #ifndef _WIN32 // for linux and osx we need a function to get the path from a filepath -std::string getPathName(const std::string& s) { - char sep = '/'; - size_t i = s.rfind(sep, s.length()); - if (i != std::string::npos) { - return s.substr(0, i); - } - return ""; +std::string getPathName(const std::string& s) +{ + char sep = '/'; + size_t i = s.rfind(sep, s.length()); + if (i != std::string::npos) + { + return s.substr(0, i); + } + return ""; } #endif -std::string Logger::GetLogPath(const std::string& file_name_suffix) { - const auto path = ToString(DatadogLogFilePath(file_name_suffix)); +std::string Logger::GetLogPath(const std::string& file_name_suffix) +{ + const auto path = ToString(DatadogLogFilePath(file_name_suffix)); #ifdef _WIN32 - // on VC++, use std::filesystem (C++ 17) to - // create directory if missing - const auto log_path = std::filesystem::path(path); - - if (log_path.has_parent_path()) { - const auto parent_path = log_path.parent_path(); - - if (!std::filesystem::exists(parent_path)) { - std::filesystem::create_directories(parent_path); + // on VC++, use std::filesystem (C++ 17) to + // create directory if missing + const auto log_path = std::filesystem::path(path); + + if (log_path.has_parent_path()) + { + const auto parent_path = log_path.parent_path(); + + if (!std::filesystem::exists(parent_path)) + { + std::filesystem::create_directories(parent_path); + } } - } #else - // on linux and osx we use the basic C approach - const auto log_path = getPathName(path); - Stat st; - if (log_path != "" && stat(log_path.c_str(), &st) != 0) { - mkdir(log_path.c_str(), 0777); - } + // on linux and osx we use the basic C approach + const auto log_path = getPathName(path); + Stat st; + if (log_path != "" && stat(log_path.c_str(), &st) != 0) + { + mkdir(log_path.c_str(), 0777); + } #endif - return path; + return path; } -Logger::Logger() { - spdlog::set_error_handler([](const std::string& msg) { - // By writing into the stderr was changing the behavior in a CI scenario. - // There's not a good way to report errors when trying to create the log file. - // But we never should be changing the normal behavior of an app. - // std::cerr << "Logger Handler: " << msg << std::endl; - }); +Logger::Logger() +{ + spdlog::set_error_handler([](const std::string& msg) { + // By writing into the stderr was changing the behavior in a CI scenario. + // There's not a good way to report errors when trying to create the log file. + // But we never should be changing the normal behavior of an app. + // std::cerr << "Logger Handler: " << msg << std::endl; + }); - spdlog::flush_every(std::chrono::seconds(3)); + spdlog::flush_every(std::chrono::seconds(3)); - static auto current_process_name = ToString(GetCurrentProcessName()); - static auto current_process_id= GetPID(); - static auto current_process_without_extension = - current_process_name.substr(0, current_process_name.find_last_of(".")); + static auto current_process_name = ToString(GetCurrentProcessName()); + static auto current_process_id = GetPID(); + static auto current_process_without_extension = + current_process_name.substr(0, current_process_name.find_last_of(".")); - static auto file_name_suffix = "-" + current_process_without_extension + "-" + - std::to_string(current_process_id); + static auto file_name_suffix = "-" + current_process_without_extension + "-" + std::to_string(current_process_id); - try { - m_fileout = spdlog::rotating_logger_mt( - "Logger", GetLogPath(file_name_suffix), 1048576 * 5, 10); - } - catch (...) { - std::cerr << "Logger Handler: Error creating native log file." << std::endl; - m_fileout = spdlog::null_logger_mt("Logger"); - } + try + { + m_fileout = spdlog::rotating_logger_mt("Logger", GetLogPath(file_name_suffix), 1048576 * 5, 10); + } + catch (...) + { + std::cerr << "Logger Handler: Error creating native log file." << std::endl; + m_fileout = spdlog::null_logger_mt("Logger"); + } - m_fileout->set_level(spdlog::level::debug); + m_fileout->set_level(spdlog::level::debug); - m_fileout->set_pattern("%D %I:%M:%S.%e %p [%P|%t] [%l] %v"); + m_fileout->set_pattern("%D %I:%M:%S.%e %p [%P|%t] [%l] %v"); - m_fileout->flush_on(spdlog::level::info); + m_fileout->flush_on(spdlog::level::info); }; -Logger::~Logger() { - m_fileout->flush(); - spdlog::shutdown(); +Logger::~Logger() +{ + m_fileout->flush(); + spdlog::shutdown(); }; -void Logger::Debug(const std::string& str) { - if (debug_logging_enabled) { - m_fileout->debug(str); - } +void Logger::Debug(const std::string& str) +{ + if (debug_logging_enabled) + { + m_fileout->debug(str); + } +} +void Logger::Info(const std::string& str) +{ + m_fileout->info(str); +} +void Logger::Warn(const std::string& str) +{ + m_fileout->warn(str); +} +void Logger::Error(const std::string& str) +{ + m_fileout->error(str); +} +void Logger::Critical(const std::string& str) +{ + m_fileout->critical(str); +} +void Logger::Flush() +{ + m_fileout->flush(); } -void Logger::Info(const std::string& str) { m_fileout->info(str); } -void Logger::Warn(const std::string& str) { m_fileout->warn(str); } -void Logger::Error(const std::string& str) { m_fileout->error(str); } -void Logger::Critical(const std::string& str) { m_fileout->critical(str); } -void Logger::Flush() { m_fileout->flush(); } -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/logging.h b/src/Datadog.Trace.ClrProfiler.Native/logging.h index 8dbbc94432..c54c0f1d0e 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/logging.h +++ b/src/Datadog.Trace.ClrProfiler.Native/logging.h @@ -7,59 +7,70 @@ #include #include -namespace trace { +namespace trace +{ extern bool debug_logging_enabled; extern bool dump_il_rewrite_enabled; -class Logger : public Singleton { - friend class Singleton; +class Logger : public Singleton +{ + friend class Singleton; - private: - std::shared_ptr m_fileout; - static std::string GetLogPath(const std::string& file_name_suffix); - Logger(); - ~Logger(); +private: + std::shared_ptr m_fileout; + static std::string GetLogPath(const std::string& file_name_suffix); + Logger(); + ~Logger(); - public: - void Debug(const std::string& str); - void Info(const std::string& str); - void Warn(const std::string& str); - void Error(const std::string& str); - void Critical(const std::string& str); - void Flush(); - static void Shutdown() { spdlog::shutdown(); } +public: + void Debug(const std::string& str); + void Info(const std::string& str); + void Warn(const std::string& str); + void Error(const std::string& str); + void Critical(const std::string& str); + void Flush(); + static void Shutdown() + { + spdlog::shutdown(); + } }; template -std::string LogToString(Arg const& arg) { - return ToString(arg); +std::string LogToString(Arg const& arg) +{ + return ToString(arg); } template -std::string LogToString(Args const&... args) { - std::ostringstream oss; - int a[] = {0, ((void)(oss << LogToString(args)), 0)...}; - return oss.str(); +std::string LogToString(Args const&... args) +{ + std::ostringstream oss; + int a[] = {0, ((void) (oss << LogToString(args)), 0)...}; + return oss.str(); } template -void Debug(const Args... args) { - if (debug_logging_enabled) { - Logger::Instance()->Debug(LogToString(args...)); - } +void Debug(const Args... args) +{ + if (debug_logging_enabled) + { + Logger::Instance()->Debug(LogToString(args...)); + } } template -void Info(const Args... args) { - Logger::Instance()->Info(LogToString(args...)); +void Info(const Args... args) +{ + Logger::Instance()->Info(LogToString(args...)); } template -void Warn(const Args... args) { - Logger::Instance()->Warn(LogToString(args...)); +void Warn(const Args... args) +{ + Logger::Instance()->Warn(LogToString(args...)); } -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_LOGGING_H_ +#endif // DD_CLR_PROFILER_LOGGING_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/macros.h b/src/Datadog.Trace.ClrProfiler.Native/macros.h index 86d00943e6..5d1e815ac1 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/macros.h +++ b/src/Datadog.Trace.ClrProfiler.Native/macros.h @@ -4,25 +4,30 @@ #include #include -#define RETURN_IF_FAILED(EXPR) \ - do { \ - hr = (EXPR); \ - if (FAILED(hr)) { \ - return (hr); \ - } \ - } while (0) +#define RETURN_IF_FAILED(EXPR) \ + do \ + { \ + hr = (EXPR); \ + if (FAILED(hr)) \ + { \ + return (hr); \ + } \ + } while (0) -#define RETURN_OK_IF_FAILED(EXPR) \ - do { \ - hr = (EXPR); \ - if (FAILED(hr)) { \ - return S_OK; \ - } \ - } while (0) +#define RETURN_OK_IF_FAILED(EXPR) \ + do \ + { \ + hr = (EXPR); \ + if (FAILED(hr)) \ + { \ + return S_OK; \ + } \ + } while (0) -#define IfFalseRetFAIL(EXPR) \ - do { \ - if ((EXPR) == false) return E_FAIL; \ - } while (0) +#define IfFalseRetFAIL(EXPR) \ + do \ + { \ + if ((EXPR) == false) return E_FAIL; \ + } while (0) -#endif // DD_CLR_PROFILER_MACROS_H_ +#endif // DD_CLR_PROFILER_MACROS_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/metadata_builder.cpp b/src/Datadog.Trace.ClrProfiler.Native/metadata_builder.cpp index ae6cba0c1f..4e928264df 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/metadata_builder.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/metadata_builder.cpp @@ -6,151 +6,155 @@ #include "macros.h" #include "metadata_builder.h" -namespace trace { - -HRESULT MetadataBuilder::EmitAssemblyRef( - const trace::AssemblyReference& assembly_ref) const { - ASSEMBLYMETADATA assembly_metadata{}; - assembly_metadata.usMajorVersion = assembly_ref.version.major; - assembly_metadata.usMinorVersion = assembly_ref.version.minor; - assembly_metadata.usBuildNumber = assembly_ref.version.build; - assembly_metadata.usRevisionNumber = assembly_ref.version.revision; - if (assembly_ref.locale == WStr("neutral")) { - assembly_metadata.szLocale = nullptr; - assembly_metadata.cbLocale = 0; - } else { - assembly_metadata.szLocale = - const_cast(assembly_ref.locale.c_str()); - assembly_metadata.cbLocale = (DWORD)(assembly_ref.locale.size()); - } - - DWORD public_key_size = 8; - if (assembly_ref.public_key == trace::PublicKey()) { - public_key_size = 0; - } - - mdAssemblyRef assembly_ref_out; - const HRESULT hr = assembly_emit_->DefineAssemblyRef( - &assembly_ref.public_key.data[0], public_key_size, - assembly_ref.name.c_str(), &assembly_metadata, - // hash blob - nullptr, - // cb of hash blob - 0, - // flags - 0, &assembly_ref_out); - - if (FAILED(hr)) { - Warn("DefineAssemblyRef failed"); - } - return S_OK; -} +namespace trace +{ + +HRESULT MetadataBuilder::EmitAssemblyRef(const trace::AssemblyReference& assembly_ref) const +{ + ASSEMBLYMETADATA assembly_metadata{}; + assembly_metadata.usMajorVersion = assembly_ref.version.major; + assembly_metadata.usMinorVersion = assembly_ref.version.minor; + assembly_metadata.usBuildNumber = assembly_ref.version.build; + assembly_metadata.usRevisionNumber = assembly_ref.version.revision; + if (assembly_ref.locale == WStr("neutral")) + { + assembly_metadata.szLocale = nullptr; + assembly_metadata.cbLocale = 0; + } + else + { + assembly_metadata.szLocale = const_cast(assembly_ref.locale.c_str()); + assembly_metadata.cbLocale = (DWORD)(assembly_ref.locale.size()); + } -HRESULT MetadataBuilder::FindWrapperTypeRef( - const MethodReplacement& method_replacement, - mdTypeRef& type_ref_out) const { - const auto& cache_key = - method_replacement.wrapper_method.get_type_cache_key(); - mdTypeRef type_ref = mdTypeRefNil; + DWORD public_key_size = 8; + if (assembly_ref.public_key == trace::PublicKey()) + { + public_key_size = 0; + } - if (metadata_.TryGetWrapperParentTypeRef(cache_key, type_ref)) { - // this type was already resolved - type_ref_out = type_ref; + mdAssemblyRef assembly_ref_out; + const HRESULT hr = assembly_emit_->DefineAssemblyRef(&assembly_ref.public_key.data[0], public_key_size, + assembly_ref.name.c_str(), &assembly_metadata, + // hash blob + nullptr, + // cb of hash blob + 0, + // flags + 0, &assembly_ref_out); + + if (FAILED(hr)) + { + Warn("DefineAssemblyRef failed"); + } return S_OK; - } - - HRESULT hr; - type_ref = mdTypeRefNil; - - if (metadata_.assemblyName == - method_replacement.wrapper_method.assembly.name) { - // type is defined in this assembly - hr = metadata_emit_->DefineTypeRefByName( - module_, method_replacement.wrapper_method.type_name.c_str(), - &type_ref); - } else { - // type is defined in another assembly, - // find a reference to the assembly where type lives - const auto assembly_ref = FindAssemblyRef( - assembly_import_, method_replacement.wrapper_method.assembly.name); - if (assembly_ref == mdAssemblyRefNil) { - // TODO: emit assembly reference if not found? - Warn("Assembly reference for", - method_replacement.wrapper_method.assembly.name, " not found"); - return E_FAIL; +} + +HRESULT MetadataBuilder::FindWrapperTypeRef(const MethodReplacement& method_replacement, mdTypeRef& type_ref_out) const +{ + const auto& cache_key = method_replacement.wrapper_method.get_type_cache_key(); + mdTypeRef type_ref = mdTypeRefNil; + + if (metadata_.TryGetWrapperParentTypeRef(cache_key, type_ref)) + { + // this type was already resolved + type_ref_out = type_ref; + return S_OK; } - // search for an existing reference to the type - hr = metadata_import_->FindTypeRef( - assembly_ref, method_replacement.wrapper_method.type_name.c_str(), - &type_ref); + HRESULT hr; + type_ref = mdTypeRefNil; - if (hr == HRESULT(0x80131130) /* record not found on lookup */) { - // if typeRef not found, create a new one by emitting a metadata token - hr = metadata_emit_->DefineTypeRefByName( - assembly_ref, method_replacement.wrapper_method.type_name.c_str(), - &type_ref); + if (metadata_.assemblyName == method_replacement.wrapper_method.assembly.name) + { + // type is defined in this assembly + hr = metadata_emit_->DefineTypeRefByName(module_, method_replacement.wrapper_method.type_name.c_str(), + &type_ref); + } + else + { + // type is defined in another assembly, + // find a reference to the assembly where type lives + const auto assembly_ref = FindAssemblyRef(assembly_import_, method_replacement.wrapper_method.assembly.name); + if (assembly_ref == mdAssemblyRefNil) + { + // TODO: emit assembly reference if not found? + Warn("Assembly reference for", method_replacement.wrapper_method.assembly.name, " not found"); + return E_FAIL; + } + + // search for an existing reference to the type + hr = + metadata_import_->FindTypeRef(assembly_ref, method_replacement.wrapper_method.type_name.c_str(), &type_ref); + + if (hr == HRESULT(0x80131130) /* record not found on lookup */) + { + // if typeRef not found, create a new one by emitting a metadata token + hr = metadata_emit_->DefineTypeRefByName(assembly_ref, method_replacement.wrapper_method.type_name.c_str(), + &type_ref); + } } - } - RETURN_IF_FAILED(hr); + RETURN_IF_FAILED(hr); - // cache the typeRef in case we need it again - metadata_.SetWrapperParentTypeRef(cache_key, type_ref); - type_ref_out = type_ref; - return S_OK; + // cache the typeRef in case we need it again + metadata_.SetWrapperParentTypeRef(cache_key, type_ref); + type_ref_out = type_ref; + return S_OK; } -HRESULT MetadataBuilder::StoreWrapperMethodRef( - const MethodReplacement& method_replacement) const { - const auto& cache_key = - method_replacement.wrapper_method.get_method_cache_key(); - mdMemberRef member_ref = mdMemberRefNil; +HRESULT MetadataBuilder::StoreWrapperMethodRef(const MethodReplacement& method_replacement) const +{ + const auto& cache_key = method_replacement.wrapper_method.get_method_cache_key(); + mdMemberRef member_ref = mdMemberRefNil; - if (metadata_.TryGetWrapperMemberRef(cache_key, member_ref)) { - // this member was already resolved - return S_OK; - } - - mdTypeRef type_ref = mdTypeRefNil; - HRESULT hr = FindWrapperTypeRef(method_replacement, type_ref); - if (FAILED(hr)) { - // Record that this cache_key failed - metadata_.SetFailedWrapperMemberKey(cache_key); - return hr; - } - - member_ref = mdMemberRefNil; - - auto signature_data = method_replacement.wrapper_method.method_signature.data; - - // If the signature data size is greater than zero means we need to load the methodRef - // for CallSite instrumentation. - // In case of the signature data size is zero we asume we are in a calltarget scenario - // where we use the TypeRef but not a MemberRef. - - if (signature_data.size() > 0) { - // callsite integrations do this path. - hr = metadata_import_->FindMemberRef( - type_ref, method_replacement.wrapper_method.method_name.c_str(), - signature_data.data(), (DWORD)(signature_data.size()), &member_ref); - - if (hr == HRESULT(0x80131130) /* record not found on lookup */) { - // if memberRef not found, create it by emitting a metadata token - hr = metadata_emit_->DefineMemberRef( - type_ref, method_replacement.wrapper_method.method_name.c_str(), - signature_data.data(), (DWORD)(signature_data.size()), &member_ref); + if (metadata_.TryGetWrapperMemberRef(cache_key, member_ref)) + { + // this member was already resolved + return S_OK; + } + + mdTypeRef type_ref = mdTypeRefNil; + HRESULT hr = FindWrapperTypeRef(method_replacement, type_ref); + if (FAILED(hr)) + { + // Record that this cache_key failed + metadata_.SetFailedWrapperMemberKey(cache_key); + return hr; } - if (FAILED(hr)) { - // Record that this cache_key failed - metadata_.SetFailedWrapperMemberKey(cache_key); - return hr; + member_ref = mdMemberRefNil; + + auto signature_data = method_replacement.wrapper_method.method_signature.data; + + // If the signature data size is greater than zero means we need to load the methodRef + // for CallSite instrumentation. + // In case of the signature data size is zero we asume we are in a calltarget scenario + // where we use the TypeRef but not a MemberRef. + + if (signature_data.size() > 0) + { + // callsite integrations do this path. + hr = metadata_import_->FindMemberRef(type_ref, method_replacement.wrapper_method.method_name.c_str(), + signature_data.data(), (DWORD)(signature_data.size()), &member_ref); + + if (hr == HRESULT(0x80131130) /* record not found on lookup */) + { + // if memberRef not found, create it by emitting a metadata token + hr = metadata_emit_->DefineMemberRef(type_ref, method_replacement.wrapper_method.method_name.c_str(), + signature_data.data(), (DWORD)(signature_data.size()), &member_ref); + } + + if (FAILED(hr)) + { + // Record that this cache_key failed + metadata_.SetFailedWrapperMemberKey(cache_key); + return hr; + } } - } - metadata_.SetWrapperMemberRef(cache_key, member_ref); - return S_OK; + metadata_.SetWrapperMemberRef(cache_key, member_ref); + return S_OK; } -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/metadata_builder.h b/src/Datadog.Trace.ClrProfiler.Native/metadata_builder.h index 8ab52d813d..d74976541a 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/metadata_builder.h +++ b/src/Datadog.Trace.ClrProfiler.Native/metadata_builder.h @@ -6,37 +6,37 @@ #include "logging.h" #include "module_metadata.h" -namespace trace { - -class MetadataBuilder { - private: - ModuleMetadata& metadata_; - const mdModule module_ = mdModuleNil; - const ComPtr metadata_import_{}; - const ComPtr metadata_emit_{}; - const ComPtr assembly_import_{}; - const ComPtr assembly_emit_{}; - - HRESULT FindWrapperTypeRef(const MethodReplacement& method_replacement, - mdTypeRef& type_ref_out) const; - - public: - MetadataBuilder(ModuleMetadata& metadata, const mdModule module, - ComPtr metadata_import, - ComPtr metadata_emit, - ComPtr assembly_import, - ComPtr assembly_emit) - : metadata_(metadata), +namespace trace +{ + +class MetadataBuilder +{ +private: + ModuleMetadata& metadata_; + const mdModule module_ = mdModuleNil; + const ComPtr metadata_import_{}; + const ComPtr metadata_emit_{}; + const ComPtr assembly_import_{}; + const ComPtr assembly_emit_{}; + + HRESULT FindWrapperTypeRef(const MethodReplacement& method_replacement, mdTypeRef& type_ref_out) const; + +public: + MetadataBuilder(ModuleMetadata& metadata, const mdModule module, ComPtr metadata_import, + ComPtr metadata_emit, ComPtr assembly_import, + ComPtr assembly_emit) : + metadata_(metadata), module_(module), metadata_import_(metadata_import), metadata_emit_(metadata_emit), assembly_import_(assembly_import), - assembly_emit_(assembly_emit) {} + assembly_emit_(assembly_emit) + { + } - HRESULT StoreWrapperMethodRef( - const MethodReplacement& method_replacement) const; + HRESULT StoreWrapperMethodRef(const MethodReplacement& method_replacement) const; - HRESULT EmitAssemblyRef(const trace::AssemblyReference& assembly_ref) const; + HRESULT EmitAssemblyRef(const trace::AssemblyReference& assembly_ref) const; }; -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/miniutf.cpp b/src/Datadog.Trace.ClrProfiler.Native/miniutf.cpp index f219fc63b5..20108385f5 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/miniutf.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/miniutf.cpp @@ -23,7 +23,8 @@ #include -namespace miniutf { +namespace miniutf +{ #include "miniutfdata.h" @@ -31,47 +32,58 @@ namespace miniutf { * Encoding * * * * * * * * * */ -void utf8_encode(char32_t pt, std::string& out) { - if (pt < 0x80) { - out += static_cast(pt); - } else if (pt < 0x800) { - out += {static_cast((pt >> 6) | 0xC0), - static_cast((pt & 0x3F) | 0x80)}; - } else if (pt < 0x10000) { - out += {static_cast((pt >> 12) | 0xE0), - static_cast(((pt >> 6) & 0x3F) | 0x80), - static_cast((pt & 0x3F) | 0x80)}; - } else if (pt < 0x110000) { - out += {static_cast((pt >> 18) | 0xF0), - static_cast(((pt >> 12) & 0x3F) | 0x80), - static_cast(((pt >> 6) & 0x3F) | 0x80), - static_cast((pt & 0x3F) | 0x80)}; - } else { +void utf8_encode(char32_t pt, std::string& out) +{ + if (pt < 0x80) + { + out += static_cast(pt); + } + else if (pt < 0x800) + { + out += {static_cast((pt >> 6) | 0xC0), static_cast((pt & 0x3F) | 0x80)}; + } + else if (pt < 0x10000) + { + out += {static_cast((pt >> 12) | 0xE0), static_cast(((pt >> 6) & 0x3F) | 0x80), + static_cast((pt & 0x3F) | 0x80)}; + } + else if (pt < 0x110000) + { + out += {static_cast((pt >> 18) | 0xF0), static_cast(((pt >> 12) & 0x3F) | 0x80), + static_cast(((pt >> 6) & 0x3F) | 0x80), static_cast((pt & 0x3F) | 0x80)}; + } + else + { #pragma warning(disable : 4309) - out += {static_cast(0xEF), static_cast(0xBF), - static_cast(0xBD)}; // U+FFFD + out += {static_cast(0xEF), static_cast(0xBF), static_cast(0xBD)}; // U+FFFD #pragma warning(default : 4309) - } + } } -void utf16_encode(char32_t pt, std::u16string& out) { - if (pt < 0x10000) { - out += static_cast(pt); - } else if (pt < 0x110000) { - out += {static_cast(((pt - 0x10000) >> 10) + 0xD800), - static_cast((pt & 0x3FF) + 0xDC00)}; - } else { - out += 0xFFFD; - } +void utf16_encode(char32_t pt, std::u16string& out) +{ + if (pt < 0x10000) + { + out += static_cast(pt); + } + else if (pt < 0x110000) + { + out += {static_cast(((pt - 0x10000) >> 10) + 0xD800), static_cast((pt & 0x3FF) + 0xDC00)}; + } + else + { + out += 0xFFFD; + } } /* * * * * * * * * * * Decoding logic * * * * * * * * * */ -struct offset_pt { - int offset; - char32_t pt; +struct offset_pt +{ + int offset; + char32_t pt; }; static constexpr const offset_pt invalid_pt = {-1, 0}; @@ -81,117 +93,143 @@ static constexpr const offset_pt invalid_pt = {-1, 0}; * (bytes, for UTF-8) consumed and the result. If no valid codepoint is at * str[i], return invalid_pt. */ -static offset_pt utf8_decode_check(const std::string& str, - std::string::size_type i) { - uint32_t b0, b1, b2, b3; - - b0 = static_cast(str[i]); - - if (b0 < 0x80) { - // 1-byte character - return {1, b0}; - } else if (b0 < 0xC0) { - // Unexpected continuation byte - return invalid_pt; - } else if (b0 < 0xE0) { - // 2-byte character - if (((b1 = str[i + 1]) & 0xC0) != 0x80) return invalid_pt; - - char32_t pt = (b0 & 0x1F) << 6 | (b1 & 0x3F); - if (pt < 0x80) return invalid_pt; - - return {2, pt}; - } else if (b0 < 0xF0) { - // 3-byte character - if (((b1 = str[i + 1]) & 0xC0) != 0x80) return invalid_pt; - if (((b2 = str[i + 2]) & 0xC0) != 0x80) return invalid_pt; - - char32_t pt = (b0 & 0x0F) << 12 | (b1 & 0x3F) << 6 | (b2 & 0x3F); - if (pt < 0x800) return invalid_pt; - - return {3, pt}; - } else if (b0 < 0xF8) { - // 4-byte character - if (((b1 = str[i + 1]) & 0xC0) != 0x80) return invalid_pt; - if (((b2 = str[i + 2]) & 0xC0) != 0x80) return invalid_pt; - if (((b3 = str[i + 3]) & 0xC0) != 0x80) return invalid_pt; - - char32_t pt = - (b0 & 0x0F) << 18 | (b1 & 0x3F) << 12 | (b2 & 0x3F) << 6 | (b3 & 0x3F); - if (pt < 0x10000 || pt >= 0x110000) return invalid_pt; - - return {4, pt}; - } else { - // Codepoint out of range - return invalid_pt; - } +static offset_pt utf8_decode_check(const std::string& str, std::string::size_type i) +{ + uint32_t b0, b1, b2, b3; + + b0 = static_cast(str[i]); + + if (b0 < 0x80) + { + // 1-byte character + return {1, b0}; + } + else if (b0 < 0xC0) + { + // Unexpected continuation byte + return invalid_pt; + } + else if (b0 < 0xE0) + { + // 2-byte character + if (((b1 = str[i + 1]) & 0xC0) != 0x80) return invalid_pt; + + char32_t pt = (b0 & 0x1F) << 6 | (b1 & 0x3F); + if (pt < 0x80) return invalid_pt; + + return {2, pt}; + } + else if (b0 < 0xF0) + { + // 3-byte character + if (((b1 = str[i + 1]) & 0xC0) != 0x80) return invalid_pt; + if (((b2 = str[i + 2]) & 0xC0) != 0x80) return invalid_pt; + + char32_t pt = (b0 & 0x0F) << 12 | (b1 & 0x3F) << 6 | (b2 & 0x3F); + if (pt < 0x800) return invalid_pt; + + return {3, pt}; + } + else if (b0 < 0xF8) + { + // 4-byte character + if (((b1 = str[i + 1]) & 0xC0) != 0x80) return invalid_pt; + if (((b2 = str[i + 2]) & 0xC0) != 0x80) return invalid_pt; + if (((b3 = str[i + 3]) & 0xC0) != 0x80) return invalid_pt; + + char32_t pt = (b0 & 0x0F) << 18 | (b1 & 0x3F) << 12 | (b2 & 0x3F) << 6 | (b3 & 0x3F); + if (pt < 0x10000 || pt >= 0x110000) return invalid_pt; + + return {4, pt}; + } + else + { + // Codepoint out of range + return invalid_pt; + } } // UTF-16 decode helpers. -static inline bool is_high_surrogate(char16_t c) { - return (c >= 0xD800) && (c < 0xDC00); +static inline bool is_high_surrogate(char16_t c) +{ + return (c >= 0xD800) && (c < 0xDC00); } -static inline bool is_low_surrogate(char16_t c) { - return (c >= 0xDC00) && (c < 0xE000); +static inline bool is_low_surrogate(char16_t c) +{ + return (c >= 0xDC00) && (c < 0xE000); } /* * Like utf8_decode_check, but for UTF-16. */ -static offset_pt utf16_decode_check(const std::u16string& str, - std::u16string::size_type i) { - if (is_high_surrogate(str[i]) && is_low_surrogate(str[i + 1])) { - // High surrogate followed by low surrogate - char32_t pt = (((str[i] - 0xD800) << 10) | (str[i + 1] - 0xDC00)) + 0x10000; - return {2, pt}; - } else if (is_high_surrogate(str[i]) || is_low_surrogate(str[i])) { - // High surrogate *not* followed by low surrogate, or unpaired low surrogate - return invalid_pt; - } else { - return {1, str[i]}; - } +static offset_pt utf16_decode_check(const std::u16string& str, std::u16string::size_type i) +{ + if (is_high_surrogate(str[i]) && is_low_surrogate(str[i + 1])) + { + // High surrogate followed by low surrogate + char32_t pt = (((str[i] - 0xD800) << 10) | (str[i + 1] - 0xDC00)) + 0x10000; + return {2, pt}; + } + else if (is_high_surrogate(str[i]) || is_low_surrogate(str[i])) + { + // High surrogate *not* followed by low surrogate, or unpaired low surrogate + return invalid_pt; + } + else + { + return {1, str[i]}; + } } /* * UTF-32 is very easy to check. */ -static offset_pt utf32_decode_check(const std::u32string& str, - std::u32string::size_type i) { - if (str[i] < 0x110000) { - return {1, str[i]}; - } else { - return invalid_pt; - } +static offset_pt utf32_decode_check(const std::u32string& str, std::u32string::size_type i) +{ + if (str[i] < 0x110000) + { + return {1, str[i]}; + } + else + { + return invalid_pt; + } } /* * * * * * * * * * * Decoding wrappers * * * * * * * * * */ -char32_t utf8_decode(const std::string& str, std::string::size_type& i, - bool* replacement_flag) { - offset_pt res = utf8_decode_check(str, i); - if (res.offset < 0) { - if (replacement_flag) *replacement_flag = true; - i += 1; - return 0xFFFD; - } else { - i += res.offset; - return res.pt; - } +char32_t utf8_decode(const std::string& str, std::string::size_type& i, bool* replacement_flag) +{ + offset_pt res = utf8_decode_check(str, i); + if (res.offset < 0) + { + if (replacement_flag) *replacement_flag = true; + i += 1; + return 0xFFFD; + } + else + { + i += res.offset; + return res.pt; + } } -char32_t utf16_decode(const std::u16string& str, std::u16string::size_type& i, - bool* replacement_flag) { - offset_pt res = utf16_decode_check(str, i); - if (res.offset < 0) { - if (replacement_flag) *replacement_flag = true; - i += 1; - return 0xFFFD; - } else { - i += res.offset; - return res.pt; - } +char32_t utf16_decode(const std::u16string& str, std::u16string::size_type& i, bool* replacement_flag) +{ + offset_pt res = utf16_decode_check(str, i); + if (res.offset < 0) + { + if (replacement_flag) *replacement_flag = true; + i += 1; + return 0xFFFD; + } + else + { + i += res.offset; + return res.pt; + } } /* * * * * * * * * * @@ -199,72 +237,80 @@ char32_t utf16_decode(const std::u16string& str, std::u16string::size_type& i, * * * * * * * * * */ template -bool check_helper(const Tfunc& func, const Tstring& str) { - for (typename Tstring::size_type i = 0; i < str.length();) { - offset_pt res = func(str, i); - if (res.offset < 0) return false; - i += res.offset; - } - return true; +bool check_helper(const Tfunc& func, const Tstring& str) +{ + for (typename Tstring::size_type i = 0; i < str.length();) + { + offset_pt res = func(str, i); + if (res.offset < 0) return false; + i += res.offset; + } + return true; } -bool utf8_check(const std::string& str) { - return check_helper(utf8_decode_check, str); +bool utf8_check(const std::string& str) +{ + return check_helper(utf8_decode_check, str); } -bool utf16_check(const std::u16string& str) { - return check_helper(utf16_decode_check, str); +bool utf16_check(const std::u16string& str) +{ + return check_helper(utf16_decode_check, str); } -bool utf32_check(const std::u32string& str) { - return check_helper(utf32_decode_check, str); +bool utf32_check(const std::u32string& str) +{ + return check_helper(utf32_decode_check, str); } /* * * * * * * * * * * Conversion * * * * * * * * * */ -std::u32string to_utf32(const std::string& str) { - std::u32string out; - out.reserve(str.length()); // likely overallocate - for (std::string::size_type i = 0; i < str.length();) - out += utf8_decode(str, i); - return out; +std::u32string to_utf32(const std::string& str) +{ + std::u32string out; + out.reserve(str.length()); // likely overallocate + for (std::string::size_type i = 0; i < str.length();) out += utf8_decode(str, i); + return out; } -std::u16string to_utf16(const std::string& str) { - std::u16string out; - out.reserve(str.length()); // likely overallocate - for (std::string::size_type i = 0; i < str.length();) - utf16_encode(utf8_decode(str, i), out); - return out; +std::u16string to_utf16(const std::string& str) +{ + std::u16string out; + out.reserve(str.length()); // likely overallocate + for (std::string::size_type i = 0; i < str.length();) utf16_encode(utf8_decode(str, i), out); + return out; } -std::string to_utf8(const std::u16string& str) { - std::string out; - out.reserve(str.length() * 3 / 2); // estimate - for (std::u16string::size_type i = 0; i < str.length();) - utf8_encode(utf16_decode(str, i), out); - return out; +std::string to_utf8(const std::u16string& str) +{ + std::string out; + out.reserve(str.length() * 3 / 2); // estimate + for (std::u16string::size_type i = 0; i < str.length();) utf8_encode(utf16_decode(str, i), out); + return out; } -std::string to_utf8(const std::u32string& str) { - std::string out; - out.reserve(str.length() * 3 / 2); // estimate - for (char32_t pt : str) utf8_encode(pt, out); - return out; +std::string to_utf8(const std::u32string& str) +{ + std::string out; + out.reserve(str.length() * 3 / 2); // estimate + for (char32_t pt : str) utf8_encode(pt, out); + return out; } /* * * * * * * * * * * Lowercase * * * * * * * * * */ -std::string lowercase(const std::string& str) { - std::string out; - out.reserve(str.size()); - for (size_t i = 0; i < str.length();) { - int32_t pt = utf8_decode(str, i); - utf8_encode(pt + lowercase_offset(pt), out); - } - return out; +std::string lowercase(const std::string& str) +{ + std::string out; + out.reserve(str.size()); + for (size_t i = 0; i < str.length();) + { + int32_t pt = utf8_decode(str, i); + utf8_encode(pt + lowercase_offset(pt), out); + } + return out; } /* * * * * * * * * * @@ -274,135 +320,151 @@ std::string lowercase(const std::string& str) { /* * Write the canonical decomposition of pt to out. */ -static void unicode_decompose(char32_t pt, std::u32string& out) { - // Special-case: Hangul decomposition - if (pt >= 0xAC00 && pt < 0xD7A4) { - out += 0x1100 + (pt - 0xAC00) / 588; - out += 0x1161 + ((pt - 0xAC00) % 588) / 28; - if ((pt - 0xAC00) % 28) out += 0x11A7 + (pt - 0xAC00) % 28; - return; - } - - // Otherwise, look up in the decomposition table - int32_t decomp_start_idx = decomp_idx(pt); - if (!decomp_start_idx) { - out += pt; - return; - } - - size_t length = (decomp_start_idx >> 14) + 1; - decomp_start_idx &= (1 << 14) - 1; - - for (size_t i = 0; i < length; i++) { - out += xref[decomp_seq[decomp_start_idx + i]]; - } +static void unicode_decompose(char32_t pt, std::u32string& out) +{ + // Special-case: Hangul decomposition + if (pt >= 0xAC00 && pt < 0xD7A4) + { + out += 0x1100 + (pt - 0xAC00) / 588; + out += 0x1161 + ((pt - 0xAC00) % 588) / 28; + if ((pt - 0xAC00) % 28) out += 0x11A7 + (pt - 0xAC00) % 28; + return; + } + + // Otherwise, look up in the decomposition table + int32_t decomp_start_idx = decomp_idx(pt); + if (!decomp_start_idx) + { + out += pt; + return; + } + + size_t length = (decomp_start_idx >> 14) + 1; + decomp_start_idx &= (1 << 14) - 1; + + for (size_t i = 0; i < length; i++) + { + out += xref[decomp_seq[decomp_start_idx + i]]; + } } /* * If there is a Primary Composite equivalent to , return it. Otherwise * return 0. */ -static uint32_t unicode_compose(uint32_t L, uint32_t C) { - int comp_seq_idx; +static uint32_t unicode_compose(uint32_t L, uint32_t C) +{ + int comp_seq_idx; - /* Algorithmic Hangul composition */ - if (L >= 0x1100 && L < 0x1113 && C >= 0x1161 && C < 0x1176) - return ((L - 0x1100) * 21 + C - 0x1161) * 28 + 0xAC00; + /* Algorithmic Hangul composition */ + if (L >= 0x1100 && L < 0x1113 && C >= 0x1161 && C < 0x1176) return ((L - 0x1100) * 21 + C - 0x1161) * 28 + 0xAC00; - if (L >= 0xAC00 && L < 0xD7A4 && !((L - 0xAC00) % 28) && C >= 0x11A8 && - C < 0x11C3) - return L + C - 0x11A7; + if (L >= 0xAC00 && L < 0xD7A4 && !((L - 0xAC00) % 28) && C >= 0x11A8 && C < 0x11C3) return L + C - 0x11A7; - /* Predefined composition mapping */ - comp_seq_idx = comp_idx(L); - do { - if (xref[comp_seq[comp_seq_idx * 2] & ~0x8000] == C) - return xref[comp_seq[comp_seq_idx * 2 + 1]]; - } while (!(comp_seq[(comp_seq_idx++) * 2] & 0x8000)); + /* Predefined composition mapping */ + comp_seq_idx = comp_idx(L); + do + { + if (xref[comp_seq[comp_seq_idx * 2] & ~0x8000] == C) return xref[comp_seq[comp_seq_idx * 2 + 1]]; + } while (!(comp_seq[(comp_seq_idx++) * 2] & 0x8000)); - return 0; + return 0; } -std::u32string normalize32(const std::string& str, bool compose, - bool* replacement_flag) { - if (str.empty()) return {}; - - // Decode and decompose - std::u32string codepoints; - codepoints.reserve(str.size()); - for (size_t i = 0; i < str.length();) { - uint32_t pt = utf8_decode(str, i, replacement_flag); - unicode_decompose(pt, codepoints); - } - - // Canonical Ordering Algorithm: sort all runs of characters with nonzero - // combining class. - size_t start = 0; - while (start < codepoints.length()) { - if (!ccc(codepoints[start])) { - start++; - continue; +std::u32string normalize32(const std::string& str, bool compose, bool* replacement_flag) +{ + if (str.empty()) return {}; + + // Decode and decompose + std::u32string codepoints; + codepoints.reserve(str.size()); + for (size_t i = 0; i < str.length();) + { + uint32_t pt = utf8_decode(str, i, replacement_flag); + unicode_decompose(pt, codepoints); } - size_t end = start + 1; - while (end < codepoints.length() && ccc(codepoints[end])) { - end++; + // Canonical Ordering Algorithm: sort all runs of characters with nonzero + // combining class. + size_t start = 0; + while (start < codepoints.length()) + { + if (!ccc(codepoints[start])) + { + start++; + continue; + } + + size_t end = start + 1; + while (end < codepoints.length() && ccc(codepoints[end])) + { + end++; + } + + if (end - start > 1) + { + std::stable_sort(codepoints.begin() + start, codepoints.begin() + end, + [](char32_t a, char32_t b) { return ccc(a) < ccc(b); }); + } + + start = end + 1; } - if (end - start > 1) { - std::stable_sort(codepoints.begin() + start, codepoints.begin() + end, - [](char32_t a, char32_t b) { return ccc(a) < ccc(b); }); + if (compose) + { + size_t i = 1; + int last_class = -1, starter_pos = 0, target_pos = 1; + char32_t starter = codepoints[0]; + + while (i < codepoints.length()) + { + char32_t ch = codepoints[i]; + int ch_class = ccc(ch); + + uint32_t composite = unicode_compose(starter, ch); + if (composite && last_class < ch_class) + { + codepoints[starter_pos] = composite; + starter = composite; + } + else if (ch_class == 0) + { + starter_pos = target_pos; + starter = ch; + last_class = -1; + codepoints[target_pos] = ch; + target_pos++; + } + else + { + last_class = ch_class; + codepoints[target_pos] = ch; + target_pos++; + } + + i++; + } + + codepoints.resize(target_pos); } - start = end + 1; - } - - if (compose) { - size_t i = 1; - int last_class = -1, starter_pos = 0, target_pos = 1; - char32_t starter = codepoints[0]; - - while (i < codepoints.length()) { - char32_t ch = codepoints[i]; - int ch_class = ccc(ch); - - uint32_t composite = unicode_compose(starter, ch); - if (composite && last_class < ch_class) { - codepoints[starter_pos] = composite; - starter = composite; - } else if (ch_class == 0) { - starter_pos = target_pos; - starter = ch; - last_class = -1; - codepoints[target_pos] = ch; - target_pos++; - } else { - last_class = ch_class; - codepoints[target_pos] = ch; - target_pos++; - } - - i++; - } - - codepoints.resize(target_pos); - } - - return codepoints; + return codepoints; } -std::string normalize8(const std::string& str, bool compose, - bool* replacement_flag) { - std::u32string codepoints = normalize32(str, compose, replacement_flag); - return to_utf8(codepoints); +std::string normalize8(const std::string& str, bool compose, bool* replacement_flag) +{ + std::u32string codepoints = normalize32(str, compose, replacement_flag); + return to_utf8(codepoints); } -std::string nfc(const std::string& str, bool* replacement_flag) { - return normalize8(str, true, replacement_flag); +std::string nfc(const std::string& str, bool* replacement_flag) +{ + return normalize8(str, true, replacement_flag); } -std::string nfd(const std::string& str, bool* replacement_flag) { - return normalize8(str, false, replacement_flag); +std::string nfd(const std::string& str, bool* replacement_flag) +{ + return normalize8(str, false, replacement_flag); } -} // namespace miniutf +} // namespace miniutf diff --git a/src/Datadog.Trace.ClrProfiler.Native/miniutf.hpp b/src/Datadog.Trace.ClrProfiler.Native/miniutf.hpp index 5880c15a70..ac841f341e 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/miniutf.hpp +++ b/src/Datadog.Trace.ClrProfiler.Native/miniutf.hpp @@ -23,15 +23,16 @@ #include -namespace miniutf { +namespace miniutf +{ /* * Character-at-a-time encoding. Convert pt to UTF-8/16 and append to out. * * If pt is invalid (greater than U+10FFFF), U+FFFD will be encoded instead. */ -void utf8_encode(char32_t pt, std::string & out); -void utf16_encode(char32_t pt, std::u16string & out); +void utf8_encode(char32_t pt, std::string& out); +void utf16_encode(char32_t pt, std::u16string& out); /* * Character-at-a-time decoding. Decodes and returns the codepoint starting at str[pos], @@ -40,12 +41,8 @@ void utf16_encode(char32_t pt, std::u16string & out); * If an invalid codepoint is found, return U+FFFD, add 1 to pos, and (if replacement_flag is * non-null) set *replacement_flag to true. */ -char32_t utf8_decode(const std::string & str, - std::string::size_type & pos, - bool * replacement_flag = nullptr); -char32_t utf16_decode(const std::u16string & str, - std::u16string::size_type & pos, - bool * replacement_flag = nullptr); +char32_t utf8_decode(const std::string& str, std::string::size_type& pos, bool* replacement_flag = nullptr); +char32_t utf16_decode(const std::u16string& str, std::u16string::size_type& pos, bool* replacement_flag = nullptr); /* * Return true if str is valid UTF-8, -16, or -32. @@ -58,9 +55,9 @@ char32_t utf16_decode(const std::u16string & str, * * - UTF-32 is valid if it contains no codepoints above U+10FFFF. */ -bool utf8_check(const std::string & str); -bool utf16_check(const std::string & str); -bool utf32_check(const std::string & str); +bool utf8_check(const std::string& str); +bool utf16_check(const std::string& str); +bool utf32_check(const std::string& str); /* * Convert back and forth between UTF-8 and UTF-16 or UTF-32. @@ -68,15 +65,15 @@ bool utf32_check(const std::string & str); * These functions replace invalid sections of input with U+FFFD. If this is not desired, * use utf8_check (above) first to check that the input is valid. */ -std::u32string to_utf32(const std::string & str); -std::u16string to_utf16(const std::string & str); -std::string to_utf8(const std::u16string & str); -std::string to_utf8(const std::u32string & str); +std::u32string to_utf32(const std::string& str); +std::u16string to_utf16(const std::string& str); +std::string to_utf8(const std::u16string& str); +std::string to_utf8(const std::u32string& str); /* * Convert str to lowercase, per the built-in Unicode lowercasing map (codepoint-by-codepoint). */ -std::string lowercase(const std::string & str); +std::string lowercase(const std::string& str); /* * Decompose str. Then, if compose is set, recompose it. @@ -84,12 +81,8 @@ std::string lowercase(const std::string & str); * If replacement characters are used during decoding (i.e. str contains invalid UTF-8), and * replacement_flag is specified, it will be set to true. */ -std::string normalize8(const std::string & str, - bool compose, - bool * replacement_flag = nullptr); -std::u32string normalize32(const std::string & str, - bool compose, - bool * replacement_flag = nullptr); +std::string normalize8(const std::string& str, bool compose, bool* replacement_flag = nullptr); +std::u32string normalize32(const std::string& str, bool compose, bool* replacement_flag = nullptr); /* * Convert str to Normalization Form C. Equivalent to normalize8(str, true, replacement_flag). @@ -97,7 +90,7 @@ std::u32string normalize32(const std::string & str, * If replacement characters are used during decoding (i.e. str contains invalid UTF-8), and * replacement_flag is specified, *replacement_flag will be set to true. */ -std::string nfc(const std::string & str, bool * replacement_flag = nullptr); +std::string nfc(const std::string& str, bool* replacement_flag = nullptr); /* * Convert str to Normalization Form D. Equivalent to normalize8(in, false, replacement_flag). @@ -105,6 +98,6 @@ std::string nfc(const std::string & str, bool * replacement_flag = nullptr); * If replacement characters are used during decoding (i.e. str contains invalid UTF-8), and * replacement_flag is specified, *replacement_flag will be set to true. */ -std::string nfd(const std::string & str, bool * replacement_flag = nullptr); +std::string nfd(const std::string& str, bool* replacement_flag = nullptr); } // namespace miniutf diff --git a/src/Datadog.Trace.ClrProfiler.Native/miniutfdata.h b/src/Datadog.Trace.ClrProfiler.Native/miniutfdata.h index 1328ae7e17..7005f44a15 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/miniutfdata.h +++ b/src/Datadog.Trace.ClrProfiler.Native/miniutfdata.h @@ -1,1900 +1,1526 @@ static const uint32_t xref[] = { - 0, 59, 60, 61, 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 168, 180, 183, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 209, 210, - 211, 212, 213, 214, 216, 217, 218, 219, 220, 221, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 241, 242, - 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 308, 309, 310, 311, 313, 314, 315, 316, 317, 318, 323, 324, 325, 326, - 327, 328, 332, 333, 334, 335, 336, 337, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 416, 417, 431, 432, 439, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 478, 479, 480, 481, 482, 483, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 500, 501, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 542, 543, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 658, 697, 768, 769, 770, 771, 772, 774, 775, 776, 777, 778, - 779, 780, 783, 785, 787, 788, 795, 803, 804, 805, 806, 807, 808, 813, - 814, 816, 817, 824, 832, 833, 834, 835, 836, 837, 884, 894, 901, 902, - 903, 904, 905, 906, 908, 910, 911, 912, 913, 917, 919, 921, 927, 929, - 933, 937, 938, 939, 940, 941, 942, 943, 944, 945, 949, 951, 953, 959, - 961, 965, 969, 970, 971, 972, 973, 974, 978, 979, 980, 1024, 1025, - 1027, 1030, 1031, 1036, 1037, 1038, 1040, 1043, 1045, 1046, 1047, - 1048, 1049, 1050, 1054, 1059, 1063, 1067, 1069, 1072, 1075, 1077, - 1078, 1079, 1080, 1081, 1082, 1086, 1091, 1095, 1099, 1101, 1104, - 1105, 1107, 1110, 1111, 1116, 1117, 1118, 1140, 1141, 1142, 1143, - 1217, 1218, 1232, 1233, 1234, 1235, 1238, 1239, 1240, 1241, 1242, - 1243, 1244, 1245, 1246, 1247, 1250, 1251, 1252, 1253, 1254, 1255, - 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, - 1267, 1268, 1269, 1272, 1273, 1460, 1463, 1464, 1465, 1468, 1471, - 1473, 1474, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1496, 1497, - 1498, 1499, 1500, 1502, 1504, 1505, 1507, 1508, 1510, 1511, 1512, - 1513, 1514, 1522, 1570, 1571, 1572, 1573, 1574, 1575, 1608, 1610, - 1619, 1620, 1621, 1728, 1729, 1730, 1746, 1747, 1749, 2325, 2326, - 2327, 2332, 2337, 2338, 2344, 2345, 2347, 2351, 2352, 2353, 2355, - 2356, 2364, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2465, - 2466, 2479, 2492, 2494, 2503, 2507, 2508, 2519, 2524, 2525, 2527, - 2582, 2583, 2588, 2603, 2610, 2611, 2614, 2616, 2620, 2649, 2650, - 2651, 2654, 2849, 2850, 2876, 2878, 2887, 2888, 2891, 2892, 2902, - 2903, 2908, 2909, 2962, 2964, 3006, 3014, 3015, 3018, 3019, 3020, - 3031, 3142, 3144, 3158, 3263, 3264, 3266, 3270, 3271, 3272, 3274, - 3275, 3285, 3286, 3390, 3398, 3399, 3402, 3403, 3404, 3415, 3530, - 3535, 3545, 3546, 3548, 3549, 3550, 3551, 3904, 3906, 3907, 3916, - 3917, 3921, 3922, 3926, 3927, 3931, 3932, 3945, 3953, 3954, 3955, - 3956, 3957, 3958, 3960, 3968, 3969, 3984, 3986, 3987, 3996, 3997, - 4001, 4002, 4006, 4007, 4011, 4012, 4018, 4019, 4021, 4023, 4025, - 4133, 4134, 4142, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, - 6925, 6926, 6929, 6930, 6965, 6970, 6971, 6972, 6973, 6974, 6975, - 6976, 6977, 6978, 6979, 7680, 7681, 7682, 7683, 7684, 7685, 7686, - 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, - 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, - 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, - 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, - 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, - 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, - 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, - 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, - 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, - 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, - 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, - 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, - 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, - 7830, 7831, 7832, 7833, 7835, 7840, 7841, 7842, 7843, 7844, 7845, - 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, - 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, - 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, - 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, - 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, - 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, - 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, - 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7936, 7937, 7938, 7939, - 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, - 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7960, 7961, 7962, 7963, - 7964, 7965, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, - 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, - 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, - 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8008, 8009, 8010, 8011, - 8012, 8013, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8025, - 8027, 8029, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, - 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, - 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, - 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, - 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, - 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, - 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, - 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8118, 8119, - 8120, 8121, 8122, 8123, 8124, 8126, 8127, 8129, 8130, 8131, 8132, - 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, - 8145, 8146, 8147, 8150, 8151, 8152, 8153, 8154, 8155, 8157, 8158, - 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, - 8170, 8171, 8172, 8173, 8174, 8175, 8178, 8179, 8180, 8182, 8183, - 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8192, 8193, 8194, 8195, - 8486, 8490, 8491, 8592, 8594, 8596, 8602, 8603, 8622, 8653, 8654, - 8655, 8656, 8658, 8660, 8707, 8708, 8712, 8713, 8715, 8716, 8739, - 8740, 8741, 8742, 8764, 8769, 8771, 8772, 8773, 8775, 8776, 8777, - 8781, 8800, 8801, 8802, 8804, 8805, 8813, 8814, 8815, 8816, 8817, - 8818, 8819, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, - 8829, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, - 8849, 8850, 8866, 8872, 8873, 8875, 8876, 8877, 8878, 8879, 8882, - 8883, 8884, 8885, 8928, 8929, 8930, 8931, 8938, 8939, 8940, 8941, - 9001, 9002, 10972, 10973, 12296, 12297, 12358, 12363, 12364, 12365, - 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, - 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, - 12386, 12388, 12389, 12390, 12391, 12392, 12393, 12399, 12400, 12401, - 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, - 12412, 12413, 12436, 12441, 12442, 12445, 12446, 12454, 12459, 12460, - 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, - 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, - 12481, 12482, 12484, 12485, 12486, 12487, 12488, 12489, 12495, 12496, - 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, - 12507, 12508, 12509, 12527, 12528, 12529, 12530, 12532, 12535, 12536, - 12537, 12538, 12541, 12542, 13470, 13497, 13499, 13535, 13589, 14062, - 14076, 14209, 14383, 14434, 14460, 14535, 14563, 14620, 14650, 14894, - 14956, 15076, 15112, 15129, 15177, 15261, 15384, 15438, 15667, 15766, - 16044, 16056, 16155, 16380, 16392, 16408, 16441, 16454, 16534, 16611, - 16687, 16898, 16935, 17056, 17153, 17204, 17241, 17365, 17369, 17419, - 17515, 17707, 17757, 17761, 17771, 17879, 17913, 17973, 18110, 18119, - 18837, 18918, 19054, 19062, 19122, 19251, 19406, 19662, 19693, 19704, - 19798, 19981, 20006, 20018, 20024, 20025, 20029, 20033, 20098, 20102, - 20142, 20160, 20172, 20196, 20320, 20352, 20358, 20363, 20398, 20411, - 20415, 20482, 20523, 20602, 20633, 20687, 20698, 20711, 20800, 20805, - 20813, 20820, 20836, 20839, 20840, 20841, 20845, 20855, 20864, 20877, - 20882, 20885, 20887, 20900, 20908, 20917, 20919, 20937, 20940, 20956, - 20958, 20981, 20995, 20999, 21015, 21033, 21050, 21051, 21062, 21106, - 21111, 21129, 21147, 21155, 21171, 21191, 21193, 21202, 21214, 21220, - 21237, 21242, 21253, 21254, 21271, 21311, 21321, 21329, 21338, 21363, - 21365, 21373, 21375, 21443, 21450, 21471, 21477, 21483, 21489, 21510, - 21519, 21533, 21560, 21570, 21576, 21608, 21662, 21666, 21693, 21750, - 21776, 21843, 21845, 21859, 21892, 21895, 21913, 21917, 21931, 21939, - 21952, 21954, 21986, 22022, 22097, 22120, 22132, 22265, 22294, 22295, - 22411, 22478, 22516, 22541, 22577, 22578, 22592, 22618, 22622, 22696, - 22700, 22707, 22744, 22751, 22766, 22770, 22775, 22790, 22810, 22818, - 22852, 22856, 22865, 22868, 22882, 22899, 23000, 23020, 23067, 23079, - 23138, 23142, 23221, 23304, 23336, 23358, 23429, 23491, 23512, 23527, - 23534, 23539, 23551, 23558, 23586, 23615, 23648, 23650, 23652, 23653, - 23662, 23693, 23744, 23833, 23875, 23888, 23915, 23918, 23932, 23986, - 23994, 24033, 24034, 24061, 24104, 24125, 24169, 24180, 24230, 24240, - 24243, 24246, 24265, 24266, 24274, 24275, 24281, 24300, 24318, 24324, - 24354, 24403, 24418, 24425, 24427, 24459, 24474, 24489, 24493, 24525, - 24535, 24565, 24569, 24594, 24604, 24693, 24705, 24724, 24775, 24792, - 24801, 24840, 24900, 24904, 24908, 24910, 24928, 24936, 24954, 24974, - 24976, 24996, 25007, 25010, 25054, 25074, 25078, 25088, 25104, 25115, - 25134, 25140, 25181, 25265, 25289, 25295, 25299, 25300, 25340, 25342, - 25405, 25424, 25448, 25467, 25475, 25504, 25513, 25540, 25541, 25572, - 25628, 25634, 25682, 25705, 25719, 25726, 25754, 25757, 25796, 25935, - 25942, 25964, 25976, 26009, 26053, 26082, 26083, 26131, 26185, 26228, - 26248, 26257, 26268, 26292, 26310, 26356, 26360, 26368, 26391, 26395, - 26401, 26446, 26451, 26454, 26462, 26491, 26501, 26519, 26611, 26618, - 26647, 26655, 26706, 26753, 26757, 26766, 26792, 26900, 26946, 27043, - 27114, 27138, 27155, 27304, 27347, 27355, 27396, 27425, 27476, 27506, - 27511, 27513, 27551, 27566, 27578, 27579, 27726, 27751, 27784, 27839, - 27852, 27853, 27877, 27926, 27931, 27934, 27956, 27966, 27969, 28009, - 28010, 28023, 28024, 28037, 28107, 28122, 28138, 28153, 28186, 28207, - 28270, 28316, 28346, 28359, 28363, 28369, 28379, 28431, 28450, 28451, - 28526, 28614, 28651, 28670, 28699, 28702, 28729, 28746, 28784, 28791, - 28797, 28825, 28845, 28872, 28889, 28997, 29001, 29038, 29084, 29134, - 29136, 29200, 29211, 29224, 29227, 29237, 29264, 29282, 29312, 29333, - 29359, 29376, 29436, 29482, 29557, 29562, 29575, 29579, 29605, 29618, - 29662, 29702, 29705, 29730, 29767, 29788, 29801, 29809, 29829, 29833, - 29848, 29898, 29958, 29988, 30011, 30014, 30041, 30053, 30064, 30178, - 30224, 30237, 30239, 30274, 30313, 30410, 30427, 30439, 30452, 30465, - 30494, 30495, 30528, 30538, 30603, 30631, 30798, 30827, 30860, 30865, - 30922, 30924, 30971, 31018, 31036, 31038, 31048, 31049, 31056, 31062, - 31069, 31070, 31077, 31103, 31117, 31118, 31119, 31150, 31178, 31211, - 31260, 31296, 31306, 31311, 31361, 31409, 31435, 31470, 31520, 31680, - 31686, 31689, 31806, 31840, 31867, 31890, 31934, 31954, 31958, 31971, - 31975, 31976, 32000, 32016, 32034, 32047, 32091, 32099, 32160, 32190, - 32199, 32244, 32258, 32265, 32311, 32321, 32325, 32574, 32626, 32633, - 32634, 32645, 32661, 32666, 32701, 32762, 32769, 32773, 32838, 32864, - 32879, 32880, 32894, 32907, 32941, 32946, 33027, 33086, 33240, 33256, - 33261, 33281, 33284, 33304, 33391, 33401, 33419, 33425, 33437, 33457, - 33459, 33469, 33509, 33510, 33565, 33571, 33590, 33618, 33619, 33635, - 33709, 33725, 33737, 33738, 33740, 33756, 33767, 33775, 33777, 33853, - 33865, 33879, 34030, 34033, 34035, 34044, 34070, 34148, 34253, 34298, - 34310, 34322, 34349, 34367, 34384, 34396, 34407, 34409, 34440, 34473, - 34530, 34574, 34600, 34667, 34681, 34694, 34746, 34785, 34817, 34847, - 34892, 34912, 34915, 35010, 35023, 35031, 35038, 35041, 35064, 35066, - 35088, 35137, 35172, 35206, 35211, 35222, 35488, 35498, 35519, 35531, - 35538, 35542, 35565, 35576, 35582, 35585, 35641, 35672, 35712, 35722, - 35912, 35925, 36011, 36033, 36034, 36040, 36051, 36104, 36123, 36215, - 36284, 36299, 36335, 36336, 36554, 36564, 36646, 36650, 36664, 36667, - 36706, 36766, 36784, 36790, 36899, 36920, 36978, 36988, 37007, 37012, - 37070, 37086, 37105, 37117, 37137, 37147, 37226, 37273, 37300, 37324, - 37327, 37329, 37428, 37432, 37494, 37500, 37591, 37592, 37636, 37706, - 37881, 37909, 38283, 38317, 38327, 38446, 38475, 38477, 38517, 38520, - 38524, 38534, 38563, 38583, 38584, 38595, 38626, 38627, 38646, 38647, - 38691, 38706, 38728, 38742, 38875, 38880, 38911, 38923, 38936, 38953, - 38971, 39006, 39138, 39151, 39164, 39208, 39209, 39335, 39362, 39409, - 39422, 39530, 39698, 39791, 40000, 40023, 40189, 40295, 40372, 40442, - 40478, 40575, 40599, 40607, 40635, 40654, 40697, 40702, 40709, 40719, - 40726, 40763, 40771, 40845, 40846, 40860, 63744, 63745, 63746, 63747, - 63748, 63749, 63750, 63751, 63752, 63753, 63754, 63755, 63756, 63757, - 63758, 63759, 63760, 63761, 63762, 63763, 63764, 63765, 63766, 63767, - 63768, 63769, 63770, 63771, 63772, 63773, 63774, 63775, 63776, 63777, - 63778, 63779, 63780, 63781, 63782, 63783, 63784, 63785, 63786, 63787, - 63788, 63789, 63790, 63791, 63792, 63793, 63794, 63795, 63796, 63797, - 63798, 63799, 63800, 63801, 63802, 63803, 63804, 63805, 63806, 63807, - 63808, 63809, 63810, 63811, 63812, 63813, 63814, 63815, 63816, 63817, - 63818, 63819, 63820, 63821, 63822, 63823, 63824, 63825, 63826, 63827, - 63828, 63829, 63830, 63831, 63832, 63833, 63834, 63835, 63836, 63837, - 63838, 63839, 63840, 63841, 63842, 63843, 63844, 63845, 63846, 63847, - 63848, 63849, 63850, 63851, 63852, 63853, 63854, 63855, 63856, 63857, - 63858, 63859, 63860, 63861, 63862, 63863, 63864, 63865, 63866, 63867, - 63868, 63869, 63870, 63871, 63872, 63873, 63874, 63875, 63876, 63877, - 63878, 63879, 63880, 63881, 63882, 63883, 63884, 63885, 63886, 63887, - 63888, 63889, 63890, 63891, 63892, 63893, 63894, 63895, 63896, 63897, - 63898, 63899, 63900, 63901, 63902, 63903, 63904, 63905, 63906, 63907, - 63908, 63909, 63910, 63911, 63912, 63913, 63914, 63915, 63916, 63917, - 63918, 63919, 63920, 63921, 63922, 63923, 63924, 63925, 63926, 63927, - 63928, 63929, 63930, 63931, 63932, 63933, 63934, 63935, 63936, 63937, - 63938, 63939, 63940, 63941, 63942, 63943, 63944, 63945, 63946, 63947, - 63948, 63949, 63950, 63951, 63952, 63953, 63954, 63955, 63956, 63957, - 63958, 63959, 63960, 63961, 63962, 63963, 63964, 63965, 63966, 63967, - 63968, 63969, 63970, 63971, 63972, 63973, 63974, 63975, 63976, 63977, - 63978, 63979, 63980, 63981, 63982, 63983, 63984, 63985, 63986, 63987, - 63988, 63989, 63990, 63991, 63992, 63993, 63994, 63995, 63996, 63997, - 63998, 63999, 64000, 64001, 64002, 64003, 64004, 64005, 64006, 64007, - 64008, 64009, 64010, 64011, 64012, 64013, 64016, 64018, 64021, 64022, - 64023, 64024, 64025, 64026, 64027, 64028, 64029, 64030, 64032, 64034, - 64037, 64038, 64042, 64043, 64044, 64045, 64046, 64047, 64048, 64049, - 64050, 64051, 64052, 64053, 64054, 64055, 64056, 64057, 64058, 64059, - 64060, 64061, 64062, 64063, 64064, 64065, 64066, 64067, 64068, 64069, - 64070, 64071, 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, - 64080, 64081, 64082, 64083, 64084, 64085, 64086, 64087, 64088, 64089, - 64090, 64091, 64092, 64093, 64094, 64095, 64096, 64097, 64098, 64099, - 64100, 64101, 64102, 64103, 64104, 64105, 64106, 64107, 64108, 64109, - 64112, 64113, 64114, 64115, 64116, 64117, 64118, 64119, 64120, 64121, - 64122, 64123, 64124, 64125, 64126, 64127, 64128, 64129, 64130, 64131, - 64132, 64133, 64134, 64135, 64136, 64137, 64138, 64139, 64140, 64141, - 64142, 64143, 64144, 64145, 64146, 64147, 64148, 64149, 64150, 64151, - 64152, 64153, 64154, 64155, 64156, 64157, 64158, 64159, 64160, 64161, - 64162, 64163, 64164, 64165, 64166, 64167, 64168, 64169, 64170, 64171, - 64172, 64173, 64174, 64175, 64176, 64177, 64178, 64179, 64180, 64181, - 64182, 64183, 64184, 64185, 64186, 64187, 64188, 64189, 64190, 64191, - 64192, 64193, 64194, 64195, 64196, 64197, 64198, 64199, 64200, 64201, - 64202, 64203, 64204, 64205, 64206, 64207, 64208, 64209, 64210, 64211, - 64212, 64213, 64214, 64215, 64216, 64217, 64285, 64287, 64298, 64299, - 64300, 64301, 64302, 64303, 64304, 64305, 64306, 64307, 64308, 64309, - 64310, 64312, 64313, 64314, 64315, 64316, 64318, 64320, 64321, 64323, - 64324, 64326, 64327, 64328, 64329, 64330, 64331, 64332, 64333, 64334, - 69785, 69786, 69787, 69788, 69797, 69803, 69818, 69927, 69934, 69935, - 69937, 69938, 119127, 119128, 119134, 119135, 119136, 119137, 119138, - 119139, 119140, 119141, 119150, 119151, 119152, 119153, 119154, - 119225, 119226, 119227, 119228, 119229, 119230, 119231, 119232, - 131362, 132380, 132389, 132427, 132666, 133124, 133342, 133676, - 133987, 136420, 136872, 136938, 137672, 138008, 138507, 138724, - 138726, 139651, 139679, 140081, 141012, 141380, 141386, 142092, - 142321, 143370, 144056, 144223, 144275, 144284, 144323, 144341, - 144493, 145059, 145575, 146061, 146170, 146620, 146718, 147153, - 147294, 147342, 148067, 148206, 148395, 149000, 149301, 149524, - 150582, 150674, 151457, 151480, 151620, 151794, 151795, 151833, - 151859, 152137, 152605, 153126, 153242, 153285, 153980, 154279, - 154539, 154752, 154832, 155526, 156122, 156200, 156231, 156377, - 156478, 156890, 156963, 157096, 157607, 157621, 158524, 158774, - 158933, 159083, 159532, 159665, 159954, 160714, 161383, 161966, - 162150, 162984, 163539, 163631, 165330, 165357, 165678, 166906, - 167287, 168261, 168415, 168474, 168970, 169110, 169398, 170800, - 172238, 172293, 172558, 172689, 172946, 173568, 194560, 194561, - 194562, 194563, 194564, 194565, 194566, 194567, 194568, 194569, - 194570, 194571, 194572, 194573, 194574, 194575, 194576, 194577, - 194578, 194579, 194580, 194581, 194582, 194583, 194584, 194585, - 194586, 194587, 194588, 194589, 194590, 194591, 194592, 194593, - 194594, 194595, 194596, 194597, 194598, 194599, 194600, 194601, - 194602, 194603, 194604, 194605, 194606, 194607, 194608, 194609, - 194610, 194611, 194612, 194613, 194614, 194615, 194616, 194617, - 194618, 194619, 194620, 194621, 194622, 194623, 194624, 194625, - 194626, 194627, 194628, 194629, 194630, 194631, 194632, 194633, - 194634, 194635, 194636, 194637, 194638, 194639, 194640, 194641, - 194642, 194643, 194644, 194645, 194646, 194647, 194648, 194649, - 194650, 194651, 194652, 194653, 194654, 194655, 194656, 194657, - 194658, 194659, 194660, 194661, 194662, 194663, 194664, 194665, - 194666, 194667, 194668, 194669, 194670, 194671, 194672, 194673, - 194674, 194675, 194676, 194677, 194678, 194679, 194680, 194681, - 194682, 194683, 194684, 194685, 194686, 194687, 194688, 194689, - 194690, 194691, 194692, 194693, 194694, 194695, 194696, 194697, - 194698, 194699, 194700, 194701, 194702, 194703, 194704, 194705, - 194706, 194707, 194708, 194709, 194710, 194711, 194712, 194713, - 194714, 194715, 194716, 194717, 194718, 194719, 194720, 194721, - 194722, 194723, 194724, 194725, 194726, 194727, 194728, 194729, - 194730, 194731, 194732, 194733, 194734, 194735, 194736, 194737, - 194738, 194739, 194740, 194741, 194742, 194743, 194744, 194745, - 194746, 194747, 194748, 194749, 194750, 194751, 194752, 194753, - 194754, 194755, 194756, 194757, 194758, 194759, 194760, 194761, - 194762, 194763, 194764, 194765, 194766, 194767, 194768, 194769, - 194770, 194771, 194772, 194773, 194774, 194775, 194776, 194777, - 194778, 194779, 194780, 194781, 194782, 194783, 194784, 194785, - 194786, 194787, 194788, 194789, 194790, 194791, 194792, 194793, - 194794, 194795, 194796, 194797, 194798, 194799, 194800, 194801, - 194802, 194803, 194804, 194805, 194806, 194807, 194808, 194809, - 194810, 194811, 194812, 194813, 194814, 194815, 194816, 194817, - 194818, 194819, 194820, 194821, 194822, 194823, 194824, 194825, - 194826, 194827, 194828, 194829, 194830, 194831, 194832, 194833, - 194834, 194835, 194836, 194837, 194838, 194839, 194840, 194841, - 194842, 194843, 194844, 194845, 194846, 194847, 194848, 194849, - 194850, 194851, 194852, 194853, 194854, 194855, 194856, 194857, - 194858, 194859, 194860, 194861, 194862, 194863, 194864, 194865, - 194866, 194867, 194868, 194869, 194870, 194871, 194872, 194873, - 194874, 194875, 194876, 194877, 194878, 194879, 194880, 194881, - 194882, 194883, 194884, 194885, 194886, 194887, 194888, 194889, - 194890, 194891, 194892, 194893, 194894, 194895, 194896, 194897, - 194898, 194899, 194900, 194901, 194902, 194903, 194904, 194905, - 194906, 194907, 194908, 194909, 194910, 194911, 194912, 194913, - 194914, 194915, 194916, 194917, 194918, 194919, 194920, 194921, - 194922, 194923, 194924, 194925, 194926, 194927, 194928, 194929, - 194930, 194931, 194932, 194933, 194934, 194935, 194936, 194937, - 194938, 194939, 194940, 194941, 194942, 194943, 194944, 194945, - 194946, 194947, 194948, 194949, 194950, 194951, 194952, 194953, - 194954, 194955, 194956, 194957, 194958, 194959, 194960, 194961, - 194962, 194963, 194964, 194965, 194966, 194967, 194968, 194969, - 194970, 194971, 194972, 194973, 194974, 194975, 194976, 194977, - 194978, 194979, 194980, 194981, 194982, 194983, 194984, 194985, - 194986, 194987, 194988, 194989, 194990, 194991, 194992, 194993, - 194994, 194995, 194996, 194997, 194998, 194999, 195000, 195001, - 195002, 195003, 195004, 195005, 195006, 195007, 195008, 195009, - 195010, 195011, 195012, 195013, 195014, 195015, 195016, 195017, - 195018, 195019, 195020, 195021, 195022, 195023, 195024, 195025, - 195026, 195027, 195028, 195029, 195030, 195031, 195032, 195033, - 195034, 195035, 195036, 195037, 195038, 195039, 195040, 195041, - 195042, 195043, 195044, 195045, 195046, 195047, 195048, 195049, - 195050, 195051, 195052, 195053, 195054, 195055, 195056, 195057, - 195058, 195059, 195060, 195061, 195062, 195063, 195064, 195065, - 195066, 195067, 195068, 195069, 195070, 195071, 195072, 195073, - 195074, 195075, 195076, 195077, 195078, 195079, 195080, 195081, - 195082, 195083, 195084, 195085, 195086, 195087, 195088, 195089, - 195090, 195091, 195092, 195093, 195094, 195095, 195096, 195097, - 195098, 195099, 195100, 195101 -}; + 0, 59, 60, 61, 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 168, 180, 183, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 216, 217, 218, + 219, 220, 221, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 241, 242, 243, 244, 245, 246, 248, 249, 250, + 251, 252, 253, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 308, 309, 310, 311, 313, 314, 315, + 316, 317, 318, 323, 324, 325, 326, 327, 328, 332, 333, 334, 335, 336, + 337, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 416, 417, 431, 432, 439, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 478, 479, 480, 481, 482, 483, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 500, 501, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 542, 543, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 658, 697, 768, 769, 770, + 771, 772, 774, 775, 776, 777, 778, 779, 780, 783, 785, 787, 788, 795, + 803, 804, 805, 806, 807, 808, 813, 814, 816, 817, 824, 832, 833, 834, + 835, 836, 837, 884, 894, 901, 902, 903, 904, 905, 906, 908, 910, 911, + 912, 913, 917, 919, 921, 927, 929, 933, 937, 938, 939, 940, 941, 942, + 943, 944, 945, 949, 951, 953, 959, 961, 965, 969, 970, 971, 972, 973, + 974, 978, 979, 980, 1024, 1025, 1027, 1030, 1031, 1036, 1037, 1038, 1040, 1043, + 1045, 1046, 1047, 1048, 1049, 1050, 1054, 1059, 1063, 1067, 1069, 1072, 1075, 1077, + 1078, 1079, 1080, 1081, 1082, 1086, 1091, 1095, 1099, 1101, 1104, 1105, 1107, 1110, + 1111, 1116, 1117, 1118, 1140, 1141, 1142, 1143, 1217, 1218, 1232, 1233, 1234, 1235, + 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1250, 1251, 1252, 1253, + 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1268, 1269, 1272, 1273, 1460, 1463, 1464, 1465, 1468, 1471, 1473, 1474, 1488, 1489, + 1490, 1491, 1492, 1493, 1494, 1496, 1497, 1498, 1499, 1500, 1502, 1504, 1505, 1507, + 1508, 1510, 1511, 1512, 1513, 1514, 1522, 1570, 1571, 1572, 1573, 1574, 1575, 1608, + 1610, 1619, 1620, 1621, 1728, 1729, 1730, 1746, 1747, 1749, 2325, 2326, 2327, 2332, + 2337, 2338, 2344, 2345, 2347, 2351, 2352, 2353, 2355, 2356, 2364, 2392, 2393, 2394, + 2395, 2396, 2397, 2398, 2399, 2465, 2466, 2479, 2492, 2494, 2503, 2507, 2508, 2519, + 2524, 2525, 2527, 2582, 2583, 2588, 2603, 2610, 2611, 2614, 2616, 2620, 2649, 2650, + 2651, 2654, 2849, 2850, 2876, 2878, 2887, 2888, 2891, 2892, 2902, 2903, 2908, 2909, + 2962, 2964, 3006, 3014, 3015, 3018, 3019, 3020, 3031, 3142, 3144, 3158, 3263, 3264, + 3266, 3270, 3271, 3272, 3274, 3275, 3285, 3286, 3390, 3398, 3399, 3402, 3403, 3404, + 3415, 3530, 3535, 3545, 3546, 3548, 3549, 3550, 3551, 3904, 3906, 3907, 3916, 3917, + 3921, 3922, 3926, 3927, 3931, 3932, 3945, 3953, 3954, 3955, 3956, 3957, 3958, 3960, + 3968, 3969, 3984, 3986, 3987, 3996, 3997, 4001, 4002, 4006, 4007, 4011, 4012, 4018, + 4019, 4021, 4023, 4025, 4133, 4134, 4142, 6917, 6918, 6919, 6920, 6921, 6922, 6923, + 6924, 6925, 6926, 6929, 6930, 6965, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, + 6978, 6979, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, + 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, + 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, + 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, + 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, + 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, + 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, + 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, + 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, + 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, + 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, + 7832, 7833, 7835, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, + 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, + 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, + 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, + 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, + 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, + 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7936, 7937, 7938, 7939, 7940, + 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, + 7955, 7956, 7957, 7960, 7961, 7962, 7963, 7964, 7965, 7968, 7969, 7970, 7971, 7972, + 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, + 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, + 8001, 8002, 8003, 8004, 8005, 8008, 8009, 8010, 8011, 8012, 8013, 8016, 8017, 8018, + 8019, 8020, 8021, 8022, 8023, 8025, 8027, 8029, 8031, 8032, 8033, 8034, 8035, 8036, + 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, + 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8064, 8065, 8066, + 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, + 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, + 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, + 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8118, 8119, 8120, 8121, 8122, 8123, + 8124, 8126, 8127, 8129, 8130, 8131, 8132, 8134, 8135, 8136, 8137, 8138, 8139, 8140, + 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8150, 8151, 8152, 8153, 8154, 8155, 8157, + 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, + 8172, 8173, 8174, 8175, 8178, 8179, 8180, 8182, 8183, 8184, 8185, 8186, 8187, 8188, + 8189, 8190, 8192, 8193, 8194, 8195, 8486, 8490, 8491, 8592, 8594, 8596, 8602, 8603, + 8622, 8653, 8654, 8655, 8656, 8658, 8660, 8707, 8708, 8712, 8713, 8715, 8716, 8739, + 8740, 8741, 8742, 8764, 8769, 8771, 8772, 8773, 8775, 8776, 8777, 8781, 8800, 8801, + 8802, 8804, 8805, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, + 8824, 8825, 8826, 8827, 8828, 8829, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, + 8840, 8841, 8849, 8850, 8866, 8872, 8873, 8875, 8876, 8877, 8878, 8879, 8882, 8883, + 8884, 8885, 8928, 8929, 8930, 8931, 8938, 8939, 8940, 8941, 9001, 9002, 10972, 10973, + 12296, 12297, 12358, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, + 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12388, + 12389, 12390, 12391, 12392, 12393, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, + 12408, 12409, 12410, 12411, 12412, 12413, 12436, 12441, 12442, 12445, 12446, 12454, 12459, 12460, + 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, + 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12484, 12485, 12486, 12487, 12488, 12489, + 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, + 12509, 12527, 12528, 12529, 12530, 12532, 12535, 12536, 12537, 12538, 12541, 12542, 13470, 13497, + 13499, 13535, 13589, 14062, 14076, 14209, 14383, 14434, 14460, 14535, 14563, 14620, 14650, 14894, + 14956, 15076, 15112, 15129, 15177, 15261, 15384, 15438, 15667, 15766, 16044, 16056, 16155, 16380, + 16392, 16408, 16441, 16454, 16534, 16611, 16687, 16898, 16935, 17056, 17153, 17204, 17241, 17365, + 17369, 17419, 17515, 17707, 17757, 17761, 17771, 17879, 17913, 17973, 18110, 18119, 18837, 18918, + 19054, 19062, 19122, 19251, 19406, 19662, 19693, 19704, 19798, 19981, 20006, 20018, 20024, 20025, + 20029, 20033, 20098, 20102, 20142, 20160, 20172, 20196, 20320, 20352, 20358, 20363, 20398, 20411, + 20415, 20482, 20523, 20602, 20633, 20687, 20698, 20711, 20800, 20805, 20813, 20820, 20836, 20839, + 20840, 20841, 20845, 20855, 20864, 20877, 20882, 20885, 20887, 20900, 20908, 20917, 20919, 20937, + 20940, 20956, 20958, 20981, 20995, 20999, 21015, 21033, 21050, 21051, 21062, 21106, 21111, 21129, + 21147, 21155, 21171, 21191, 21193, 21202, 21214, 21220, 21237, 21242, 21253, 21254, 21271, 21311, + 21321, 21329, 21338, 21363, 21365, 21373, 21375, 21443, 21450, 21471, 21477, 21483, 21489, 21510, + 21519, 21533, 21560, 21570, 21576, 21608, 21662, 21666, 21693, 21750, 21776, 21843, 21845, 21859, + 21892, 21895, 21913, 21917, 21931, 21939, 21952, 21954, 21986, 22022, 22097, 22120, 22132, 22265, + 22294, 22295, 22411, 22478, 22516, 22541, 22577, 22578, 22592, 22618, 22622, 22696, 22700, 22707, + 22744, 22751, 22766, 22770, 22775, 22790, 22810, 22818, 22852, 22856, 22865, 22868, 22882, 22899, + 23000, 23020, 23067, 23079, 23138, 23142, 23221, 23304, 23336, 23358, 23429, 23491, 23512, 23527, + 23534, 23539, 23551, 23558, 23586, 23615, 23648, 23650, 23652, 23653, 23662, 23693, 23744, 23833, + 23875, 23888, 23915, 23918, 23932, 23986, 23994, 24033, 24034, 24061, 24104, 24125, 24169, 24180, + 24230, 24240, 24243, 24246, 24265, 24266, 24274, 24275, 24281, 24300, 24318, 24324, 24354, 24403, + 24418, 24425, 24427, 24459, 24474, 24489, 24493, 24525, 24535, 24565, 24569, 24594, 24604, 24693, + 24705, 24724, 24775, 24792, 24801, 24840, 24900, 24904, 24908, 24910, 24928, 24936, 24954, 24974, + 24976, 24996, 25007, 25010, 25054, 25074, 25078, 25088, 25104, 25115, 25134, 25140, 25181, 25265, + 25289, 25295, 25299, 25300, 25340, 25342, 25405, 25424, 25448, 25467, 25475, 25504, 25513, 25540, + 25541, 25572, 25628, 25634, 25682, 25705, 25719, 25726, 25754, 25757, 25796, 25935, 25942, 25964, + 25976, 26009, 26053, 26082, 26083, 26131, 26185, 26228, 26248, 26257, 26268, 26292, 26310, 26356, + 26360, 26368, 26391, 26395, 26401, 26446, 26451, 26454, 26462, 26491, 26501, 26519, 26611, 26618, + 26647, 26655, 26706, 26753, 26757, 26766, 26792, 26900, 26946, 27043, 27114, 27138, 27155, 27304, + 27347, 27355, 27396, 27425, 27476, 27506, 27511, 27513, 27551, 27566, 27578, 27579, 27726, 27751, + 27784, 27839, 27852, 27853, 27877, 27926, 27931, 27934, 27956, 27966, 27969, 28009, 28010, 28023, + 28024, 28037, 28107, 28122, 28138, 28153, 28186, 28207, 28270, 28316, 28346, 28359, 28363, 28369, + 28379, 28431, 28450, 28451, 28526, 28614, 28651, 28670, 28699, 28702, 28729, 28746, 28784, 28791, + 28797, 28825, 28845, 28872, 28889, 28997, 29001, 29038, 29084, 29134, 29136, 29200, 29211, 29224, + 29227, 29237, 29264, 29282, 29312, 29333, 29359, 29376, 29436, 29482, 29557, 29562, 29575, 29579, + 29605, 29618, 29662, 29702, 29705, 29730, 29767, 29788, 29801, 29809, 29829, 29833, 29848, 29898, + 29958, 29988, 30011, 30014, 30041, 30053, 30064, 30178, 30224, 30237, 30239, 30274, 30313, 30410, + 30427, 30439, 30452, 30465, 30494, 30495, 30528, 30538, 30603, 30631, 30798, 30827, 30860, 30865, + 30922, 30924, 30971, 31018, 31036, 31038, 31048, 31049, 31056, 31062, 31069, 31070, 31077, 31103, + 31117, 31118, 31119, 31150, 31178, 31211, 31260, 31296, 31306, 31311, 31361, 31409, 31435, 31470, + 31520, 31680, 31686, 31689, 31806, 31840, 31867, 31890, 31934, 31954, 31958, 31971, 31975, 31976, + 32000, 32016, 32034, 32047, 32091, 32099, 32160, 32190, 32199, 32244, 32258, 32265, 32311, 32321, + 32325, 32574, 32626, 32633, 32634, 32645, 32661, 32666, 32701, 32762, 32769, 32773, 32838, 32864, + 32879, 32880, 32894, 32907, 32941, 32946, 33027, 33086, 33240, 33256, 33261, 33281, 33284, 33304, + 33391, 33401, 33419, 33425, 33437, 33457, 33459, 33469, 33509, 33510, 33565, 33571, 33590, 33618, + 33619, 33635, 33709, 33725, 33737, 33738, 33740, 33756, 33767, 33775, 33777, 33853, 33865, 33879, + 34030, 34033, 34035, 34044, 34070, 34148, 34253, 34298, 34310, 34322, 34349, 34367, 34384, 34396, + 34407, 34409, 34440, 34473, 34530, 34574, 34600, 34667, 34681, 34694, 34746, 34785, 34817, 34847, + 34892, 34912, 34915, 35010, 35023, 35031, 35038, 35041, 35064, 35066, 35088, 35137, 35172, 35206, + 35211, 35222, 35488, 35498, 35519, 35531, 35538, 35542, 35565, 35576, 35582, 35585, 35641, 35672, + 35712, 35722, 35912, 35925, 36011, 36033, 36034, 36040, 36051, 36104, 36123, 36215, 36284, 36299, + 36335, 36336, 36554, 36564, 36646, 36650, 36664, 36667, 36706, 36766, 36784, 36790, 36899, 36920, + 36978, 36988, 37007, 37012, 37070, 37086, 37105, 37117, 37137, 37147, 37226, 37273, 37300, 37324, + 37327, 37329, 37428, 37432, 37494, 37500, 37591, 37592, 37636, 37706, 37881, 37909, 38283, 38317, + 38327, 38446, 38475, 38477, 38517, 38520, 38524, 38534, 38563, 38583, 38584, 38595, 38626, 38627, + 38646, 38647, 38691, 38706, 38728, 38742, 38875, 38880, 38911, 38923, 38936, 38953, 38971, 39006, + 39138, 39151, 39164, 39208, 39209, 39335, 39362, 39409, 39422, 39530, 39698, 39791, 40000, 40023, + 40189, 40295, 40372, 40442, 40478, 40575, 40599, 40607, 40635, 40654, 40697, 40702, 40709, 40719, + 40726, 40763, 40771, 40845, 40846, 40860, 63744, 63745, 63746, 63747, 63748, 63749, 63750, 63751, + 63752, 63753, 63754, 63755, 63756, 63757, 63758, 63759, 63760, 63761, 63762, 63763, 63764, 63765, + 63766, 63767, 63768, 63769, 63770, 63771, 63772, 63773, 63774, 63775, 63776, 63777, 63778, 63779, + 63780, 63781, 63782, 63783, 63784, 63785, 63786, 63787, 63788, 63789, 63790, 63791, 63792, 63793, + 63794, 63795, 63796, 63797, 63798, 63799, 63800, 63801, 63802, 63803, 63804, 63805, 63806, 63807, + 63808, 63809, 63810, 63811, 63812, 63813, 63814, 63815, 63816, 63817, 63818, 63819, 63820, 63821, + 63822, 63823, 63824, 63825, 63826, 63827, 63828, 63829, 63830, 63831, 63832, 63833, 63834, 63835, + 63836, 63837, 63838, 63839, 63840, 63841, 63842, 63843, 63844, 63845, 63846, 63847, 63848, 63849, + 63850, 63851, 63852, 63853, 63854, 63855, 63856, 63857, 63858, 63859, 63860, 63861, 63862, 63863, + 63864, 63865, 63866, 63867, 63868, 63869, 63870, 63871, 63872, 63873, 63874, 63875, 63876, 63877, + 63878, 63879, 63880, 63881, 63882, 63883, 63884, 63885, 63886, 63887, 63888, 63889, 63890, 63891, + 63892, 63893, 63894, 63895, 63896, 63897, 63898, 63899, 63900, 63901, 63902, 63903, 63904, 63905, + 63906, 63907, 63908, 63909, 63910, 63911, 63912, 63913, 63914, 63915, 63916, 63917, 63918, 63919, + 63920, 63921, 63922, 63923, 63924, 63925, 63926, 63927, 63928, 63929, 63930, 63931, 63932, 63933, + 63934, 63935, 63936, 63937, 63938, 63939, 63940, 63941, 63942, 63943, 63944, 63945, 63946, 63947, + 63948, 63949, 63950, 63951, 63952, 63953, 63954, 63955, 63956, 63957, 63958, 63959, 63960, 63961, + 63962, 63963, 63964, 63965, 63966, 63967, 63968, 63969, 63970, 63971, 63972, 63973, 63974, 63975, + 63976, 63977, 63978, 63979, 63980, 63981, 63982, 63983, 63984, 63985, 63986, 63987, 63988, 63989, + 63990, 63991, 63992, 63993, 63994, 63995, 63996, 63997, 63998, 63999, 64000, 64001, 64002, 64003, + 64004, 64005, 64006, 64007, 64008, 64009, 64010, 64011, 64012, 64013, 64016, 64018, 64021, 64022, + 64023, 64024, 64025, 64026, 64027, 64028, 64029, 64030, 64032, 64034, 64037, 64038, 64042, 64043, + 64044, 64045, 64046, 64047, 64048, 64049, 64050, 64051, 64052, 64053, 64054, 64055, 64056, 64057, + 64058, 64059, 64060, 64061, 64062, 64063, 64064, 64065, 64066, 64067, 64068, 64069, 64070, 64071, + 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, 64080, 64081, 64082, 64083, 64084, 64085, + 64086, 64087, 64088, 64089, 64090, 64091, 64092, 64093, 64094, 64095, 64096, 64097, 64098, 64099, + 64100, 64101, 64102, 64103, 64104, 64105, 64106, 64107, 64108, 64109, 64112, 64113, 64114, 64115, + 64116, 64117, 64118, 64119, 64120, 64121, 64122, 64123, 64124, 64125, 64126, 64127, 64128, 64129, + 64130, 64131, 64132, 64133, 64134, 64135, 64136, 64137, 64138, 64139, 64140, 64141, 64142, 64143, + 64144, 64145, 64146, 64147, 64148, 64149, 64150, 64151, 64152, 64153, 64154, 64155, 64156, 64157, + 64158, 64159, 64160, 64161, 64162, 64163, 64164, 64165, 64166, 64167, 64168, 64169, 64170, 64171, + 64172, 64173, 64174, 64175, 64176, 64177, 64178, 64179, 64180, 64181, 64182, 64183, 64184, 64185, + 64186, 64187, 64188, 64189, 64190, 64191, 64192, 64193, 64194, 64195, 64196, 64197, 64198, 64199, + 64200, 64201, 64202, 64203, 64204, 64205, 64206, 64207, 64208, 64209, 64210, 64211, 64212, 64213, + 64214, 64215, 64216, 64217, 64285, 64287, 64298, 64299, 64300, 64301, 64302, 64303, 64304, 64305, + 64306, 64307, 64308, 64309, 64310, 64312, 64313, 64314, 64315, 64316, 64318, 64320, 64321, 64323, + 64324, 64326, 64327, 64328, 64329, 64330, 64331, 64332, 64333, 64334, 69785, 69786, 69787, 69788, + 69797, 69803, 69818, 69927, 69934, 69935, 69937, 69938, 119127, 119128, 119134, 119135, 119136, 119137, + 119138, 119139, 119140, 119141, 119150, 119151, 119152, 119153, 119154, 119225, 119226, 119227, 119228, 119229, + 119230, 119231, 119232, 131362, 132380, 132389, 132427, 132666, 133124, 133342, 133676, 133987, 136420, 136872, + 136938, 137672, 138008, 138507, 138724, 138726, 139651, 139679, 140081, 141012, 141380, 141386, 142092, 142321, + 143370, 144056, 144223, 144275, 144284, 144323, 144341, 144493, 145059, 145575, 146061, 146170, 146620, 146718, + 147153, 147294, 147342, 148067, 148206, 148395, 149000, 149301, 149524, 150582, 150674, 151457, 151480, 151620, + 151794, 151795, 151833, 151859, 152137, 152605, 153126, 153242, 153285, 153980, 154279, 154539, 154752, 154832, + 155526, 156122, 156200, 156231, 156377, 156478, 156890, 156963, 157096, 157607, 157621, 158524, 158774, 158933, + 159083, 159532, 159665, 159954, 160714, 161383, 161966, 162150, 162984, 163539, 163631, 165330, 165357, 165678, + 166906, 167287, 168261, 168415, 168474, 168970, 169110, 169398, 170800, 172238, 172293, 172558, 172689, 172946, + 173568, 194560, 194561, 194562, 194563, 194564, 194565, 194566, 194567, 194568, 194569, 194570, 194571, 194572, + 194573, 194574, 194575, 194576, 194577, 194578, 194579, 194580, 194581, 194582, 194583, 194584, 194585, 194586, + 194587, 194588, 194589, 194590, 194591, 194592, 194593, 194594, 194595, 194596, 194597, 194598, 194599, 194600, + 194601, 194602, 194603, 194604, 194605, 194606, 194607, 194608, 194609, 194610, 194611, 194612, 194613, 194614, + 194615, 194616, 194617, 194618, 194619, 194620, 194621, 194622, 194623, 194624, 194625, 194626, 194627, 194628, + 194629, 194630, 194631, 194632, 194633, 194634, 194635, 194636, 194637, 194638, 194639, 194640, 194641, 194642, + 194643, 194644, 194645, 194646, 194647, 194648, 194649, 194650, 194651, 194652, 194653, 194654, 194655, 194656, + 194657, 194658, 194659, 194660, 194661, 194662, 194663, 194664, 194665, 194666, 194667, 194668, 194669, 194670, + 194671, 194672, 194673, 194674, 194675, 194676, 194677, 194678, 194679, 194680, 194681, 194682, 194683, 194684, + 194685, 194686, 194687, 194688, 194689, 194690, 194691, 194692, 194693, 194694, 194695, 194696, 194697, 194698, + 194699, 194700, 194701, 194702, 194703, 194704, 194705, 194706, 194707, 194708, 194709, 194710, 194711, 194712, + 194713, 194714, 194715, 194716, 194717, 194718, 194719, 194720, 194721, 194722, 194723, 194724, 194725, 194726, + 194727, 194728, 194729, 194730, 194731, 194732, 194733, 194734, 194735, 194736, 194737, 194738, 194739, 194740, + 194741, 194742, 194743, 194744, 194745, 194746, 194747, 194748, 194749, 194750, 194751, 194752, 194753, 194754, + 194755, 194756, 194757, 194758, 194759, 194760, 194761, 194762, 194763, 194764, 194765, 194766, 194767, 194768, + 194769, 194770, 194771, 194772, 194773, 194774, 194775, 194776, 194777, 194778, 194779, 194780, 194781, 194782, + 194783, 194784, 194785, 194786, 194787, 194788, 194789, 194790, 194791, 194792, 194793, 194794, 194795, 194796, + 194797, 194798, 194799, 194800, 194801, 194802, 194803, 194804, 194805, 194806, 194807, 194808, 194809, 194810, + 194811, 194812, 194813, 194814, 194815, 194816, 194817, 194818, 194819, 194820, 194821, 194822, 194823, 194824, + 194825, 194826, 194827, 194828, 194829, 194830, 194831, 194832, 194833, 194834, 194835, 194836, 194837, 194838, + 194839, 194840, 194841, 194842, 194843, 194844, 194845, 194846, 194847, 194848, 194849, 194850, 194851, 194852, + 194853, 194854, 194855, 194856, 194857, 194858, 194859, 194860, 194861, 194862, 194863, 194864, 194865, 194866, + 194867, 194868, 194869, 194870, 194871, 194872, 194873, 194874, 194875, 194876, 194877, 194878, 194879, 194880, + 194881, 194882, 194883, 194884, 194885, 194886, 194887, 194888, 194889, 194890, 194891, 194892, 194893, 194894, + 194895, 194896, 194897, 194898, 194899, 194900, 194901, 194902, 194903, 194904, 194905, 194906, 194907, 194908, + 194909, 194910, 194911, 194912, 194913, 194914, 194915, 194916, 194917, 194918, 194919, 194920, 194921, 194922, + 194923, 194924, 194925, 194926, 194927, 194928, 194929, 194930, 194931, 194932, 194933, 194934, 194935, 194936, + 194937, 194938, 194939, 194940, 194941, 194942, 194943, 194944, 194945, 194946, 194947, 194948, 194949, 194950, + 194951, 194952, 194953, 194954, 194955, 194956, 194957, 194958, 194959, 194960, 194961, 194962, 194963, 194964, + 194965, 194966, 194967, 194968, 194969, 194970, 194971, 194972, 194973, 194974, 194975, 194976, 194977, 194978, + 194979, 194980, 194981, 194982, 194983, 194984, 194985, 194986, 194987, 194988, 194989, 194990, 194991, 194992, + 194993, 194994, 194995, 194996, 194997, 194998, 194999, 195000, 195001, 195002, 195003, 195004, 195005, 195006, + 195007, 195008, 195009, 195010, 195011, 195012, 195013, 195014, 195015, 195016, 195017, 195018, 195019, 195020, + 195021, 195022, 195023, 195024, 195025, 195026, 195027, 195028, 195029, 195030, 195031, 195032, 195033, 195034, + 195035, 195036, 195037, 195038, 195039, 195040, 195041, 195042, 195043, 195044, 195045, 195046, 195047, 195048, + 195049, 195050, 195051, 195052, 195053, 195054, 195055, 195056, 195057, 195058, 195059, 195060, 195061, 195062, + 195063, 195064, 195065, 195066, 195067, 195068, 195069, 195070, 195071, 195072, 195073, 195074, 195075, 195076, + 195077, 195078, 195079, 195080, 195081, 195082, 195083, 195084, 195085, 195086, 195087, 195088, 195089, 195090, + 195091, 195092, 195093, 195094, 195095, 195096, 195097, 195098, 195099, 195100, 195101}; static const uint16_t comp_seq[] = { - 33432, 663, 33114, 1208, 33114, 1202, 33114, 1209, 319, 59, 322, 62, - 330, 230, 331, 273, 325, 303, 341, 120, 332, 275, 327, 845, 324, 118, - 338, 688, 321, 61, 336, 843, 326, 63, 320, 60, 323, 116, 33096, 64, - 345, 694, 325, 690, 33104, 692, 330, 128, 320, 122, 340, 66, 325, 126, - 33089, 124, 330, 130, 340, 704, 325, 698, 342, 706, 345, 702, 33104, - 700, 336, 867, 341, 138, 332, 279, 342, 712, 330, 140, 326, 70, 321, - 69, 324, 134, 322, 871, 344, 714, 323, 132, 331, 277, 325, 136, 319, - 67, 340, 305, 320, 68, 33095, 869, 34077, 1308, 321, 142, 330, 252, - 324, 144, 320, 263, 340, 148, 323, 720, 33093, 146, 336, 724, 330, - 301, 326, 726, 340, 728, 321, 150, 325, 722, 33111, 730, 330, 232, - 323, 154, 332, 283, 320, 72, 327, 883, 336, 885, 319, 71, 322, 152, - 331, 281, 324, 156, 321, 73, 325, 160, 326, 74, 344, 732, 33109, 158, - 33089, 161, 336, 738, 320, 736, 345, 740, 330, 254, 33108, 163, 336, - 742, 340, 167, 345, 746, 342, 748, 330, 169, 33088, 165, 34077, 1266, - 320, 171, 330, 175, 319, 265, 325, 756, 340, 173, 336, 758, 322, 75, - 342, 762, 33113, 760, 335, 225, 325, 311, 327, 889, 331, 285, 326, 80, - 323, 177, 321, 78, 341, 256, 319, 76, 320, 77, 330, 234, 336, 887, - 322, 79, 332, 287, 324, 179, 33097, 181, 320, 772, 33093, 774, 34077, - 1270, 345, 782, 325, 776, 330, 187, 340, 185, 331, 289, 336, 778, 320, - 183, 33100, 291, 325, 784, 321, 191, 330, 195, 320, 189, 340, 193, - 339, 297, 33104, 786, 342, 800, 330, 199, 325, 794, 339, 299, 345, - 798, 340, 197, 33104, 796, 323, 203, 320, 83, 337, 802, 344, 804, 329, - 209, 330, 236, 322, 201, 331, 293, 321, 84, 328, 207, 332, 295, 341, - 211, 326, 85, 335, 227, 324, 205, 319, 82, 336, 911, 327, 913, 33110, - 806, 336, 814, 33090, 812, 319, 816, 325, 822, 321, 213, 336, 824, - 326, 820, 33088, 818, 326, 828, 33093, 826, 325, 830, 326, 217, 327, - 929, 336, 927, 319, 925, 321, 215, 323, 315, 320, 86, 33090, 931, 320, - 218, 325, 220, 345, 836, 336, 834, 330, 222, 33089, 832, 34077, 1280, - 34077, 1282, 34077, 1284, 327, 846, 330, 231, 323, 117, 336, 844, 325, - 304, 331, 274, 324, 119, 319, 87, 332, 276, 321, 89, 338, 689, 326, - 91, 341, 121, 320, 88, 322, 90, 33096, 92, 336, 693, 345, 695, 33093, - 691, 325, 127, 340, 94, 321, 125, 320, 123, 33098, 129, 336, 701, 342, - 707, 340, 705, 325, 699, 345, 703, 33098, 131, 336, 868, 323, 133, - 330, 141, 332, 280, 342, 713, 326, 98, 324, 135, 321, 97, 319, 95, - 344, 715, 327, 870, 320, 96, 322, 872, 331, 278, 325, 137, 340, 306, - 33109, 139, 34077, 1290, 321, 143, 325, 147, 330, 253, 324, 145, 340, - 149, 323, 721, 33088, 264, 325, 723, 330, 302, 345, 838, 326, 727, - 321, 151, 340, 729, 336, 725, 33111, 731, 331, 282, 320, 100, 332, - 284, 327, 884, 336, 886, 322, 153, 326, 102, 324, 157, 330, 233, 341, - 159, 319, 99, 344, 733, 323, 155, 33089, 101, 330, 262, 33089, 162, - 345, 741, 330, 255, 320, 737, 340, 164, 33104, 739, 336, 743, 330, - 170, 340, 168, 345, 747, 342, 749, 33088, 166, 336, 755, 325, 753, - 33088, 751, 345, 761, 319, 266, 340, 174, 320, 172, 325, 757, 336, - 759, 342, 763, 330, 176, 33090, 103, 330, 235, 321, 106, 336, 888, - 326, 108, 341, 257, 327, 890, 325, 312, 319, 104, 322, 107, 323, 178, - 331, 286, 320, 105, 329, 182, 324, 180, 332, 288, 33103, 226, 325, - 775, 33088, 773, 1310, 1298, 34077, 1297, 330, 196, 336, 787, 325, - 785, 320, 190, 339, 298, 340, 194, 33089, 192, 326, 839, 336, 797, - 330, 200, 342, 801, 339, 300, 325, 795, 345, 799, 33108, 198, 335, - 228, 329, 210, 320, 111, 337, 803, 319, 110, 331, 294, 326, 113, 342, - 807, 341, 212, 322, 202, 344, 805, 324, 206, 332, 296, 330, 237, 327, - 914, 321, 112, 323, 204, 336, 912, 33096, 208, 322, 813, 33104, 815, - 320, 819, 321, 214, 325, 823, 328, 840, 336, 825, 326, 821, 33087, - 817, 1310, 1304, 34077, 1303, 325, 831, 323, 316, 319, 926, 326, 115, - 336, 928, 321, 216, 328, 841, 320, 114, 327, 930, 33090, 932, 345, - 837, 336, 835, 325, 221, 321, 833, 330, 223, 33088, 219, 1309, 1306, - 34078, 1307, 35430, 2657, 35430, 2659, 34077, 1312, 35430, 2661, - 34077, 1363, 319, 1149, 349, 1109, 33088, 355, 34077, 1315, 34077, - 1317, 34077, 1319, 34077, 1321, 34077, 1323, 34077, 1325, 34077, 1327, - 34077, 1329, 34077, 1331, 34077, 1333, 34077, 1335, 34077, 1337, 327, - 851, 322, 853, 320, 847, 33087, 849, 33091, 246, 33088, 267, 34077, - 1341, 33088, 696, 34077, 1343, 322, 879, 319, 875, 320, 873, 33095, - 877, 1310, 1346, 34077, 1345, 1310, 1349, 34077, 1348, 327, 895, 322, - 897, 319, 893, 33088, 891, 1309, 1351, 34078, 1352, 33091, 307, 1310, - 1355, 34077, 1354, 1309, 1357, 34078, 1358, 319, 244, 330, 242, 320, - 240, 33091, 238, 327, 852, 319, 850, 322, 854, 33088, 848, 33091, 247, - 33088, 268, 323, 251, 33088, 270, 33088, 697, 320, 874, 327, 878, 322, - 880, 33087, 876, 33088, 735, 34077, 1365, 34077, 1366, 34077, 1367, - 319, 894, 320, 892, 322, 898, 33095, 896, 320, 765, 326, 767, 33091, - 310, 33091, 308, 33088, 272, 320, 241, 323, 239, 319, 245, 33098, 243, - 34077, 1369, 320, 857, 319, 859, 322, 863, 33095, 861, 320, 858, 327, - 862, 322, 864, 33087, 860, 319, 708, 33088, 710, 320, 711, 33087, 709, - 33310, 535, 33310, 539, 35431, 2664, 35431, 2665, 33310, 541, 319, - 768, 33088, 770, 320, 771, 33087, 769, 33093, 788, 33093, 789, 33093, - 790, 33093, 791, 33088, 808, 33088, 809, 33094, 810, 33094, 811, - 33093, 842, 33114, 1174, 33114, 1175, 33114, 1176, 322, 907, 336, 909, - 327, 905, 319, 903, 33088, 901, 319, 904, 336, 910, 327, 906, 320, - 902, 33090, 908, 33093, 718, 320, 915, 319, 917, 327, 919, 322, 921, - 33104, 923, 319, 918, 336, 924, 320, 916, 327, 920, 33090, 922, 33098, - 260, 34077, 1264, 559, 558, 33323, 557, 336, 754, 325, 752, 33088, - 750, 33114, 1177, 33114, 1179, 33114, 1178, 34077, 1268, 33091, 258, - 33091, 259, 34077, 1272, 34077, 1274, 33114, 1184, 33114, 1186, 34077, - 1276, 34077, 1278, 33114, 1190, 33114, 1192, 33091, 248, 33091, 249, - 33092, 716, 33092, 717, 33091, 313, 33091, 314, 33114, 1194, 33114, - 1196, 33114, 1198, 34077, 1286, 33114, 1200, 33114, 1207, 34077, 1288, - 33114, 1204, 33114, 1210, 33114, 1211, 34077, 1292, 33114, 1214, - 33114, 1215, 33114, 1218, 33114, 1219, 33114, 1224, 33114, 1225, - 33114, 1248, 33114, 1249, 33114, 1228, 33114, 1229, 33114, 1232, - 33114, 1233, 33114, 1250, 33098, 261, 1310, 1295, 34077, 1294, 33114, - 1240, 33114, 1241, 33114, 1242, 33114, 1243, 332, 292, 330, 188, 345, - 783, 340, 186, 325, 777, 336, 779, 331, 290, 33088, 184, 33114, 1252, - 33114, 1253, 33114, 1254, 33114, 1255, 1309, 1300, 34078, 1301, 326, - 829, 33093, 827, 33445, 666, 33445, 668, 33445, 670, 33445, 672, - 33445, 674, 33445, 676, 33445, 679, 33445, 681, 33445, 684, 33445, - 685, 33445, 687, 585, 583, 584, 581, 33347, 582, 319, 1104, 323, 1103, - 324, 1102, 334, 942, 352, 1106, 320, 356, 33101, 941, 33364, 589, 320, - 358, 319, 1115, 334, 956, 33101, 955, 352, 1119, 334, 970, 320, 359, - 319, 1117, 33101, 969, 319, 1131, 326, 373, 333, 985, 323, 1130, 324, - 1129, 320, 360, 33102, 986, 319, 1157, 334, 1000, 320, 361, 33101, - 999, 33102, 1148, 324, 1144, 326, 374, 320, 362, 319, 1146, 334, 1013, - 33091, 1145, 352, 1161, 334, 1026, 319, 1159, 320, 363, 33101, 1025, - 33120, 1099, 33120, 1112, 320, 375, 334, 934, 323, 1096, 352, 1098, - 349, 1100, 333, 933, 324, 1095, 33087, 1033, 320, 376, 334, 950, 319, - 1035, 33101, 949, 319, 1037, 334, 962, 320, 377, 333, 961, 352, 1111, - 33117, 1113, 333, 977, 323, 1124, 326, 388, 320, 378, 349, 1127, 334, - 978, 324, 1123, 33087, 1039, 319, 1041, 334, 994, 320, 390, 33101, - 993, 333, 1140, 33102, 1141, 319, 1043, 333, 1005, 320, 391, 326, 389, - 324, 1136, 334, 1006, 323, 1137, 33117, 1142, 590, 593, 33364, 595, - 33358, 594, 320, 392, 352, 1153, 349, 1155, 333, 1017, 319, 1045, - 33102, 1018, 320, 364, 319, 1125, 33117, 1128, 320, 379, 319, 1138, - 33117, 1143, 33120, 1154, 326, 395, 33088, 394, 33093, 719, 33094, - 400, 324, 444, 33094, 446, 33088, 398, 319, 396, 324, 448, 33094, 397, - 326, 454, 33092, 442, 33094, 456, 324, 410, 319, 402, 326, 460, 33091, - 458, 33088, 401, 33094, 462, 326, 472, 323, 470, 324, 403, 33097, 474, - 33094, 476, 33094, 478, 33094, 468, 324, 445, 33094, 447, 33088, 432, - 319, 430, 324, 449, 33094, 431, 326, 455, 33092, 443, 33094, 457, 324, - 423, 326, 461, 323, 459, 33087, 436, 33088, 435, 33094, 463, 323, 471, - 329, 475, 324, 437, 33094, 473, 33367, 598, 33094, 477, 33094, 479, - 33094, 469, 33094, 434, 33099, 440, 33099, 441, 33120, 1092, 34077, - 1339, 320, 269, 33091, 250, 33376, 601, 609, 605, 602, 606, 33376, - 604, 33376, 607, 33094, 452, 33094, 453, 33088, 734, 33094, 466, - 33094, 467, 323, 309, 320, 764, 33094, 766, 33088, 271, 610, 613, - 33384, 615, 33378, 614, 34077, 1364, 624, 623, 617, 620, 33386, 621, - 33385, 622, 521, 514, 520, 512, 33287, 511, 33091, 744, 33091, 745, - 33288, 513, 33288, 515, 33091, 780, 33091, 781, 33114, 1188, 33093, - 792, 33093, 793, 324, 865, 33089, 855, 324, 866, 33089, 856, 33089, - 881, 33089, 882, 33288, 524, 33089, 899, 33089, 900, 33288, 526, - 33288, 522, 320, 937, 319, 935, 352, 1047, 33117, 939, 320, 938, 319, - 936, 352, 1048, 33117, 940, 33120, 1049, 33120, 1050, 33120, 1051, - 33120, 1052, 33120, 1053, 33120, 1054, 349, 947, 319, 943, 320, 945, - 33120, 1055, 320, 946, 319, 944, 352, 1056, 33117, 948, 33120, 1057, - 33120, 1058, 33120, 1059, 33120, 1060, 33120, 1061, 33120, 1062, 320, - 953, 33087, 951, 319, 952, 33088, 954, 320, 959, 33087, 957, 319, 958, - 33088, 960, 319, 963, 320, 965, 349, 967, 33120, 1063, 352, 1064, 319, - 964, 320, 966, 33117, 968, 33120, 1065, 33120, 1066, 33120, 1067, - 33120, 1068, 33120, 1069, 33120, 1070, 352, 1071, 320, 973, 319, 971, - 33117, 975, 320, 974, 319, 972, 352, 1072, 33117, 976, 33120, 1073, - 33120, 1074, 33120, 1075, 33120, 1076, 33120, 1077, 33120, 1078, 319, - 979, 320, 981, 33117, 983, 320, 982, 319, 980, 33117, 984, 319, 987, - 320, 989, 33117, 991, 320, 990, 319, 988, 33117, 992, 320, 997, 33087, - 995, 319, 996, 33088, 998, 320, 1003, 33087, 1001, 319, 1002, 33088, - 1004, 319, 1007, 320, 1009, 33117, 1011, 320, 1010, 319, 1008, 33117, - 1012, 320, 1015, 319, 1014, 33117, 1016, 349, 1023, 319, 1019, 352, - 1079, 33088, 1021, 320, 1022, 319, 1020, 352, 1080, 33117, 1024, - 33120, 1081, 33120, 1082, 33120, 1083, 33120, 1084, 33120, 1085, - 33120, 1086, 352, 1087, 320, 1029, 319, 1027, 33117, 1031, 352, 1088, - 319, 1028, 320, 1030, 33117, 1032, 33120, 1089, 33120, 1090, 33120, - 1091, 33114, 1251, 33120, 1093, 33120, 1094, 33120, 1097, 33120, 1110, - 33120, 1152, 33120, 1101, 320, 1121, 319, 1120, 33117, 1122, 33120, - 1114, 33120, 1156, 319, 1133, 320, 1134, 33117, 1135 -}; + 33432, 663, 33114, 1208, 33114, 1202, 33114, 1209, 319, 59, 322, 62, 330, 230, 331, 273, 325, 303, + 341, 120, 332, 275, 327, 845, 324, 118, 338, 688, 321, 61, 336, 843, 326, 63, 320, 60, + 323, 116, 33096, 64, 345, 694, 325, 690, 33104, 692, 330, 128, 320, 122, 340, 66, 325, 126, + 33089, 124, 330, 130, 340, 704, 325, 698, 342, 706, 345, 702, 33104, 700, 336, 867, 341, 138, + 332, 279, 342, 712, 330, 140, 326, 70, 321, 69, 324, 134, 322, 871, 344, 714, 323, 132, + 331, 277, 325, 136, 319, 67, 340, 305, 320, 68, 33095, 869, 34077, 1308, 321, 142, 330, 252, + 324, 144, 320, 263, 340, 148, 323, 720, 33093, 146, 336, 724, 330, 301, 326, 726, 340, 728, + 321, 150, 325, 722, 33111, 730, 330, 232, 323, 154, 332, 283, 320, 72, 327, 883, 336, 885, + 319, 71, 322, 152, 331, 281, 324, 156, 321, 73, 325, 160, 326, 74, 344, 732, 33109, 158, + 33089, 161, 336, 738, 320, 736, 345, 740, 330, 254, 33108, 163, 336, 742, 340, 167, 345, 746, + 342, 748, 330, 169, 33088, 165, 34077, 1266, 320, 171, 330, 175, 319, 265, 325, 756, 340, 173, + 336, 758, 322, 75, 342, 762, 33113, 760, 335, 225, 325, 311, 327, 889, 331, 285, 326, 80, + 323, 177, 321, 78, 341, 256, 319, 76, 320, 77, 330, 234, 336, 887, 322, 79, 332, 287, + 324, 179, 33097, 181, 320, 772, 33093, 774, 34077, 1270, 345, 782, 325, 776, 330, 187, 340, 185, + 331, 289, 336, 778, 320, 183, 33100, 291, 325, 784, 321, 191, 330, 195, 320, 189, 340, 193, + 339, 297, 33104, 786, 342, 800, 330, 199, 325, 794, 339, 299, 345, 798, 340, 197, 33104, 796, + 323, 203, 320, 83, 337, 802, 344, 804, 329, 209, 330, 236, 322, 201, 331, 293, 321, 84, + 328, 207, 332, 295, 341, 211, 326, 85, 335, 227, 324, 205, 319, 82, 336, 911, 327, 913, + 33110, 806, 336, 814, 33090, 812, 319, 816, 325, 822, 321, 213, 336, 824, 326, 820, 33088, 818, + 326, 828, 33093, 826, 325, 830, 326, 217, 327, 929, 336, 927, 319, 925, 321, 215, 323, 315, + 320, 86, 33090, 931, 320, 218, 325, 220, 345, 836, 336, 834, 330, 222, 33089, 832, 34077, 1280, + 34077, 1282, 34077, 1284, 327, 846, 330, 231, 323, 117, 336, 844, 325, 304, 331, 274, 324, 119, + 319, 87, 332, 276, 321, 89, 338, 689, 326, 91, 341, 121, 320, 88, 322, 90, 33096, 92, + 336, 693, 345, 695, 33093, 691, 325, 127, 340, 94, 321, 125, 320, 123, 33098, 129, 336, 701, + 342, 707, 340, 705, 325, 699, 345, 703, 33098, 131, 336, 868, 323, 133, 330, 141, 332, 280, + 342, 713, 326, 98, 324, 135, 321, 97, 319, 95, 344, 715, 327, 870, 320, 96, 322, 872, + 331, 278, 325, 137, 340, 306, 33109, 139, 34077, 1290, 321, 143, 325, 147, 330, 253, 324, 145, + 340, 149, 323, 721, 33088, 264, 325, 723, 330, 302, 345, 838, 326, 727, 321, 151, 340, 729, + 336, 725, 33111, 731, 331, 282, 320, 100, 332, 284, 327, 884, 336, 886, 322, 153, 326, 102, + 324, 157, 330, 233, 341, 159, 319, 99, 344, 733, 323, 155, 33089, 101, 330, 262, 33089, 162, + 345, 741, 330, 255, 320, 737, 340, 164, 33104, 739, 336, 743, 330, 170, 340, 168, 345, 747, + 342, 749, 33088, 166, 336, 755, 325, 753, 33088, 751, 345, 761, 319, 266, 340, 174, 320, 172, + 325, 757, 336, 759, 342, 763, 330, 176, 33090, 103, 330, 235, 321, 106, 336, 888, 326, 108, + 341, 257, 327, 890, 325, 312, 319, 104, 322, 107, 323, 178, 331, 286, 320, 105, 329, 182, + 324, 180, 332, 288, 33103, 226, 325, 775, 33088, 773, 1310, 1298, 34077, 1297, 330, 196, 336, 787, + 325, 785, 320, 190, 339, 298, 340, 194, 33089, 192, 326, 839, 336, 797, 330, 200, 342, 801, + 339, 300, 325, 795, 345, 799, 33108, 198, 335, 228, 329, 210, 320, 111, 337, 803, 319, 110, + 331, 294, 326, 113, 342, 807, 341, 212, 322, 202, 344, 805, 324, 206, 332, 296, 330, 237, + 327, 914, 321, 112, 323, 204, 336, 912, 33096, 208, 322, 813, 33104, 815, 320, 819, 321, 214, + 325, 823, 328, 840, 336, 825, 326, 821, 33087, 817, 1310, 1304, 34077, 1303, 325, 831, 323, 316, + 319, 926, 326, 115, 336, 928, 321, 216, 328, 841, 320, 114, 327, 930, 33090, 932, 345, 837, + 336, 835, 325, 221, 321, 833, 330, 223, 33088, 219, 1309, 1306, 34078, 1307, 35430, 2657, 35430, 2659, + 34077, 1312, 35430, 2661, 34077, 1363, 319, 1149, 349, 1109, 33088, 355, 34077, 1315, 34077, 1317, 34077, 1319, + 34077, 1321, 34077, 1323, 34077, 1325, 34077, 1327, 34077, 1329, 34077, 1331, 34077, 1333, 34077, 1335, 34077, 1337, + 327, 851, 322, 853, 320, 847, 33087, 849, 33091, 246, 33088, 267, 34077, 1341, 33088, 696, 34077, 1343, + 322, 879, 319, 875, 320, 873, 33095, 877, 1310, 1346, 34077, 1345, 1310, 1349, 34077, 1348, 327, 895, + 322, 897, 319, 893, 33088, 891, 1309, 1351, 34078, 1352, 33091, 307, 1310, 1355, 34077, 1354, 1309, 1357, + 34078, 1358, 319, 244, 330, 242, 320, 240, 33091, 238, 327, 852, 319, 850, 322, 854, 33088, 848, + 33091, 247, 33088, 268, 323, 251, 33088, 270, 33088, 697, 320, 874, 327, 878, 322, 880, 33087, 876, + 33088, 735, 34077, 1365, 34077, 1366, 34077, 1367, 319, 894, 320, 892, 322, 898, 33095, 896, 320, 765, + 326, 767, 33091, 310, 33091, 308, 33088, 272, 320, 241, 323, 239, 319, 245, 33098, 243, 34077, 1369, + 320, 857, 319, 859, 322, 863, 33095, 861, 320, 858, 327, 862, 322, 864, 33087, 860, 319, 708, + 33088, 710, 320, 711, 33087, 709, 33310, 535, 33310, 539, 35431, 2664, 35431, 2665, 33310, 541, 319, 768, + 33088, 770, 320, 771, 33087, 769, 33093, 788, 33093, 789, 33093, 790, 33093, 791, 33088, 808, 33088, 809, + 33094, 810, 33094, 811, 33093, 842, 33114, 1174, 33114, 1175, 33114, 1176, 322, 907, 336, 909, 327, 905, + 319, 903, 33088, 901, 319, 904, 336, 910, 327, 906, 320, 902, 33090, 908, 33093, 718, 320, 915, + 319, 917, 327, 919, 322, 921, 33104, 923, 319, 918, 336, 924, 320, 916, 327, 920, 33090, 922, + 33098, 260, 34077, 1264, 559, 558, 33323, 557, 336, 754, 325, 752, 33088, 750, 33114, 1177, 33114, 1179, + 33114, 1178, 34077, 1268, 33091, 258, 33091, 259, 34077, 1272, 34077, 1274, 33114, 1184, 33114, 1186, 34077, 1276, + 34077, 1278, 33114, 1190, 33114, 1192, 33091, 248, 33091, 249, 33092, 716, 33092, 717, 33091, 313, 33091, 314, + 33114, 1194, 33114, 1196, 33114, 1198, 34077, 1286, 33114, 1200, 33114, 1207, 34077, 1288, 33114, 1204, 33114, 1210, + 33114, 1211, 34077, 1292, 33114, 1214, 33114, 1215, 33114, 1218, 33114, 1219, 33114, 1224, 33114, 1225, 33114, 1248, + 33114, 1249, 33114, 1228, 33114, 1229, 33114, 1232, 33114, 1233, 33114, 1250, 33098, 261, 1310, 1295, 34077, 1294, + 33114, 1240, 33114, 1241, 33114, 1242, 33114, 1243, 332, 292, 330, 188, 345, 783, 340, 186, 325, 777, + 336, 779, 331, 290, 33088, 184, 33114, 1252, 33114, 1253, 33114, 1254, 33114, 1255, 1309, 1300, 34078, 1301, + 326, 829, 33093, 827, 33445, 666, 33445, 668, 33445, 670, 33445, 672, 33445, 674, 33445, 676, 33445, 679, + 33445, 681, 33445, 684, 33445, 685, 33445, 687, 585, 583, 584, 581, 33347, 582, 319, 1104, 323, 1103, + 324, 1102, 334, 942, 352, 1106, 320, 356, 33101, 941, 33364, 589, 320, 358, 319, 1115, 334, 956, + 33101, 955, 352, 1119, 334, 970, 320, 359, 319, 1117, 33101, 969, 319, 1131, 326, 373, 333, 985, + 323, 1130, 324, 1129, 320, 360, 33102, 986, 319, 1157, 334, 1000, 320, 361, 33101, 999, 33102, 1148, + 324, 1144, 326, 374, 320, 362, 319, 1146, 334, 1013, 33091, 1145, 352, 1161, 334, 1026, 319, 1159, + 320, 363, 33101, 1025, 33120, 1099, 33120, 1112, 320, 375, 334, 934, 323, 1096, 352, 1098, 349, 1100, + 333, 933, 324, 1095, 33087, 1033, 320, 376, 334, 950, 319, 1035, 33101, 949, 319, 1037, 334, 962, + 320, 377, 333, 961, 352, 1111, 33117, 1113, 333, 977, 323, 1124, 326, 388, 320, 378, 349, 1127, + 334, 978, 324, 1123, 33087, 1039, 319, 1041, 334, 994, 320, 390, 33101, 993, 333, 1140, 33102, 1141, + 319, 1043, 333, 1005, 320, 391, 326, 389, 324, 1136, 334, 1006, 323, 1137, 33117, 1142, 590, 593, + 33364, 595, 33358, 594, 320, 392, 352, 1153, 349, 1155, 333, 1017, 319, 1045, 33102, 1018, 320, 364, + 319, 1125, 33117, 1128, 320, 379, 319, 1138, 33117, 1143, 33120, 1154, 326, 395, 33088, 394, 33093, 719, + 33094, 400, 324, 444, 33094, 446, 33088, 398, 319, 396, 324, 448, 33094, 397, 326, 454, 33092, 442, + 33094, 456, 324, 410, 319, 402, 326, 460, 33091, 458, 33088, 401, 33094, 462, 326, 472, 323, 470, + 324, 403, 33097, 474, 33094, 476, 33094, 478, 33094, 468, 324, 445, 33094, 447, 33088, 432, 319, 430, + 324, 449, 33094, 431, 326, 455, 33092, 443, 33094, 457, 324, 423, 326, 461, 323, 459, 33087, 436, + 33088, 435, 33094, 463, 323, 471, 329, 475, 324, 437, 33094, 473, 33367, 598, 33094, 477, 33094, 479, + 33094, 469, 33094, 434, 33099, 440, 33099, 441, 33120, 1092, 34077, 1339, 320, 269, 33091, 250, 33376, 601, + 609, 605, 602, 606, 33376, 604, 33376, 607, 33094, 452, 33094, 453, 33088, 734, 33094, 466, 33094, 467, + 323, 309, 320, 764, 33094, 766, 33088, 271, 610, 613, 33384, 615, 33378, 614, 34077, 1364, 624, 623, + 617, 620, 33386, 621, 33385, 622, 521, 514, 520, 512, 33287, 511, 33091, 744, 33091, 745, 33288, 513, + 33288, 515, 33091, 780, 33091, 781, 33114, 1188, 33093, 792, 33093, 793, 324, 865, 33089, 855, 324, 866, + 33089, 856, 33089, 881, 33089, 882, 33288, 524, 33089, 899, 33089, 900, 33288, 526, 33288, 522, 320, 937, + 319, 935, 352, 1047, 33117, 939, 320, 938, 319, 936, 352, 1048, 33117, 940, 33120, 1049, 33120, 1050, + 33120, 1051, 33120, 1052, 33120, 1053, 33120, 1054, 349, 947, 319, 943, 320, 945, 33120, 1055, 320, 946, + 319, 944, 352, 1056, 33117, 948, 33120, 1057, 33120, 1058, 33120, 1059, 33120, 1060, 33120, 1061, 33120, 1062, + 320, 953, 33087, 951, 319, 952, 33088, 954, 320, 959, 33087, 957, 319, 958, 33088, 960, 319, 963, + 320, 965, 349, 967, 33120, 1063, 352, 1064, 319, 964, 320, 966, 33117, 968, 33120, 1065, 33120, 1066, + 33120, 1067, 33120, 1068, 33120, 1069, 33120, 1070, 352, 1071, 320, 973, 319, 971, 33117, 975, 320, 974, + 319, 972, 352, 1072, 33117, 976, 33120, 1073, 33120, 1074, 33120, 1075, 33120, 1076, 33120, 1077, 33120, 1078, + 319, 979, 320, 981, 33117, 983, 320, 982, 319, 980, 33117, 984, 319, 987, 320, 989, 33117, 991, + 320, 990, 319, 988, 33117, 992, 320, 997, 33087, 995, 319, 996, 33088, 998, 320, 1003, 33087, 1001, + 319, 1002, 33088, 1004, 319, 1007, 320, 1009, 33117, 1011, 320, 1010, 319, 1008, 33117, 1012, 320, 1015, + 319, 1014, 33117, 1016, 349, 1023, 319, 1019, 352, 1079, 33088, 1021, 320, 1022, 319, 1020, 352, 1080, + 33117, 1024, 33120, 1081, 33120, 1082, 33120, 1083, 33120, 1084, 33120, 1085, 33120, 1086, 352, 1087, 320, 1029, + 319, 1027, 33117, 1031, 352, 1088, 319, 1028, 320, 1030, 33117, 1032, 33120, 1089, 33120, 1090, 33120, 1091, + 33114, 1251, 33120, 1093, 33120, 1094, 33120, 1097, 33120, 1110, 33120, 1152, 33120, 1101, 320, 1121, 319, 1120, + 33117, 1122, 33120, 1114, 33120, 1156, 319, 1133, 320, 1134, 33117, 1135}; static const uint16_t decomp_seq[] = { - 0, 1166, 1167, 2783, 2784, 1989, 2075, 2064, 5, 319, 5, 320, 5, 321, - 5, 322, 5, 326, 5, 328, 7, 340, 9, 319, 9, 320, 9, 321, 9, 326, 13, - 319, 13, 320, 13, 321, 13, 326, 18, 322, 19, 319, 19, 320, 19, 321, - 19, 322, 19, 326, 24, 319, 24, 320, 24, 321, 24, 326, 28, 320, 31, - 319, 31, 320, 31, 321, 31, 322, 31, 326, 31, 328, 33, 340, 35, 319, - 35, 320, 35, 321, 35, 326, 39, 319, 39, 320, 39, 321, 39, 326, 44, - 322, 45, 319, 45, 320, 45, 321, 45, 322, 45, 326, 50, 319, 50, 320, - 50, 321, 50, 326, 54, 320, 54, 326, 5, 323, 31, 323, 5, 324, 31, 324, - 5, 341, 31, 341, 7, 320, 33, 320, 7, 321, 33, 321, 7, 325, 33, 325, 7, - 330, 33, 330, 8, 330, 34, 330, 9, 323, 35, 323, 9, 324, 35, 324, 9, - 325, 35, 325, 9, 341, 35, 341, 9, 330, 35, 330, 11, 321, 37, 321, 11, - 324, 37, 324, 11, 325, 37, 325, 11, 340, 37, 340, 12, 321, 38, 321, - 372, 13, 322, 39, 322, 13, 323, 39, 323, 13, 324, 39, 324, 13, 341, - 39, 341, 13, 325, 14, 321, 40, 321, 15, 340, 41, 340, 16, 320, 42, - 320, 16, 340, 42, 340, 16, 330, 42, 330, 18, 320, 44, 320, 18, 340, - 44, 340, 18, 330, 44, 330, 19, 323, 45, 323, 19, 324, 45, 324, 19, - 329, 45, 329, 21, 320, 47, 320, 21, 340, 47, 340, 21, 330, 47, 330, - 22, 320, 48, 320, 22, 321, 48, 321, 22, 340, 48, 340, 22, 330, 48, - 330, 23, 340, 49, 340, 23, 330, 49, 330, 24, 322, 50, 322, 24, 323, - 50, 323, 24, 324, 50, 324, 24, 328, 50, 328, 24, 329, 50, 329, 24, - 341, 50, 341, 26, 321, 52, 321, 28, 321, 54, 321, 28, 326, 29, 320, - 55, 320, 29, 325, 55, 325, 29, 330, 55, 330, 1171, 346, 1172, 346, 19, - 335, 45, 335, 1173, 346, 24, 335, 50, 335, 2000, 5, 330, 31, 330, 13, - 330, 39, 330, 19, 330, 45, 330, 24, 330, 50, 330, 24, 326, 323, 50, - 326, 323, 24, 326, 320, 50, 326, 320, 24, 326, 330, 50, 326, 330, 24, - 326, 319, 50, 326, 319, 5, 326, 323, 31, 326, 323, 5, 325, 323, 31, - 325, 323, 65, 323, 93, 323, 11, 330, 37, 330, 15, 330, 41, 330, 19, - 341, 45, 341, 19, 341, 323, 45, 341, 323, 229, 330, 317, 330, 40, 330, - 11, 320, 37, 320, 18, 319, 44, 319, 5, 328, 320, 31, 328, 320, 65, - 320, 93, 320, 81, 320, 109, 320, 5, 331, 31, 331, 5, 332, 31, 332, 9, - 331, 35, 331, 9, 332, 35, 332, 13, 331, 39, 331, 13, 332, 39, 332, 19, - 331, 45, 331, 19, 332, 45, 332, 21, 331, 47, 331, 21, 332, 47, 332, - 24, 331, 50, 331, 24, 332, 50, 332, 22, 339, 48, 339, 23, 339, 49, - 339, 12, 330, 38, 330, 1189, 346, 1191, 346, 9, 340, 35, 340, 19, 326, - 323, 45, 326, 323, 19, 322, 323, 45, 322, 323, 19, 325, 45, 325, 19, - 325, 323, 45, 325, 323, 28, 323, 54, 323, 1193, 346, 1195, 346, 1197, - 346, 1199, 346, 3, 346, 1203, 346, 1201, 346, 2, 346, 4, 346, 1205, - 346, 1206, 346, 1212, 346, 1213, 346, 1216, 346, 1217, 346, 1220, 346, - 1221, 346, 1226, 346, 1227, 346, 1230, 346, 1231, 346, 1993, 1236, - 346, 1237, 346, 1238, 346, 1239, 346, 2790, 1222, 346, 1223, 346, - 1234, 346, 1235, 346, 1244, 346, 1245, 346, 1246, 346, 1247, 346, - 1260, 1261, 333, 498, 484, 318, 1, 501, 484, 56, 320, 365, 320, 58, - 366, 320, 367, 320, 368, 320, 369, 320, 371, 320, 372, 320, 383, 326, - 320, 503, 484, 368, 326, 371, 326, 380, 320, 381, 320, 382, 320, 383, - 320, 386, 326, 320, 384, 320, 386, 320, 387, 320, 1418, 393, 320, 393, - 326, 406, 319, 406, 326, 405, 320, 399, 326, 411, 320, 409, 319, 413, - 324, 409, 324, 1982, 422, 324, 419, 319, 419, 326, 418, 320, 433, 326, - 424, 320, 422, 319, 426, 324, 1419, 438, 331, 439, 331, 1990, 407, - 324, 420, 324, 404, 324, 417, 324, 404, 326, 417, 326, 406, 324, 419, - 324, 450, 326, 451, 326, 407, 326, 420, 326, 408, 326, 421, 326, 409, - 323, 422, 323, 409, 326, 422, 326, 412, 326, 425, 326, 464, 326, 465, - 326, 416, 326, 429, 326, 413, 323, 426, 323, 413, 326, 426, 326, 413, - 329, 426, 329, 414, 326, 427, 326, 415, 326, 428, 326, 1977, 516, 519, - 516, 520, 517, 520, 516, 521, 518, 520, 1420, 527, 520, 523, 520, 525, - 520, 1992, 534, 542, 538, 542, 540, 542, 528, 542, 529, 542, 530, 542, - 531, 542, 532, 542, 533, 542, 536, 542, 537, 542, 556, 555, 556, 559, - 551, 554, 552, 554, 553, 554, 567, 571, 570, 571, 2776, 563, 571, 564, - 571, 565, 571, 566, 571, 1180, 346, 1182, 346, 1181, 346, 1259, 346, - 580, 584, 580, 579, 580, 585, 576, 578, 577, 578, 588, 596, 591, 590, - 592, 590, 591, 596, 1183, 346, 1185, 346, 597, 599, 1187, 346, 600, - 608, 603, 608, 603, 609, 603, 602, 603, 602, 608, 611, 610, 612, 610, - 611, 616, 619, 617, 619, 618, 619, 618, 617, 619, 624, 626, 660, 628, - 660, 630, 660, 632, 660, 634, 660, 625, 659, 637, 638, 637, 640, 657, - 644, 658, 644, 637, 644, 647, 660, 649, 660, 651, 660, 653, 660, 655, - 660, 646, 659, 1892, 1895, 1406, 662, 664, 1897, 1263, 1309, 1265, - 1309, 1267, 1309, 1269, 1309, 1271, 1309, 1273, 1309, 1275, 1309, - 1277, 1309, 1279, 1309, 1281, 1309, 1283, 1309, 1285, 1309, 1287, - 1309, 1289, 1309, 1291, 1309, 1293, 1309, 1293, 1310, 1296, 1309, - 1296, 1310, 1299, 1309, 1299, 1310, 1302, 1309, 1302, 1310, 1305, - 1309, 1305, 1310, 1262, 1309, 2753, 2656, 2662, 2658, 2662, 1311, - 1309, 2660, 2662, 1314, 1309, 1316, 1309, 1318, 1309, 1320, 1309, - 1322, 1309, 1324, 1309, 1326, 1309, 1328, 1309, 1330, 1309, 1332, - 1309, 1334, 1309, 1336, 1309, 1338, 1309, 1340, 1309, 1342, 1309, - 1344, 1309, 1344, 1310, 1347, 1309, 1347, 1310, 1350, 1309, 1350, - 1310, 1353, 1309, 1353, 1310, 1356, 1309, 1356, 1310, 1903, 1313, - 1309, 1359, 1309, 1360, 1309, 1361, 1309, 1362, 1309, 1368, 1309, - 1407, 2666, 2663, 2667, 2663, 1906, 2668, 2677, 2669, 2677, 2669, - 2677, 2678, 2669, 2677, 2679, 2669, 2677, 2680, 2669, 2677, 2681, - 2669, 2677, 2682, 1907, 1408, 2756, 2683, 2677, 2684, 2677, 2683, - 2677, 2678, 2684, 2677, 2678, 2683, 2677, 2679, 2684, 2677, 2679, - 1913, 1409, 1917, 1915, 1918, 2758, 1923, 1898, 1410, 1926, 1928, - 1932, 1411, 1899, 2760, 2761, 1412, 2762, 1936, 2763, 1938, 1941, - 1943, 2764, 2754, 2765, 1945, 2766, 1947, 2718, 1413, 1951, 1952, - 1415, 1953, 1588, 2767, 2768, 2719, 2720, 1773, 1777, 1774, 1775, - 1778, 2794, 1957, 1779, 2729, 1772, 1785, 1786, 1958, 1394, 1790, - 1789, 2730, 1783, 2067, 1796, 2731, 2732, 1797, 1802, 1416, 1801, - 1800, 1395, 1803, 1806, 1963, 1805, 1808, 2693, 1811, 2755, 2733, - 1962, 1814, 2735, 1819, 1821, 1822, 1964, 2736, 1824, 1825, 2737, - 2738, 1500, 1831, 1833, 1396, 1834, 1397, 1965, 1840, 1841, 1843, - 1844, 1966, 1847, 1398, 1849, 2739, 1851, 1967, 2740, 1854, 2709, - 1856, 2741, 1969, 2742, 2743, 1399, 1971, 1400, 1864, 2769, 2745, - 2744, 2746, 2747, 1866, 1968, 1867, 1869, 1402, 1870, 1970, 1403, - 1404, 2749, 1872, 1874, 1975, 1877, 1405, 2750, 1885, 2751, 1976, - 2752, 1442, 1440, 1443, 2691, 1450, 1454, 1455, 1457, 1459, 1460, - 1463, 1461, 1370, 2695, 1466, 1467, 1468, 1473, 2692, 1371, 1469, - 1475, 2694, 1478, 1479, 1448, 1480, 1481, 2789, 1487, 1488, 1373, - 1493, 1494, 1495, 1496, 1374, 1501, 1502, 1505, 1507, 1508, 1509, - 1510, 1512, 1513, 1514, 1515, 1517, 1518, 2698, 1804, 1520, 1521, - 2699, 1523, 1524, 1525, 1532, 1528, 1530, 1531, 1533, 1535, 1536, - 1537, 1539, 1540, 1542, 1544, 1545, 1547, 1554, 1549, 1555, 1550, - 1552, 1489, 1570, 1557, 1558, 1559, 1556, 1561, 1560, 1566, 2700, - 1571, 1572, 1573, 1574, 1575, 1580, 2701, 2702, 1583, 1584, 1585, - 1582, 1587, 1375, 1376, 1589, 1591, 2703, 1593, 1594, 1595, 1597, - 2704, 1598, 1599, 1637, 1600, 1377, 1602, 1606, 1608, 1607, 2706, - 1610, 2707, 1613, 1612, 1614, 1617, 1618, 1378, 1619, 1620, 1621, - 1622, 1379, 2708, 1380, 1625, 1626, 1627, 1629, 2799, 1634, 2710, - 1636, 1381, 2717, 2759, 1638, 1640, 1382, 1642, 1645, 1646, 1648, - 1652, 1384, 1383, 1653, 2711, 1654, 1659, 1660, 1661, 1664, 1665, - 1669, 1667, 1668, 1670, 1671, 1672, 1674, 1675, 1678, 1679, 1683, - 1687, 2714, 1686, 1684, 1688, 1690, 1695, 2715, 1697, 1694, 1692, - 1385, 1699, 1701, 1703, 1700, 1386, 1705, 1707, 2716, 1712, 1722, - 1714, 1389, 1717, 1388, 1387, 1476, 1477, 1723, 1718, 1950, 1414, - 1724, 1725, 1726, 1730, 1728, 2721, 1390, 1735, 1732, 1738, 1740, - 2723, 1741, 1737, 1743, 1391, 1744, 1745, 1746, 1749, 2724, 1751, - 1392, 1753, 2725, 1754, 1393, 1755, 1758, 1760, 1761, 2726, 2705, - 2727, 1762, 2728, 1765, 1767, 1763, 1769, 2046, 1721, 2060, 2051, - 1791, 1439, 1522, 2161, 1578, 2087, 1541, 1577, 1860, 1937, 1999, - 2012, 2024, 2074, 1747, 1770, 1810, 1836, 1985, 2082, 2135, 1444, - 1516, 1752, 1818, 1998, 2146, 1611, 1798, 1994, 2028, 1680, 1954, - 2015, 1776, 1828, 2076, 1452, 1482, 1504, 1704, 1750, 1817, 1863, - 1942, 1996, 2001, 2058, 2117, 2139, 2145, 1889, 1924, 1978, 2094, - 2147, 2037, 1569, 1635, 1909, 1948, 1823, 1876, 2050, 2115, 1568, - 1603, 1748, 1781, 1793, 1921, 1930, 2102, 1503, 1949, 1485, 1484, - 1896, 1925, 1984, 2104, 2044, 1681, 2040, 1441, 1649, 1832, 1878, - 1456, 1643, 1437, 1766, 1708, 1920, 1519, 1564, 1865, 1986, 2033, - 2068, 1764, 1685, 1691, 1853, 1446, 1471, 1483, 1739, 1916, 1960, - 2036, 2086, 1506, 1529, 1581, 1633, 1710, 1799, 1879, 2099, 2137, - 2148, 2151, 1498, 1720, 1756, 2066, 1623, 1666, 1673, 1702, 1795, - 1812, 1845, 1894, 1927, 1946, 2062, 1988, 2070, 2095, 1490, 1499, - 1534, 1809, 2019, 1628, 1647, 1689, 1759, 1908, 1830, 1449, 1553, - 1616, 1650, 1835, 1842, 1939, 1944, 2088, 2114, 2118, 2124, 1453, - 1893, 2084, 2110, 1656, 1445, 1462, 1596, 1601, 1709, 1815, 1859, - 1991, 2073, 2159, 1716, 2101, 1497, 1731, 1734, 1787, 1838, 1852, - 1873, 1919, 2127, 1472, 1676, 2105, 1458, 1609, 1782, 2063, 1641, - 1658, 1736, 2107, 1491, 1526, 1605, 1713, 1727, 1742, 1768, 1837, - 1855, 1935, 2020, 2023, 2085, 2112, 1511, 1788, 1527, 1816, 1846, - 1995, 2108, 2141, 2149, 1733, 1780, 1955, 1902, 1904, 1911, 1827, - 1807, 2043, 1447, 1972, 1492, 1624, 1682, 1914, 1592, 1771, 1719, - 2065, 2016, 2103, 2030, 1631, 1464, 1546, 1434, 2773, 1563, 1435, - 1715, 2797, 2798, 1486, 1829, 1861, 1880, 1887, 1888, 2119, 1912, - 1940, 1997, 2774, 2039, 2071, 2079, 2775, 2129, 2130, 2131, 2144, - 2077, 2109, 1543, 1551, 1562, 1565, 1604, 1663, 1711, 1784, 1794, - 1813, 1820, 1839, 1875, 1881, 1883, 1882, 1884, 1886, 1890, 1891, - 1900, 1905, 1929, 1931, 1934, 1956, 1961, 1987, 2026, 2031, 2041, - 2042, 2052, 2053, 2069, 2113, 2122, 2126, 1651, 2734, 1959, 2009, - 1438, 1470, 1451, 1465, 1474, 1538, 1548, 1567, 1576, 1579, 1586, - 1590, 1630, 1632, 1639, 1644, 1655, 1657, 1662, 1677, 1693, 1696, - 1698, 1706, 1729, 1757, 1792, 1871, 1826, 1848, 1850, 1857, 1858, - 1862, 1868, 1901, 1910, 1922, 1933, 1973, 1983, 2010, 2027, 2029, - 2034, 2035, 2038, 2045, 2072, 2083, 2090, 2106, 2120, 2123, 2138, - 2713, 2712, 2722, 1401, 2748, 2757, 2781, 2158, 2160, 2032, 2047, - 2780, 2048, 2049, 2054, 665, 677, 667, 677, 2002, 669, 677, 2055, 671, - 677, 673, 677, 2782, 675, 677, 2696, 496, 480, 510, 481, 2056, 2003, - 2059, 508, 486, 508, 487, 508, 484, 486, 508, 484, 487, 488, 481, 488, - 482, 488, 484, 489, 484, 490, 484, 491, 484, 492, 484, 493, 484, 494, - 484, 495, 484, 496, 484, 497, 484, 678, 677, 499, 484, 680, 677, 500, - 484, 682, 677, 683, 677, 686, 677, 504, 484, 2005, 505, 484, 506, 484, - 507, 484, 509, 484, 493, 483, 489, 485, 498, 485, 504, 485, 2078, - 2080, 2785, 2004, 2081, 2089, 2092, 2093, 2091, 2007, 2096, 2097, - 2786, 2098, 1426, 1974, 2006, 2100, 2787, 1427, 2771, 2111, 1615, - 2116, 2788, 2772, 1428, 1429, 2008, 2121, 2791, 1430, 2792, 2125, - 2793, 2128, 1431, 2011, 2132, 2133, 2134, 2136, 1432, 1979, 1421, - 2061, 2140, 2142, 1433, 2013, 2143, 2795, 2796, 2014, 2150, 1436, - 2152, 1422, 2153, 2154, 2155, 2156, 2157, 2017, 2800, 1980, 2018, - 2777, 2697, 2021, 2022, 1423, 1981, 2025, 1372, 2778, 2057, 2779, - 1424, 2770, 1425, 5, 338, 31, 338, 6, 325, 32, 325, 6, 336, 32, 336, - 6, 345, 32, 345, 7, 340, 320, 33, 340, 320, 8, 325, 34, 325, 8, 336, - 34, 336, 8, 345, 34, 345, 8, 340, 34, 340, 8, 342, 34, 342, 9, 323, - 319, 35, 323, 319, 9, 323, 320, 35, 323, 320, 9, 342, 35, 342, 9, 344, - 35, 344, 9, 340, 324, 35, 340, 324, 10, 325, 36, 325, 11, 323, 37, - 323, 12, 325, 38, 325, 12, 336, 38, 336, 12, 326, 38, 326, 12, 340, - 38, 340, 12, 343, 38, 343, 13, 344, 39, 344, 13, 326, 320, 39, 326, - 320, 15, 320, 41, 320, 15, 336, 41, 336, 15, 345, 41, 345, 16, 336, - 42, 336, 16, 336, 323, 42, 336, 323, 16, 345, 42, 345, 16, 342, 42, - 342, 17, 320, 43, 320, 17, 325, 43, 325, 17, 336, 43, 336, 18, 325, - 44, 325, 18, 336, 44, 336, 18, 345, 44, 345, 18, 342, 44, 342, 19, - 322, 320, 45, 322, 320, 19, 322, 326, 45, 322, 326, 19, 323, 319, 45, - 323, 319, 19, 323, 320, 45, 323, 320, 20, 320, 46, 320, 20, 325, 46, - 325, 21, 325, 47, 325, 21, 336, 47, 336, 21, 336, 323, 47, 336, 323, - 21, 345, 47, 345, 22, 325, 48, 325, 22, 336, 48, 336, 22, 320, 325, - 48, 320, 325, 22, 330, 325, 48, 330, 325, 22, 336, 325, 48, 336, 325, - 23, 325, 49, 325, 23, 336, 49, 336, 23, 345, 49, 345, 23, 342, 49, - 342, 24, 337, 50, 337, 24, 344, 50, 344, 24, 342, 50, 342, 24, 322, - 320, 50, 322, 320, 24, 323, 326, 50, 323, 326, 25, 322, 51, 322, 25, - 336, 51, 336, 26, 319, 52, 319, 26, 320, 52, 320, 26, 326, 52, 326, - 26, 325, 52, 325, 26, 336, 52, 336, 27, 325, 53, 325, 27, 326, 53, - 326, 28, 325, 54, 325, 29, 321, 55, 321, 29, 336, 55, 336, 29, 345, - 55, 345, 38, 345, 49, 326, 52, 328, 54, 328, 224, 325, 1417, 5, 336, - 31, 336, 5, 327, 31, 327, 5, 321, 320, 31, 321, 320, 5, 321, 319, 31, - 321, 319, 5, 321, 327, 31, 321, 327, 5, 321, 322, 31, 321, 322, 5, - 336, 321, 31, 336, 321, 5, 324, 320, 31, 324, 320, 5, 324, 319, 31, - 324, 319, 5, 324, 327, 31, 324, 327, 5, 324, 322, 31, 324, 322, 5, - 336, 324, 31, 336, 324, 9, 336, 35, 336, 9, 327, 35, 327, 9, 322, 35, - 322, 9, 321, 320, 35, 321, 320, 9, 321, 319, 35, 321, 319, 9, 321, - 327, 35, 321, 327, 9, 321, 322, 35, 321, 322, 9, 336, 321, 35, 336, - 321, 13, 327, 39, 327, 13, 336, 39, 336, 19, 336, 45, 336, 19, 327, - 45, 327, 19, 321, 320, 45, 321, 320, 19, 321, 319, 45, 321, 319, 19, - 321, 327, 45, 321, 327, 19, 321, 322, 45, 321, 322, 19, 336, 321, 45, - 336, 321, 19, 335, 320, 45, 335, 320, 19, 335, 319, 45, 335, 319, 19, - 335, 327, 45, 335, 327, 19, 335, 322, 45, 335, 322, 19, 335, 336, 45, - 335, 336, 24, 336, 50, 336, 24, 327, 50, 327, 24, 335, 320, 50, 335, - 320, 24, 335, 319, 50, 335, 319, 24, 335, 327, 50, 335, 327, 24, 335, - 322, 50, 335, 322, 24, 335, 336, 50, 335, 336, 28, 319, 54, 319, 28, - 336, 54, 336, 28, 327, 54, 327, 28, 322, 54, 322, 380, 333, 380, 334, - 380, 333, 319, 380, 334, 319, 380, 333, 320, 380, 334, 320, 380, 333, - 349, 380, 334, 349, 365, 333, 365, 334, 365, 333, 319, 365, 334, 319, - 365, 333, 320, 365, 334, 320, 365, 333, 349, 365, 334, 349, 381, 333, - 381, 334, 381, 333, 319, 381, 334, 319, 381, 333, 320, 381, 334, 320, - 366, 333, 366, 334, 366, 333, 319, 366, 334, 319, 366, 333, 320, 366, - 334, 320, 382, 333, 382, 334, 382, 333, 319, 382, 334, 319, 382, 333, - 320, 382, 334, 320, 382, 333, 349, 382, 334, 349, 367, 333, 367, 334, - 367, 333, 319, 367, 334, 319, 367, 333, 320, 367, 334, 320, 367, 333, - 349, 367, 334, 349, 383, 333, 383, 334, 383, 333, 319, 383, 334, 319, - 383, 333, 320, 383, 334, 320, 383, 333, 349, 383, 334, 349, 368, 333, - 368, 334, 368, 333, 319, 368, 334, 319, 368, 333, 320, 368, 334, 320, - 368, 333, 349, 368, 334, 349, 384, 333, 384, 334, 384, 333, 319, 384, - 334, 319, 384, 333, 320, 384, 334, 320, 369, 333, 369, 334, 369, 333, - 319, 369, 334, 319, 369, 333, 320, 369, 334, 320, 386, 333, 386, 334, - 386, 333, 319, 386, 334, 319, 386, 333, 320, 386, 334, 320, 386, 333, - 349, 386, 334, 349, 371, 334, 371, 334, 319, 371, 334, 320, 371, 334, - 349, 387, 333, 387, 334, 387, 333, 319, 387, 334, 319, 387, 333, 320, - 387, 334, 320, 387, 333, 349, 387, 334, 349, 372, 333, 372, 334, 372, - 333, 319, 372, 334, 319, 372, 333, 320, 372, 334, 320, 372, 333, 349, - 372, 334, 349, 380, 319, 381, 319, 382, 319, 383, 319, 384, 319, 386, - 319, 387, 319, 380, 333, 352, 380, 334, 352, 380, 333, 319, 352, 380, - 334, 319, 352, 380, 333, 320, 352, 380, 334, 320, 352, 380, 333, 349, - 352, 380, 334, 349, 352, 365, 333, 352, 365, 334, 352, 365, 333, 319, - 352, 365, 334, 319, 352, 365, 333, 320, 352, 365, 334, 320, 352, 365, - 333, 349, 352, 365, 334, 349, 352, 382, 333, 352, 382, 334, 352, 382, - 333, 319, 352, 382, 334, 319, 352, 382, 333, 320, 352, 382, 334, 320, - 352, 382, 333, 349, 352, 382, 334, 349, 352, 367, 333, 352, 367, 334, - 352, 367, 333, 319, 352, 367, 334, 319, 352, 367, 333, 320, 352, 367, - 334, 320, 352, 367, 333, 349, 352, 367, 334, 349, 352, 387, 333, 352, - 387, 334, 352, 387, 333, 319, 352, 387, 334, 319, 352, 387, 333, 320, - 352, 387, 334, 320, 352, 387, 333, 349, 352, 387, 334, 349, 352, 372, - 333, 352, 372, 334, 352, 372, 333, 319, 352, 372, 334, 319, 352, 372, - 333, 320, 352, 372, 334, 320, 352, 372, 333, 349, 352, 372, 334, 349, - 352, 380, 324, 380, 323, 380, 319, 352, 380, 352, 380, 320, 352, 502, - 484, 380, 349, 380, 349, 352, 365, 324, 365, 323, 365, 319, 365, 352, - 56, 349, 382, 319, 352, 382, 352, 382, 320, 352, 382, 349, 382, 349, - 352, 366, 319, 367, 319, 367, 352, 1108, 319, 1108, 320, 1108, 349, - 383, 324, 383, 323, 383, 326, 319, 383, 349, 383, 326, 349, 368, 324, - 368, 323, 368, 319, 1163, 319, 1163, 320, 1163, 349, 386, 324, 386, - 323, 386, 326, 319, 385, 333, 385, 334, 386, 349, 386, 326, 349, 371, - 324, 371, 323, 371, 319, 370, 334, 56, 319, 30, 387, 319, 352, 387, - 352, 387, 320, 352, 387, 349, 387, 349, 352, 369, 319, 372, 319, 372, - 352, 57 -}; + 0, 1166, 1167, 2783, 2784, 1989, 2075, 2064, 5, 319, 5, 320, 5, 321, 5, 322, 5, 326, 5, + 328, 7, 340, 9, 319, 9, 320, 9, 321, 9, 326, 13, 319, 13, 320, 13, 321, 13, 326, + 18, 322, 19, 319, 19, 320, 19, 321, 19, 322, 19, 326, 24, 319, 24, 320, 24, 321, 24, + 326, 28, 320, 31, 319, 31, 320, 31, 321, 31, 322, 31, 326, 31, 328, 33, 340, 35, 319, + 35, 320, 35, 321, 35, 326, 39, 319, 39, 320, 39, 321, 39, 326, 44, 322, 45, 319, 45, + 320, 45, 321, 45, 322, 45, 326, 50, 319, 50, 320, 50, 321, 50, 326, 54, 320, 54, 326, + 5, 323, 31, 323, 5, 324, 31, 324, 5, 341, 31, 341, 7, 320, 33, 320, 7, 321, 33, + 321, 7, 325, 33, 325, 7, 330, 33, 330, 8, 330, 34, 330, 9, 323, 35, 323, 9, 324, + 35, 324, 9, 325, 35, 325, 9, 341, 35, 341, 9, 330, 35, 330, 11, 321, 37, 321, 11, + 324, 37, 324, 11, 325, 37, 325, 11, 340, 37, 340, 12, 321, 38, 321, 372, 13, 322, 39, + 322, 13, 323, 39, 323, 13, 324, 39, 324, 13, 341, 39, 341, 13, 325, 14, 321, 40, 321, + 15, 340, 41, 340, 16, 320, 42, 320, 16, 340, 42, 340, 16, 330, 42, 330, 18, 320, 44, + 320, 18, 340, 44, 340, 18, 330, 44, 330, 19, 323, 45, 323, 19, 324, 45, 324, 19, 329, + 45, 329, 21, 320, 47, 320, 21, 340, 47, 340, 21, 330, 47, 330, 22, 320, 48, 320, 22, + 321, 48, 321, 22, 340, 48, 340, 22, 330, 48, 330, 23, 340, 49, 340, 23, 330, 49, 330, + 24, 322, 50, 322, 24, 323, 50, 323, 24, 324, 50, 324, 24, 328, 50, 328, 24, 329, 50, + 329, 24, 341, 50, 341, 26, 321, 52, 321, 28, 321, 54, 321, 28, 326, 29, 320, 55, 320, + 29, 325, 55, 325, 29, 330, 55, 330, 1171, 346, 1172, 346, 19, 335, 45, 335, 1173, 346, 24, + 335, 50, 335, 2000, 5, 330, 31, 330, 13, 330, 39, 330, 19, 330, 45, 330, 24, 330, 50, + 330, 24, 326, 323, 50, 326, 323, 24, 326, 320, 50, 326, 320, 24, 326, 330, 50, 326, 330, + 24, 326, 319, 50, 326, 319, 5, 326, 323, 31, 326, 323, 5, 325, 323, 31, 325, 323, 65, + 323, 93, 323, 11, 330, 37, 330, 15, 330, 41, 330, 19, 341, 45, 341, 19, 341, 323, 45, + 341, 323, 229, 330, 317, 330, 40, 330, 11, 320, 37, 320, 18, 319, 44, 319, 5, 328, 320, + 31, 328, 320, 65, 320, 93, 320, 81, 320, 109, 320, 5, 331, 31, 331, 5, 332, 31, 332, + 9, 331, 35, 331, 9, 332, 35, 332, 13, 331, 39, 331, 13, 332, 39, 332, 19, 331, 45, + 331, 19, 332, 45, 332, 21, 331, 47, 331, 21, 332, 47, 332, 24, 331, 50, 331, 24, 332, + 50, 332, 22, 339, 48, 339, 23, 339, 49, 339, 12, 330, 38, 330, 1189, 346, 1191, 346, 9, + 340, 35, 340, 19, 326, 323, 45, 326, 323, 19, 322, 323, 45, 322, 323, 19, 325, 45, 325, + 19, 325, 323, 45, 325, 323, 28, 323, 54, 323, 1193, 346, 1195, 346, 1197, 346, 1199, 346, 3, + 346, 1203, 346, 1201, 346, 2, 346, 4, 346, 1205, 346, 1206, 346, 1212, 346, 1213, 346, 1216, 346, + 1217, 346, 1220, 346, 1221, 346, 1226, 346, 1227, 346, 1230, 346, 1231, 346, 1993, 1236, 346, 1237, 346, + 1238, 346, 1239, 346, 2790, 1222, 346, 1223, 346, 1234, 346, 1235, 346, 1244, 346, 1245, 346, 1246, 346, + 1247, 346, 1260, 1261, 333, 498, 484, 318, 1, 501, 484, 56, 320, 365, 320, 58, 366, 320, 367, + 320, 368, 320, 369, 320, 371, 320, 372, 320, 383, 326, 320, 503, 484, 368, 326, 371, 326, 380, + 320, 381, 320, 382, 320, 383, 320, 386, 326, 320, 384, 320, 386, 320, 387, 320, 1418, 393, 320, + 393, 326, 406, 319, 406, 326, 405, 320, 399, 326, 411, 320, 409, 319, 413, 324, 409, 324, 1982, + 422, 324, 419, 319, 419, 326, 418, 320, 433, 326, 424, 320, 422, 319, 426, 324, 1419, 438, 331, + 439, 331, 1990, 407, 324, 420, 324, 404, 324, 417, 324, 404, 326, 417, 326, 406, 324, 419, 324, + 450, 326, 451, 326, 407, 326, 420, 326, 408, 326, 421, 326, 409, 323, 422, 323, 409, 326, 422, + 326, 412, 326, 425, 326, 464, 326, 465, 326, 416, 326, 429, 326, 413, 323, 426, 323, 413, 326, + 426, 326, 413, 329, 426, 329, 414, 326, 427, 326, 415, 326, 428, 326, 1977, 516, 519, 516, 520, + 517, 520, 516, 521, 518, 520, 1420, 527, 520, 523, 520, 525, 520, 1992, 534, 542, 538, 542, 540, + 542, 528, 542, 529, 542, 530, 542, 531, 542, 532, 542, 533, 542, 536, 542, 537, 542, 556, 555, + 556, 559, 551, 554, 552, 554, 553, 554, 567, 571, 570, 571, 2776, 563, 571, 564, 571, 565, 571, + 566, 571, 1180, 346, 1182, 346, 1181, 346, 1259, 346, 580, 584, 580, 579, 580, 585, 576, 578, 577, + 578, 588, 596, 591, 590, 592, 590, 591, 596, 1183, 346, 1185, 346, 597, 599, 1187, 346, 600, 608, + 603, 608, 603, 609, 603, 602, 603, 602, 608, 611, 610, 612, 610, 611, 616, 619, 617, 619, 618, + 619, 618, 617, 619, 624, 626, 660, 628, 660, 630, 660, 632, 660, 634, 660, 625, 659, 637, 638, + 637, 640, 657, 644, 658, 644, 637, 644, 647, 660, 649, 660, 651, 660, 653, 660, 655, 660, 646, + 659, 1892, 1895, 1406, 662, 664, 1897, 1263, 1309, 1265, 1309, 1267, 1309, 1269, 1309, 1271, 1309, 1273, 1309, + 1275, 1309, 1277, 1309, 1279, 1309, 1281, 1309, 1283, 1309, 1285, 1309, 1287, 1309, 1289, 1309, 1291, 1309, 1293, + 1309, 1293, 1310, 1296, 1309, 1296, 1310, 1299, 1309, 1299, 1310, 1302, 1309, 1302, 1310, 1305, 1309, 1305, 1310, + 1262, 1309, 2753, 2656, 2662, 2658, 2662, 1311, 1309, 2660, 2662, 1314, 1309, 1316, 1309, 1318, 1309, 1320, 1309, + 1322, 1309, 1324, 1309, 1326, 1309, 1328, 1309, 1330, 1309, 1332, 1309, 1334, 1309, 1336, 1309, 1338, 1309, 1340, + 1309, 1342, 1309, 1344, 1309, 1344, 1310, 1347, 1309, 1347, 1310, 1350, 1309, 1350, 1310, 1353, 1309, 1353, 1310, + 1356, 1309, 1356, 1310, 1903, 1313, 1309, 1359, 1309, 1360, 1309, 1361, 1309, 1362, 1309, 1368, 1309, 1407, 2666, + 2663, 2667, 2663, 1906, 2668, 2677, 2669, 2677, 2669, 2677, 2678, 2669, 2677, 2679, 2669, 2677, 2680, 2669, 2677, + 2681, 2669, 2677, 2682, 1907, 1408, 2756, 2683, 2677, 2684, 2677, 2683, 2677, 2678, 2684, 2677, 2678, 2683, 2677, + 2679, 2684, 2677, 2679, 1913, 1409, 1917, 1915, 1918, 2758, 1923, 1898, 1410, 1926, 1928, 1932, 1411, 1899, 2760, + 2761, 1412, 2762, 1936, 2763, 1938, 1941, 1943, 2764, 2754, 2765, 1945, 2766, 1947, 2718, 1413, 1951, 1952, 1415, + 1953, 1588, 2767, 2768, 2719, 2720, 1773, 1777, 1774, 1775, 1778, 2794, 1957, 1779, 2729, 1772, 1785, 1786, 1958, + 1394, 1790, 1789, 2730, 1783, 2067, 1796, 2731, 2732, 1797, 1802, 1416, 1801, 1800, 1395, 1803, 1806, 1963, 1805, + 1808, 2693, 1811, 2755, 2733, 1962, 1814, 2735, 1819, 1821, 1822, 1964, 2736, 1824, 1825, 2737, 2738, 1500, 1831, + 1833, 1396, 1834, 1397, 1965, 1840, 1841, 1843, 1844, 1966, 1847, 1398, 1849, 2739, 1851, 1967, 2740, 1854, 2709, + 1856, 2741, 1969, 2742, 2743, 1399, 1971, 1400, 1864, 2769, 2745, 2744, 2746, 2747, 1866, 1968, 1867, 1869, 1402, + 1870, 1970, 1403, 1404, 2749, 1872, 1874, 1975, 1877, 1405, 2750, 1885, 2751, 1976, 2752, 1442, 1440, 1443, 2691, + 1450, 1454, 1455, 1457, 1459, 1460, 1463, 1461, 1370, 2695, 1466, 1467, 1468, 1473, 2692, 1371, 1469, 1475, 2694, + 1478, 1479, 1448, 1480, 1481, 2789, 1487, 1488, 1373, 1493, 1494, 1495, 1496, 1374, 1501, 1502, 1505, 1507, 1508, + 1509, 1510, 1512, 1513, 1514, 1515, 1517, 1518, 2698, 1804, 1520, 1521, 2699, 1523, 1524, 1525, 1532, 1528, 1530, + 1531, 1533, 1535, 1536, 1537, 1539, 1540, 1542, 1544, 1545, 1547, 1554, 1549, 1555, 1550, 1552, 1489, 1570, 1557, + 1558, 1559, 1556, 1561, 1560, 1566, 2700, 1571, 1572, 1573, 1574, 1575, 1580, 2701, 2702, 1583, 1584, 1585, 1582, + 1587, 1375, 1376, 1589, 1591, 2703, 1593, 1594, 1595, 1597, 2704, 1598, 1599, 1637, 1600, 1377, 1602, 1606, 1608, + 1607, 2706, 1610, 2707, 1613, 1612, 1614, 1617, 1618, 1378, 1619, 1620, 1621, 1622, 1379, 2708, 1380, 1625, 1626, + 1627, 1629, 2799, 1634, 2710, 1636, 1381, 2717, 2759, 1638, 1640, 1382, 1642, 1645, 1646, 1648, 1652, 1384, 1383, + 1653, 2711, 1654, 1659, 1660, 1661, 1664, 1665, 1669, 1667, 1668, 1670, 1671, 1672, 1674, 1675, 1678, 1679, 1683, + 1687, 2714, 1686, 1684, 1688, 1690, 1695, 2715, 1697, 1694, 1692, 1385, 1699, 1701, 1703, 1700, 1386, 1705, 1707, + 2716, 1712, 1722, 1714, 1389, 1717, 1388, 1387, 1476, 1477, 1723, 1718, 1950, 1414, 1724, 1725, 1726, 1730, 1728, + 2721, 1390, 1735, 1732, 1738, 1740, 2723, 1741, 1737, 1743, 1391, 1744, 1745, 1746, 1749, 2724, 1751, 1392, 1753, + 2725, 1754, 1393, 1755, 1758, 1760, 1761, 2726, 2705, 2727, 1762, 2728, 1765, 1767, 1763, 1769, 2046, 1721, 2060, + 2051, 1791, 1439, 1522, 2161, 1578, 2087, 1541, 1577, 1860, 1937, 1999, 2012, 2024, 2074, 1747, 1770, 1810, 1836, + 1985, 2082, 2135, 1444, 1516, 1752, 1818, 1998, 2146, 1611, 1798, 1994, 2028, 1680, 1954, 2015, 1776, 1828, 2076, + 1452, 1482, 1504, 1704, 1750, 1817, 1863, 1942, 1996, 2001, 2058, 2117, 2139, 2145, 1889, 1924, 1978, 2094, 2147, + 2037, 1569, 1635, 1909, 1948, 1823, 1876, 2050, 2115, 1568, 1603, 1748, 1781, 1793, 1921, 1930, 2102, 1503, 1949, + 1485, 1484, 1896, 1925, 1984, 2104, 2044, 1681, 2040, 1441, 1649, 1832, 1878, 1456, 1643, 1437, 1766, 1708, 1920, + 1519, 1564, 1865, 1986, 2033, 2068, 1764, 1685, 1691, 1853, 1446, 1471, 1483, 1739, 1916, 1960, 2036, 2086, 1506, + 1529, 1581, 1633, 1710, 1799, 1879, 2099, 2137, 2148, 2151, 1498, 1720, 1756, 2066, 1623, 1666, 1673, 1702, 1795, + 1812, 1845, 1894, 1927, 1946, 2062, 1988, 2070, 2095, 1490, 1499, 1534, 1809, 2019, 1628, 1647, 1689, 1759, 1908, + 1830, 1449, 1553, 1616, 1650, 1835, 1842, 1939, 1944, 2088, 2114, 2118, 2124, 1453, 1893, 2084, 2110, 1656, 1445, + 1462, 1596, 1601, 1709, 1815, 1859, 1991, 2073, 2159, 1716, 2101, 1497, 1731, 1734, 1787, 1838, 1852, 1873, 1919, + 2127, 1472, 1676, 2105, 1458, 1609, 1782, 2063, 1641, 1658, 1736, 2107, 1491, 1526, 1605, 1713, 1727, 1742, 1768, + 1837, 1855, 1935, 2020, 2023, 2085, 2112, 1511, 1788, 1527, 1816, 1846, 1995, 2108, 2141, 2149, 1733, 1780, 1955, + 1902, 1904, 1911, 1827, 1807, 2043, 1447, 1972, 1492, 1624, 1682, 1914, 1592, 1771, 1719, 2065, 2016, 2103, 2030, + 1631, 1464, 1546, 1434, 2773, 1563, 1435, 1715, 2797, 2798, 1486, 1829, 1861, 1880, 1887, 1888, 2119, 1912, 1940, + 1997, 2774, 2039, 2071, 2079, 2775, 2129, 2130, 2131, 2144, 2077, 2109, 1543, 1551, 1562, 1565, 1604, 1663, 1711, + 1784, 1794, 1813, 1820, 1839, 1875, 1881, 1883, 1882, 1884, 1886, 1890, 1891, 1900, 1905, 1929, 1931, 1934, 1956, + 1961, 1987, 2026, 2031, 2041, 2042, 2052, 2053, 2069, 2113, 2122, 2126, 1651, 2734, 1959, 2009, 1438, 1470, 1451, + 1465, 1474, 1538, 1548, 1567, 1576, 1579, 1586, 1590, 1630, 1632, 1639, 1644, 1655, 1657, 1662, 1677, 1693, 1696, + 1698, 1706, 1729, 1757, 1792, 1871, 1826, 1848, 1850, 1857, 1858, 1862, 1868, 1901, 1910, 1922, 1933, 1973, 1983, + 2010, 2027, 2029, 2034, 2035, 2038, 2045, 2072, 2083, 2090, 2106, 2120, 2123, 2138, 2713, 2712, 2722, 1401, 2748, + 2757, 2781, 2158, 2160, 2032, 2047, 2780, 2048, 2049, 2054, 665, 677, 667, 677, 2002, 669, 677, 2055, 671, + 677, 673, 677, 2782, 675, 677, 2696, 496, 480, 510, 481, 2056, 2003, 2059, 508, 486, 508, 487, 508, + 484, 486, 508, 484, 487, 488, 481, 488, 482, 488, 484, 489, 484, 490, 484, 491, 484, 492, 484, + 493, 484, 494, 484, 495, 484, 496, 484, 497, 484, 678, 677, 499, 484, 680, 677, 500, 484, 682, + 677, 683, 677, 686, 677, 504, 484, 2005, 505, 484, 506, 484, 507, 484, 509, 484, 493, 483, 489, + 485, 498, 485, 504, 485, 2078, 2080, 2785, 2004, 2081, 2089, 2092, 2093, 2091, 2007, 2096, 2097, 2786, 2098, + 1426, 1974, 2006, 2100, 2787, 1427, 2771, 2111, 1615, 2116, 2788, 2772, 1428, 1429, 2008, 2121, 2791, 1430, 2792, + 2125, 2793, 2128, 1431, 2011, 2132, 2133, 2134, 2136, 1432, 1979, 1421, 2061, 2140, 2142, 1433, 2013, 2143, 2795, + 2796, 2014, 2150, 1436, 2152, 1422, 2153, 2154, 2155, 2156, 2157, 2017, 2800, 1980, 2018, 2777, 2697, 2021, 2022, + 1423, 1981, 2025, 1372, 2778, 2057, 2779, 1424, 2770, 1425, 5, 338, 31, 338, 6, 325, 32, 325, 6, + 336, 32, 336, 6, 345, 32, 345, 7, 340, 320, 33, 340, 320, 8, 325, 34, 325, 8, 336, + 34, 336, 8, 345, 34, 345, 8, 340, 34, 340, 8, 342, 34, 342, 9, 323, 319, 35, 323, + 319, 9, 323, 320, 35, 323, 320, 9, 342, 35, 342, 9, 344, 35, 344, 9, 340, 324, 35, + 340, 324, 10, 325, 36, 325, 11, 323, 37, 323, 12, 325, 38, 325, 12, 336, 38, 336, 12, + 326, 38, 326, 12, 340, 38, 340, 12, 343, 38, 343, 13, 344, 39, 344, 13, 326, 320, 39, + 326, 320, 15, 320, 41, 320, 15, 336, 41, 336, 15, 345, 41, 345, 16, 336, 42, 336, 16, + 336, 323, 42, 336, 323, 16, 345, 42, 345, 16, 342, 42, 342, 17, 320, 43, 320, 17, 325, + 43, 325, 17, 336, 43, 336, 18, 325, 44, 325, 18, 336, 44, 336, 18, 345, 44, 345, 18, + 342, 44, 342, 19, 322, 320, 45, 322, 320, 19, 322, 326, 45, 322, 326, 19, 323, 319, 45, + 323, 319, 19, 323, 320, 45, 323, 320, 20, 320, 46, 320, 20, 325, 46, 325, 21, 325, 47, + 325, 21, 336, 47, 336, 21, 336, 323, 47, 336, 323, 21, 345, 47, 345, 22, 325, 48, 325, + 22, 336, 48, 336, 22, 320, 325, 48, 320, 325, 22, 330, 325, 48, 330, 325, 22, 336, 325, + 48, 336, 325, 23, 325, 49, 325, 23, 336, 49, 336, 23, 345, 49, 345, 23, 342, 49, 342, + 24, 337, 50, 337, 24, 344, 50, 344, 24, 342, 50, 342, 24, 322, 320, 50, 322, 320, 24, + 323, 326, 50, 323, 326, 25, 322, 51, 322, 25, 336, 51, 336, 26, 319, 52, 319, 26, 320, + 52, 320, 26, 326, 52, 326, 26, 325, 52, 325, 26, 336, 52, 336, 27, 325, 53, 325, 27, + 326, 53, 326, 28, 325, 54, 325, 29, 321, 55, 321, 29, 336, 55, 336, 29, 345, 55, 345, + 38, 345, 49, 326, 52, 328, 54, 328, 224, 325, 1417, 5, 336, 31, 336, 5, 327, 31, 327, + 5, 321, 320, 31, 321, 320, 5, 321, 319, 31, 321, 319, 5, 321, 327, 31, 321, 327, 5, + 321, 322, 31, 321, 322, 5, 336, 321, 31, 336, 321, 5, 324, 320, 31, 324, 320, 5, 324, + 319, 31, 324, 319, 5, 324, 327, 31, 324, 327, 5, 324, 322, 31, 324, 322, 5, 336, 324, + 31, 336, 324, 9, 336, 35, 336, 9, 327, 35, 327, 9, 322, 35, 322, 9, 321, 320, 35, + 321, 320, 9, 321, 319, 35, 321, 319, 9, 321, 327, 35, 321, 327, 9, 321, 322, 35, 321, + 322, 9, 336, 321, 35, 336, 321, 13, 327, 39, 327, 13, 336, 39, 336, 19, 336, 45, 336, + 19, 327, 45, 327, 19, 321, 320, 45, 321, 320, 19, 321, 319, 45, 321, 319, 19, 321, 327, + 45, 321, 327, 19, 321, 322, 45, 321, 322, 19, 336, 321, 45, 336, 321, 19, 335, 320, 45, + 335, 320, 19, 335, 319, 45, 335, 319, 19, 335, 327, 45, 335, 327, 19, 335, 322, 45, 335, + 322, 19, 335, 336, 45, 335, 336, 24, 336, 50, 336, 24, 327, 50, 327, 24, 335, 320, 50, + 335, 320, 24, 335, 319, 50, 335, 319, 24, 335, 327, 50, 335, 327, 24, 335, 322, 50, 335, + 322, 24, 335, 336, 50, 335, 336, 28, 319, 54, 319, 28, 336, 54, 336, 28, 327, 54, 327, + 28, 322, 54, 322, 380, 333, 380, 334, 380, 333, 319, 380, 334, 319, 380, 333, 320, 380, 334, + 320, 380, 333, 349, 380, 334, 349, 365, 333, 365, 334, 365, 333, 319, 365, 334, 319, 365, 333, + 320, 365, 334, 320, 365, 333, 349, 365, 334, 349, 381, 333, 381, 334, 381, 333, 319, 381, 334, + 319, 381, 333, 320, 381, 334, 320, 366, 333, 366, 334, 366, 333, 319, 366, 334, 319, 366, 333, + 320, 366, 334, 320, 382, 333, 382, 334, 382, 333, 319, 382, 334, 319, 382, 333, 320, 382, 334, + 320, 382, 333, 349, 382, 334, 349, 367, 333, 367, 334, 367, 333, 319, 367, 334, 319, 367, 333, + 320, 367, 334, 320, 367, 333, 349, 367, 334, 349, 383, 333, 383, 334, 383, 333, 319, 383, 334, + 319, 383, 333, 320, 383, 334, 320, 383, 333, 349, 383, 334, 349, 368, 333, 368, 334, 368, 333, + 319, 368, 334, 319, 368, 333, 320, 368, 334, 320, 368, 333, 349, 368, 334, 349, 384, 333, 384, + 334, 384, 333, 319, 384, 334, 319, 384, 333, 320, 384, 334, 320, 369, 333, 369, 334, 369, 333, + 319, 369, 334, 319, 369, 333, 320, 369, 334, 320, 386, 333, 386, 334, 386, 333, 319, 386, 334, + 319, 386, 333, 320, 386, 334, 320, 386, 333, 349, 386, 334, 349, 371, 334, 371, 334, 319, 371, + 334, 320, 371, 334, 349, 387, 333, 387, 334, 387, 333, 319, 387, 334, 319, 387, 333, 320, 387, + 334, 320, 387, 333, 349, 387, 334, 349, 372, 333, 372, 334, 372, 333, 319, 372, 334, 319, 372, + 333, 320, 372, 334, 320, 372, 333, 349, 372, 334, 349, 380, 319, 381, 319, 382, 319, 383, 319, + 384, 319, 386, 319, 387, 319, 380, 333, 352, 380, 334, 352, 380, 333, 319, 352, 380, 334, 319, + 352, 380, 333, 320, 352, 380, 334, 320, 352, 380, 333, 349, 352, 380, 334, 349, 352, 365, 333, + 352, 365, 334, 352, 365, 333, 319, 352, 365, 334, 319, 352, 365, 333, 320, 352, 365, 334, 320, + 352, 365, 333, 349, 352, 365, 334, 349, 352, 382, 333, 352, 382, 334, 352, 382, 333, 319, 352, + 382, 334, 319, 352, 382, 333, 320, 352, 382, 334, 320, 352, 382, 333, 349, 352, 382, 334, 349, + 352, 367, 333, 352, 367, 334, 352, 367, 333, 319, 352, 367, 334, 319, 352, 367, 333, 320, 352, + 367, 334, 320, 352, 367, 333, 349, 352, 367, 334, 349, 352, 387, 333, 352, 387, 334, 352, 387, + 333, 319, 352, 387, 334, 319, 352, 387, 333, 320, 352, 387, 334, 320, 352, 387, 333, 349, 352, + 387, 334, 349, 352, 372, 333, 352, 372, 334, 352, 372, 333, 319, 352, 372, 334, 319, 352, 372, + 333, 320, 352, 372, 334, 320, 352, 372, 333, 349, 352, 372, 334, 349, 352, 380, 324, 380, 323, + 380, 319, 352, 380, 352, 380, 320, 352, 502, 484, 380, 349, 380, 349, 352, 365, 324, 365, 323, + 365, 319, 365, 352, 56, 349, 382, 319, 352, 382, 352, 382, 320, 352, 382, 349, 382, 349, 352, + 366, 319, 367, 319, 367, 352, 1108, 319, 1108, 320, 1108, 349, 383, 324, 383, 323, 383, 326, 319, + 383, 349, 383, 326, 349, 368, 324, 368, 323, 368, 319, 1163, 319, 1163, 320, 1163, 349, 386, 324, + 386, 323, 386, 326, 319, 385, 333, 385, 334, 386, 349, 386, 326, 349, 371, 324, 371, 323, 371, + 319, 370, 334, 56, 319, 30, 387, 319, 352, 387, 352, 387, 320, 352, 387, 349, 387, 349, 352, + 369, 319, 372, 319, 372, 352, 57}; static const uint8_t decomp_idx_t1[] = { - 0, 0, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 8, 9, 10, 11, 0, 12, 0, 0, - 0, 0, 13, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 0, 17, 18, 19, 0, - 0, 0, 20, 21, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 0, 0, 0, 0, 27, 28, - 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 0, 0, 0, 41, 0, 42, 43, 44, 45, 46, 47, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 63, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 67, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 69, - 70, 71, 72, 73, 74, 75, 76 -}; + 0, 0, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 8, 9, 10, 11, 0, 12, 0, 0, 0, 0, 13, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 16, 0, 17, 18, 19, 0, 0, 0, 20, 21, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 0, 0, 0, + 0, 27, 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 0, 0, 0, 41, 0, 42, 43, 44, 45, 46, 47, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 66, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 69, 70, 71, 72, 73, 74, 75, 76}; static const uint16_t decomp_idx_t2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16392, 16394, - 16396, 16398, 16400, 16402, 0, 16404, 16406, 16408, 16410, 16412, - 16414, 16416, 16418, 16420, 0, 16422, 16424, 16426, 16428, 16430, - 16432, 0, 0, 16434, 16436, 16438, 16440, 16442, 0, 0, 16444, 16446, - 16448, 16450, 16452, 16454, 0, 16456, 16458, 16460, 16462, 16464, - 16466, 16468, 16470, 16472, 0, 16474, 16476, 16478, 16480, 16482, - 16484, 0, 0, 16486, 16488, 16490, 16492, 16494, 0, 16496, 16498, - 16500, 16502, 16504, 16506, 16508, 16510, 16512, 16514, 16516, 16518, - 16520, 16522, 16524, 16526, 16528, 0, 0, 16530, 16532, 16534, 16536, - 16538, 16540, 16542, 16544, 16546, 16548, 16550, 16552, 16554, 16556, - 16558, 16560, 16562, 16564, 16566, 16568, 0, 0, 16571, 16573, 16575, - 16577, 16579, 16581, 16583, 16585, 16587, 0, 0, 0, 16589, 16591, - 16593, 16595, 0, 16597, 16599, 16601, 16603, 16605, 16607, 0, 0, 0, 0, - 16609, 16611, 16613, 16615, 16617, 16619, 0, 0, 0, 16621, 16623, - 16625, 16627, 16629, 16631, 0, 0, 16633, 16635, 16637, 16639, 16641, - 16643, 16645, 16647, 16649, 16651, 16653, 16655, 16657, 16659, 16661, - 16663, 16665, 16667, 0, 0, 16669, 16671, 16673, 16675, 16677, 16679, - 16681, 16683, 16685, 16687, 16689, 16691, 16693, 16695, 16697, 16699, - 16701, 16703, 16705, 16707, 16709, 16711, 16713, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16719, 16721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16725, - 16727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16730, 16732, 16734, 16736, 16738, 16740, 16742, - 16744, 33130, 33133, 33136, 33139, 33142, 33145, 33148, 33151, 0, - 33154, 33157, 33160, 33163, 16782, 16784, 0, 0, 16786, 16788, 16790, - 16792, 16794, 16796, 33182, 33185, 16804, 16806, 16808, 0, 0, 0, - 16810, 16812, 0, 0, 16814, 16816, 33202, 33205, 16824, 16826, 16828, - 16830, 16832, 16834, 16836, 16838, 16840, 16842, 16844, 16846, 16848, - 16850, 16852, 16854, 16856, 16858, 16860, 16862, 16864, 16866, 16868, - 16870, 16872, 16874, 16876, 16878, 16880, 16882, 16884, 16886, 0, 0, - 16888, 16890, 0, 0, 0, 0, 0, 0, 16776, 16779, 16896, 16898, 33284, - 33287, 33290, 33293, 16912, 16914, 33300, 33303, 16922, 16924, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 11, 0, 612, 16753, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 615, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 616, 0, 0, 0, 0, 0, 0, 17003, 17005, 623, 17008, 17010, - 17012, 0, 17014, 0, 17016, 17018, 33404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17025, 17027, 17029, - 17031, 17033, 17035, 33421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17020, 17037, 17040, 17042, 17044, 0, - 0, 0, 0, 17047, 17049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17051, 17053, 0, 17055, 0, 0, 0, 17057, 0, 0, 0, 0, 17059, - 17061, 17063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17065, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17070, 17072, 0, 17074, 0, 0, 0, 17076, 0, 0, 0, 0, 17078, - 17080, 17082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17085, 17087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17090, 17092, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17094, 17096, 17098, 17100, 0, 0, - 17102, 17104, 0, 0, 17106, 17108, 17110, 17112, 17114, 17116, 0, 0, - 17118, 17120, 17122, 17124, 17126, 17128, 0, 0, 17130, 17132, 17134, - 17136, 17138, 17140, 17142, 17144, 17146, 17148, 17150, 17152, 0, 0, - 17154, 17156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17159, - 17161, 17163, 17165, 17167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17170, 0, 17172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17177, 0, 0, 0, 0, 0, 0, 0, 17179, 0, 0, 17181, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17183, 17185, 17187, 17189, 17191, 17193, - 17195, 17197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17199, 17201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17203, - 17205, 0, 17207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17209, 0, 0, - 17211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17214, 17216, 17218, 0, 0, - 17220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17230, 0, - 0, 17232, 17234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17236, - 17238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17242, 17244, - 17246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17252, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17256, 0, 0, 0, 0, 0, 0, 17258, 17260, 0, 17262, 33648, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17267, 17269, 17271, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17273, 0, 17275, 33661, 17280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17284, 0, 0, 0, 0, - 17286, 0, 0, 0, 0, 17288, 0, 0, 0, 0, 17290, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17294, 0, 17296, 17298, - 0, 17300, 0, 0, 0, 0, 0, 0, 0, 0, 17302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17306, 0, 0, 0, - 0, 17308, 0, 0, 0, 0, 17310, 0, 0, 0, 0, 17312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18275, 0, 18277, 0, - 18280, 0, 18283, 0, 18285, 0, 0, 0, 18288, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 18332, 0, 18336, 0, 0, 18340, 18342, 0, 18344, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18446, 18448, 18450, 18452, - 18454, 18456, 18458, 18460, 34846, 34849, 18468, 18470, 18472, 18474, - 18476, 18478, 18480, 18482, 18484, 18486, 34872, 34875, 34878, 34881, - 18500, 18502, 18504, 18506, 34892, 34895, 18514, 18516, 18518, 18520, - 18522, 18524, 18526, 18528, 18530, 18532, 18534, 18536, 18538, 18540, - 18542, 18544, 34930, 34933, 18552, 18554, 18556, 18558, 18560, 18562, - 18564, 18566, 34952, 34955, 18574, 18576, 18578, 18580, 18582, 18584, - 18586, 18588, 18590, 18592, 18594, 18596, 18598, 18600, 18602, 18604, - 18606, 18608, 34994, 34997, 35000, 35003, 35006, 35009, 35012, 35015, - 18634, 18636, 18638, 18640, 18642, 18644, 18646, 18648, 35034, 35037, - 18656, 18658, 18660, 18662, 18664, 18666, 35052, 35055, 35058, 35061, - 35064, 35067, 18686, 18688, 18690, 18692, 18694, 18696, 18698, 18700, - 18702, 18704, 18706, 18708, 18710, 18712, 35098, 35101, 35104, 35107, - 18726, 18728, 18730, 18732, 18734, 18736, 18738, 18740, 18742, 18744, - 18746, 18748, 18750, 18752, 18754, 18756, 18758, 18760, 18762, 18764, - 18766, 18768, 18770, 18772, 18774, 18776, 18778, 18780, 18782, 18784, - 0, 18786, 0, 0, 0, 0, 18789, 18791, 18793, 18795, 35181, 35184, 35187, - 35190, 35193, 35196, 35199, 35202, 35205, 35208, 35211, 35214, 35217, - 35220, 35223, 35226, 35229, 35232, 35235, 35238, 18857, 18859, 18861, - 18863, 18865, 18867, 35253, 35256, 35259, 35262, 35265, 35268, 35271, - 35274, 35277, 35280, 18899, 18901, 18903, 18905, 18907, 18909, 18911, - 18913, 35299, 35302, 35305, 35308, 35311, 35314, 35317, 35320, 35323, - 35326, 35329, 35332, 35335, 35338, 35341, 35344, 35347, 35350, 35353, - 35356, 18975, 18977, 18979, 18981, 35367, 35370, 35373, 35376, 35379, - 35382, 35385, 35388, 35391, 35394, 19013, 19015, 19017, 19019, 19021, - 19023, 19025, 19027, 0, 0, 0, 0, 0, 0, 19029, 19031, 35417, 35420, - 35423, 35426, 35429, 35432, 19051, 19053, 35439, 35442, 35445, 35448, - 35451, 35454, 19073, 19075, 35461, 35464, 35467, 35470, 0, 0, 19089, - 19091, 35477, 35480, 35483, 35486, 0, 0, 19105, 19107, 35493, 35496, - 35499, 35502, 35505, 35508, 19127, 19129, 35515, 35518, 35521, 35524, - 35527, 35530, 19149, 19151, 35537, 35540, 35543, 35546, 35549, 35552, - 19171, 19173, 35559, 35562, 35565, 35568, 35571, 35574, 19193, 19195, - 35581, 35584, 35587, 35590, 0, 0, 19209, 19211, 35597, 35600, 35603, - 35606, 0, 0, 19225, 19227, 35613, 35616, 35619, 35622, 35625, 35628, - 0, 19247, 0, 35633, 0, 35636, 0, 35639, 19258, 19260, 35646, 35649, - 35652, 35655, 35658, 35661, 19280, 19282, 35668, 35671, 35674, 35677, - 35680, 35683, 19302, 17029, 19304, 17031, 19306, 17033, 19308, 17035, - 19310, 17040, 19312, 17042, 19314, 17044, 0, 0, 35700, 35703, 52090, - 52094, 52098, 52102, 52106, 52110, 35730, 35733, 52120, 52124, 52128, - 52132, 52136, 52140, 35760, 35763, 52150, 52154, 52158, 52162, 52166, - 52170, 35790, 35793, 52180, 52184, 52188, 52192, 52196, 52200, 35820, - 35823, 52210, 52214, 52218, 52222, 52226, 52230, 35850, 35853, 52240, - 52244, 52248, 52252, 52256, 52260, 19496, 19498, 35884, 19503, 35889, - 0, 19510, 35896, 19515, 19517, 19519, 17005, 19521, 0, 636, 0, 0, - 19523, 35909, 19528, 35914, 0, 19533, 35919, 19538, 17008, 19540, - 17010, 19542, 19544, 19546, 19548, 19550, 19552, 35938, 33404, 0, 0, - 19557, 35943, 19562, 19564, 19566, 17012, 0, 19568, 19570, 19572, - 19574, 19576, 35962, 33421, 19581, 19583, 19585, 35971, 19590, 19592, - 19594, 17016, 19596, 19598, 17003, 3216, 0, 0, 35985, 19604, 35990, 0, - 19609, 35995, 19614, 17014, 19616, 17018, 19618, 3236, 0, 0, 1, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, 0, 209, 16402, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16715, 16717, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16723, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17222, 17224, 17226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17248, 0, 0, 0, 0, 17250, 0, 0, - 17254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16892, 0, 16894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16926, 0, 0, 16928, 0, 0, 16930, 0, - 16932, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16934, 0, 16936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16938, 16940, 16942, - 16944, 16946, 0, 0, 16948, 16950, 0, 0, 16952, 16954, 0, 0, 0, 0, 0, - 0, 16956, 16958, 0, 0, 16960, 16962, 0, 0, 16964, 16966, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16969, 16971, 16973, 16975, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16978, 16980, - 16982, 16984, 0, 0, 0, 0, 0, 0, 16986, 16988, 16990, 16992, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 610, 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17228, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17322, 0, - 17324, 0, 17326, 0, 17328, 0, 17330, 0, 17332, 0, 17334, 0, 17336, 0, - 17338, 0, 17340, 0, 17342, 0, 17344, 0, 0, 17346, 0, 17348, 0, 17350, - 0, 0, 0, 0, 0, 0, 17352, 17354, 0, 17356, 17358, 0, 17360, 17362, 0, - 17364, 17366, 0, 17368, 17370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17379, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17383, 0, 17385, 0, 17387, 0, - 17389, 0, 17391, 0, 17393, 0, 17395, 0, 17397, 0, 17399, 0, 17401, 0, - 17403, 0, 17405, 0, 0, 17407, 0, 17409, 0, 17411, 0, 0, 0, 0, 0, 0, - 17413, 17415, 0, 17417, 17419, 0, 17421, 17423, 0, 17425, 17427, 0, - 17429, 17431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17434, 0, 0, 17436, 17438, 17440, 17442, 0, 0, 0, 17444, 0, - 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1505, 1506, 1507, - 1508, 1509, 1419, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, - 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, - 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1388, 1458, 1536, 1537, - 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, - 1549, 1550, 1551, 1552, 1241, 1553, 1554, 1555, 1556, 1557, 1558, - 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, - 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, - 1581, 1582, 1583, 1584, 1516, 1585, 1586, 1357, 1587, 1588, 1214, - 1293, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, - 1599, 1600, 1487, 1601, 1602, 1603, 1231, 1604, 1605, 1606, 1607, - 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, - 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, - 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, - 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1600, 1648, 1649, 1650, - 1651, 1652, 1653, 1654, 1655, 1357, 1656, 1657, 1658, 1659, 1660, - 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, - 1672, 1673, 1674, 1675, 1516, 1676, 1677, 1678, 1679, 1680, 1681, - 1682, 1683, 1684, 1685, 1148, 1686, 1687, 1688, 1689, 1690, 1691, - 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1588, - 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, - 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, - 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, - 1735, 1736, 1737, 1327, 1738, 1739, 1740, 1741, 1742, 1743, 1744, - 1745, 1746, 1747, 1748, 1749, 1750, 0, 0, 1753, 0, 1755, 0, 0, 1758, - 1759, 1760, 1761, 1762, 1763, 932, 1764, 1765, 1766, 0, 1767, 0, 1769, - 0, 0, 1770, 1771, 0, 0, 0, 1773, 1774, 1775, 1776, 1777, 1778, 1255, - 1260, 1264, 1288, 1289, 1295, 1779, 1323, 1780, 1781, 1782, 1783, - 1366, 1406, 1784, 1413, 1418, 1442, 1785, 1449, 1468, 1147, 1786, - 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1246, 1796, - 1797, 1798, 937, 1799, 1800, 1637, 1801, 1802, 1803, 1128, 1804, 1805, - 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1770, 1814, - 1815, 1816, 1817, 1818, 1819, 0, 0, 1821, 1277, 1822, 1823, 1824, - 1825, 1287, 1290, 1779, 1826, 1318, 1827, 1753, 1828, 1829, 1830, - 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1411, 1838, 1413, 1839, - 1418, 1840, 1841, 1842, 1843, 1844, 1755, 1458, 1459, 1845, 1846, - 1487, 1148, 1847, 1160, 1787, 1171, 1788, 1848, 1187, 1849, 1759, - 1204, 1850, 1851, 1852, 1853, 1760, 1854, 1224, 1233, 1855, 1243, - 1856, 1800, 1857, 1858, 1637, 1859, 1128, 1860, 1861, 1862, 1863, - 1864, 1808, 1865, 1769, 1866, 1809, 1585, 1867, 1810, 1868, 1812, 7, - 1869, 1870, 1871, 1872, 1814, 1764, 1873, 1815, 1874, 1816, 1875, - 1505, 1876, 1877, 1878, 1473, 1879, 1234, 1880, 1881, 1882, 1883, - 1884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 18291, 0, 18293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18298, 18300, 34686, - 34689, 18308, 18310, 18312, 18314, 18316, 18318, 18320, 18322, 18324, - 0, 18326, 18328, 18330, 16997, 18334, 0, 18338, 0, 17001, 19508, 0, - 17023, 18346, 0, 18349, 18351, 18353, 18302, 18355, 18357, 18359, - 18361, 18363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17375, 0, 17377, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17447, 17449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17452, 17454, 33840, 33843, 33846, 33849, - 33852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17474, 17476, - 33862, 33865, 33868, 33871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, - 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, - 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, - 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, - 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1299, 1299, 1300, 1301, - 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, - 1313, 1314, 1315, 1316, 1317, 1317, 1318, 1319, 1320, 1321, 1322, - 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, - 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, - 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1353, 1354, - 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, - 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, - 1388, 1389, 1390, 1391, 1391, 1152, 1392, 1392, 1393, 1394, 1395, - 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, - 1407, 1408, 1409, 1410, 1411, 1410, 1412, 1413, 1414, 1415, 1416, - 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, - 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, - 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, - 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, - 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, - 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, - 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, - 1494, 1495, 1496, 1497, 1146, 1147, 1148, 1149, 1150, 1153, 1154, - 1155, 1156, 1157, 1159, 1160, 1161, 1162, 1163, 1165, 1166, 1167, - 1168, 1169, 1171, 1172, 1173, 1174, 1175, 1177, 1178, 1179, 1180, - 1182, 1184, 1185, 1186, 1187, 1188, 1190, 1191, 1192, 1193, 1194, - 1196, 1197, 1198, 1199, 1200, 1200, 1202, 1203, 1204, 1205, 1207, - 1208, 1209, 1210, 1211, 1213, 1214, 1215, 1216, 1217, 1219, 1220, - 1221, 1223, 1224, 1226, 1227, 1228, 1229, 1230, 1232, 1232, 1233, - 1234, 1235, 1237, 1238, 1239, 1240, 1241, 1243, 1244, 1245, 1246, - 1247, 1249, 932, 933, 934, 937, 1113, 1119, 990, 1130, 1130, 1049, - 1062, 1181, 1067, 1087, 1088, 1089, 1106, 1107, 1108, 1109, 1110, - 1111, 1112, 1114, 1115, 1116, 1117, 1118, 1120, 1121, 1122, 1123, - 1124, 1125, 1126, 1127, 1128, 1129, 1131, 1132, 1133, 1134, 1135, - 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1152, - 1158, 1164, 1170, 1176, 1183, 1189, 1195, 1201, 1206, 1212, 1218, - 1225, 1231, 1236, 1242, 1248, 1222, 774, 683, 1806, 1996, 2024, 2046, - 2053, 2060, 2006, 2001, 2404, 5, 705, 792, 829, 584, 1752, 662, 700, - 1768, 1772, 785, 345, 1548, 1895, 1912, 1964, 1984, 1990, 1997, 1862, - 2009, 1820, 2018, 2025, 2030, 2034, 2038, 2044, 2047, 2048, 2050, - 2051, 2052, 2054, 2055, 2056, 2058, 2059, 2061, 1885, 1867, 1868, - 1886, 1887, 1888, 1889, 1890, 1898, 1903, 1906, 2057, 1911, 1913, - 2049, 2026, 7, 3, 4, 6, 1981, 1982, 1983, 1985, 1986, 1987, 1988, - 1989, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2002, 2003, - 2004, 2005, 593, 2007, 2008, 2010, 2011, 2012, 2013, 1874, 1874, 2014, - 2015, 2016, 2017, 2019, 2020, 2021, 2022, 2023, 1151, 1875, 2027, - 2028, 2029, 1751, 2031, 2032, 1754, 2033, 1756, 1757, 2035, 2036, - 2037, 2039, 2040, 2041, 2042, 2043, 2045 -}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16392, 16394, 16396, 16398, 16400, 16402, 0, 16404, 16406, 16408, 16410, 16412, 16414, 16416, 16418, 16420, + 0, 16422, 16424, 16426, 16428, 16430, 16432, 0, 0, 16434, 16436, 16438, 16440, 16442, 0, 0, + 16444, 16446, 16448, 16450, 16452, 16454, 0, 16456, 16458, 16460, 16462, 16464, 16466, 16468, 16470, 16472, + 0, 16474, 16476, 16478, 16480, 16482, 16484, 0, 0, 16486, 16488, 16490, 16492, 16494, 0, 16496, + 16498, 16500, 16502, 16504, 16506, 16508, 16510, 16512, 16514, 16516, 16518, 16520, 16522, 16524, 16526, 16528, + 0, 0, 16530, 16532, 16534, 16536, 16538, 16540, 16542, 16544, 16546, 16548, 16550, 16552, 16554, 16556, + 16558, 16560, 16562, 16564, 16566, 16568, 0, 0, 16571, 16573, 16575, 16577, 16579, 16581, 16583, 16585, + 16587, 0, 0, 0, 16589, 16591, 16593, 16595, 0, 16597, 16599, 16601, 16603, 16605, 16607, 0, + 0, 0, 0, 16609, 16611, 16613, 16615, 16617, 16619, 0, 0, 0, 16621, 16623, 16625, 16627, + 16629, 16631, 0, 0, 16633, 16635, 16637, 16639, 16641, 16643, 16645, 16647, 16649, 16651, 16653, 16655, + 16657, 16659, 16661, 16663, 16665, 16667, 0, 0, 16669, 16671, 16673, 16675, 16677, 16679, 16681, 16683, + 16685, 16687, 16689, 16691, 16693, 16695, 16697, 16699, 16701, 16703, 16705, 16707, 16709, 16711, 16713, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16719, 16721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16725, + 16727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16730, 16732, 16734, + 16736, 16738, 16740, 16742, 16744, 33130, 33133, 33136, 33139, 33142, 33145, 33148, 33151, 0, 33154, 33157, + 33160, 33163, 16782, 16784, 0, 0, 16786, 16788, 16790, 16792, 16794, 16796, 33182, 33185, 16804, 16806, + 16808, 0, 0, 0, 16810, 16812, 0, 0, 16814, 16816, 33202, 33205, 16824, 16826, 16828, 16830, + 16832, 16834, 16836, 16838, 16840, 16842, 16844, 16846, 16848, 16850, 16852, 16854, 16856, 16858, 16860, 16862, + 16864, 16866, 16868, 16870, 16872, 16874, 16876, 16878, 16880, 16882, 16884, 16886, 0, 0, 16888, 16890, + 0, 0, 0, 0, 0, 0, 16776, 16779, 16896, 16898, 33284, 33287, 33290, 33293, 16912, 16914, + 33300, 33303, 16922, 16924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9, 11, 0, 612, 16753, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 616, 0, + 0, 0, 0, 0, 0, 17003, 17005, 623, 17008, 17010, 17012, 0, 17014, 0, 17016, 17018, + 33404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17025, 17027, 17029, 17031, 17033, 17035, + 33421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17020, 17037, 17040, 17042, 17044, 0, + 0, 0, 0, 17047, 17049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17051, 17053, 0, 17055, 0, 0, 0, 17057, 0, 0, 0, 0, 17059, 17061, 17063, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17065, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17068, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17070, 17072, 0, 17074, 0, 0, 0, 17076, 0, 0, 0, 0, 17078, 17080, 17082, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17085, 17087, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17090, 17092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17094, 17096, 17098, 17100, 0, 0, 17102, 17104, 0, 0, 17106, 17108, 17110, 17112, 17114, 17116, + 0, 0, 17118, 17120, 17122, 17124, 17126, 17128, 0, 0, 17130, 17132, 17134, 17136, 17138, 17140, + 17142, 17144, 17146, 17148, 17150, 17152, 0, 0, 17154, 17156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17159, 17161, 17163, 17165, 17167, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17170, 0, 17172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17177, 0, 0, 0, 0, 0, 0, + 0, 17179, 0, 0, 17181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17183, 17185, 17187, 17189, 17191, 17193, 17195, 17197, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17199, 17201, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17203, 17205, 0, 17207, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17209, 0, 0, 17211, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17214, 17216, 17218, 0, 0, 17220, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17230, 0, 0, 17232, 17234, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17236, 17238, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17242, 17244, 17246, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17252, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17256, 0, 0, 0, 0, 0, 0, 17258, 17260, 0, 17262, 33648, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17267, 17269, 17271, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17273, 0, 17275, 33661, 17280, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17284, 0, 0, + 0, 0, 17286, 0, 0, 0, 0, 17288, 0, 0, 0, 0, 17290, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17292, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17294, 0, 17296, 17298, 0, 17300, 0, 0, 0, 0, 0, 0, 0, + 0, 17302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17306, 0, 0, + 0, 0, 17308, 0, 0, 0, 0, 17310, 0, 0, 0, 0, 17312, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17314, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17319, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 18275, 0, 18277, 0, 18280, 0, 18283, 0, 18285, 0, + 0, 0, 18288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18332, 0, 18336, 0, 0, + 18340, 18342, 0, 18344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18446, 18448, 18450, 18452, 18454, 18456, 18458, 18460, 34846, 34849, 18468, 18470, 18472, 18474, 18476, 18478, + 18480, 18482, 18484, 18486, 34872, 34875, 34878, 34881, 18500, 18502, 18504, 18506, 34892, 34895, 18514, 18516, + 18518, 18520, 18522, 18524, 18526, 18528, 18530, 18532, 18534, 18536, 18538, 18540, 18542, 18544, 34930, 34933, + 18552, 18554, 18556, 18558, 18560, 18562, 18564, 18566, 34952, 34955, 18574, 18576, 18578, 18580, 18582, 18584, + 18586, 18588, 18590, 18592, 18594, 18596, 18598, 18600, 18602, 18604, 18606, 18608, 34994, 34997, 35000, 35003, + 35006, 35009, 35012, 35015, 18634, 18636, 18638, 18640, 18642, 18644, 18646, 18648, 35034, 35037, 18656, 18658, + 18660, 18662, 18664, 18666, 35052, 35055, 35058, 35061, 35064, 35067, 18686, 18688, 18690, 18692, 18694, 18696, + 18698, 18700, 18702, 18704, 18706, 18708, 18710, 18712, 35098, 35101, 35104, 35107, 18726, 18728, 18730, 18732, + 18734, 18736, 18738, 18740, 18742, 18744, 18746, 18748, 18750, 18752, 18754, 18756, 18758, 18760, 18762, 18764, + 18766, 18768, 18770, 18772, 18774, 18776, 18778, 18780, 18782, 18784, 0, 18786, 0, 0, 0, 0, + 18789, 18791, 18793, 18795, 35181, 35184, 35187, 35190, 35193, 35196, 35199, 35202, 35205, 35208, 35211, 35214, + 35217, 35220, 35223, 35226, 35229, 35232, 35235, 35238, 18857, 18859, 18861, 18863, 18865, 18867, 35253, 35256, + 35259, 35262, 35265, 35268, 35271, 35274, 35277, 35280, 18899, 18901, 18903, 18905, 18907, 18909, 18911, 18913, + 35299, 35302, 35305, 35308, 35311, 35314, 35317, 35320, 35323, 35326, 35329, 35332, 35335, 35338, 35341, 35344, + 35347, 35350, 35353, 35356, 18975, 18977, 18979, 18981, 35367, 35370, 35373, 35376, 35379, 35382, 35385, 35388, + 35391, 35394, 19013, 19015, 19017, 19019, 19021, 19023, 19025, 19027, 0, 0, 0, 0, 0, 0, + 19029, 19031, 35417, 35420, 35423, 35426, 35429, 35432, 19051, 19053, 35439, 35442, 35445, 35448, 35451, 35454, + 19073, 19075, 35461, 35464, 35467, 35470, 0, 0, 19089, 19091, 35477, 35480, 35483, 35486, 0, 0, + 19105, 19107, 35493, 35496, 35499, 35502, 35505, 35508, 19127, 19129, 35515, 35518, 35521, 35524, 35527, 35530, + 19149, 19151, 35537, 35540, 35543, 35546, 35549, 35552, 19171, 19173, 35559, 35562, 35565, 35568, 35571, 35574, + 19193, 19195, 35581, 35584, 35587, 35590, 0, 0, 19209, 19211, 35597, 35600, 35603, 35606, 0, 0, + 19225, 19227, 35613, 35616, 35619, 35622, 35625, 35628, 0, 19247, 0, 35633, 0, 35636, 0, 35639, + 19258, 19260, 35646, 35649, 35652, 35655, 35658, 35661, 19280, 19282, 35668, 35671, 35674, 35677, 35680, 35683, + 19302, 17029, 19304, 17031, 19306, 17033, 19308, 17035, 19310, 17040, 19312, 17042, 19314, 17044, 0, 0, + 35700, 35703, 52090, 52094, 52098, 52102, 52106, 52110, 35730, 35733, 52120, 52124, 52128, 52132, 52136, 52140, + 35760, 35763, 52150, 52154, 52158, 52162, 52166, 52170, 35790, 35793, 52180, 52184, 52188, 52192, 52196, 52200, + 35820, 35823, 52210, 52214, 52218, 52222, 52226, 52230, 35850, 35853, 52240, 52244, 52248, 52252, 52256, 52260, + 19496, 19498, 35884, 19503, 35889, 0, 19510, 35896, 19515, 19517, 19519, 17005, 19521, 0, 636, 0, + 0, 19523, 35909, 19528, 35914, 0, 19533, 35919, 19538, 17008, 19540, 17010, 19542, 19544, 19546, 19548, + 19550, 19552, 35938, 33404, 0, 0, 19557, 35943, 19562, 19564, 19566, 17012, 0, 19568, 19570, 19572, + 19574, 19576, 35962, 33421, 19581, 19583, 19585, 35971, 19590, 19592, 19594, 17016, 19596, 19598, 17003, 3216, + 0, 0, 35985, 19604, 35990, 0, 19609, 35995, 19614, 17014, 19616, 17018, 19618, 3236, 0, 0, + 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 186, 0, 0, 0, 209, 16402, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16715, 16717, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16723, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17222, 17224, 17226, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17248, 0, 0, 0, 0, 17250, 0, 0, 17254, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16892, 0, 16894, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16926, 0, 0, 16928, 0, 0, 16930, 0, 16932, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16934, 0, 16936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16938, 16940, 16942, + 16944, 16946, 0, 0, 16948, 16950, 0, 0, 16952, 16954, 0, 0, 0, 0, 0, 0, + 16956, 16958, 0, 0, 16960, 16962, 0, 0, 16964, 16966, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16969, 16971, 16973, 16975, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16978, 16980, 16982, 16984, 0, 0, 0, 0, 0, 0, 16986, 16988, 16990, 16992, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 610, 611, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17228, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17322, 0, 17324, 0, + 17326, 0, 17328, 0, 17330, 0, 17332, 0, 17334, 0, 17336, 0, 17338, 0, 17340, 0, + 17342, 0, 17344, 0, 0, 17346, 0, 17348, 0, 17350, 0, 0, 0, 0, 0, 0, + 17352, 17354, 0, 17356, 17358, 0, 17360, 17362, 0, 17364, 17366, 0, 17368, 17370, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17383, 0, 17385, 0, + 17387, 0, 17389, 0, 17391, 0, 17393, 0, 17395, 0, 17397, 0, 17399, 0, 17401, 0, + 17403, 0, 17405, 0, 0, 17407, 0, 17409, 0, 17411, 0, 0, 0, 0, 0, 0, + 17413, 17415, 0, 17417, 17419, 0, 17421, 17423, 0, 17425, 17427, 0, 17429, 17431, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17434, 0, 0, 17436, 17438, 17440, 17442, 0, 0, 0, 17444, 0, + 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1505, 1506, 1507, 1508, 1509, 1419, 1510, 1511, + 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, + 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1388, 1458, 1536, 1537, 1538, 1539, 1540, 1541, + 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1241, 1553, 1554, 1555, 1556, + 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, + 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1516, 1585, 1586, 1357, + 1587, 1588, 1214, 1293, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, + 1487, 1601, 1602, 1603, 1231, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, + 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, + 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, + 1647, 1600, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1357, 1656, 1657, 1658, 1659, 1660, + 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1516, + 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1148, 1686, 1687, 1688, 1689, 1690, + 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1588, 1702, 1703, 1704, 1705, + 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, + 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, + 1327, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 0, 0, + 1753, 0, 1755, 0, 0, 1758, 1759, 1760, 1761, 1762, 1763, 932, 1764, 1765, 1766, 0, + 1767, 0, 1769, 0, 0, 1770, 1771, 0, 0, 0, 1773, 1774, 1775, 1776, 1777, 1778, + 1255, 1260, 1264, 1288, 1289, 1295, 1779, 1323, 1780, 1781, 1782, 1783, 1366, 1406, 1784, 1413, + 1418, 1442, 1785, 1449, 1468, 1147, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, + 1246, 1796, 1797, 1798, 937, 1799, 1800, 1637, 1801, 1802, 1803, 1128, 1804, 1805, 1805, 1806, + 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1770, 1814, 1815, 1816, 1817, 1818, 1819, 0, 0, + 1821, 1277, 1822, 1823, 1824, 1825, 1287, 1290, 1779, 1826, 1318, 1827, 1753, 1828, 1829, 1830, + 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1411, 1838, 1413, 1839, 1418, 1840, 1841, 1842, 1843, + 1844, 1755, 1458, 1459, 1845, 1846, 1487, 1148, 1847, 1160, 1787, 1171, 1788, 1848, 1187, 1849, + 1759, 1204, 1850, 1851, 1852, 1853, 1760, 1854, 1224, 1233, 1855, 1243, 1856, 1800, 1857, 1858, + 1637, 1859, 1128, 1860, 1861, 1862, 1863, 1864, 1808, 1865, 1769, 1866, 1809, 1585, 1867, 1810, + 1868, 1812, 7, 1869, 1870, 1871, 1872, 1814, 1764, 1873, 1815, 1874, 1816, 1875, 1505, 1876, + 1877, 1878, 1473, 1879, 1234, 1880, 1881, 1882, 1883, 1884, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18291, 0, 18293, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18298, 18300, 34686, 34689, 18308, 18310, + 18312, 18314, 18316, 18318, 18320, 18322, 18324, 0, 18326, 18328, 18330, 16997, 18334, 0, 18338, 0, + 17001, 19508, 0, 17023, 18346, 0, 18349, 18351, 18353, 18302, 18355, 18357, 18359, 18361, 18363, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17375, 0, 17377, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17381, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17447, 17449, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17452, 17454, + 33840, 33843, 33846, 33849, 33852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17474, 17476, 33862, 33865, 33868, + 33871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, + 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, + 1298, 1299, 1299, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, + 1312, 1313, 1314, 1315, 1316, 1317, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, + 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, + 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1353, 1354, 1355, 1356, 1357, + 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, + 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, + 1390, 1391, 1391, 1152, 1392, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, + 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1410, 1412, 1413, 1414, 1415, 1416, 1417, + 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, + 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, + 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, + 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, + 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, + 1146, 1147, 1148, 1149, 1150, 1153, 1154, 1155, 1156, 1157, 1159, 1160, 1161, 1162, 1163, 1165, + 1166, 1167, 1168, 1169, 1171, 1172, 1173, 1174, 1175, 1177, 1178, 1179, 1180, 1182, 1184, 1185, + 1186, 1187, 1188, 1190, 1191, 1192, 1193, 1194, 1196, 1197, 1198, 1199, 1200, 1200, 1202, 1203, + 1204, 1205, 1207, 1208, 1209, 1210, 1211, 1213, 1214, 1215, 1216, 1217, 1219, 1220, 1221, 1223, + 1224, 1226, 1227, 1228, 1229, 1230, 1232, 1232, 1233, 1234, 1235, 1237, 1238, 1239, 1240, 1241, + 1243, 1244, 1245, 1246, 1247, 1249, 932, 933, 934, 937, 1113, 1119, 990, 1130, 1130, 1049, + 1062, 1181, 1067, 1087, 1088, 1089, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1114, 1115, 1116, + 1117, 1118, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1152, 1158, 1164, 1170, 1176, + 1183, 1189, 1195, 1201, 1206, 1212, 1218, 1225, 1231, 1236, 1242, 1248, 1222, 774, 683, 1806, + 1996, 2024, 2046, 2053, 2060, 2006, 2001, 2404, 5, 705, 792, 829, 584, 1752, 662, 700, + 1768, 1772, 785, 345, 1548, 1895, 1912, 1964, 1984, 1990, 1997, 1862, 2009, 1820, 2018, 2025, + 2030, 2034, 2038, 2044, 2047, 2048, 2050, 2051, 2052, 2054, 2055, 2056, 2058, 2059, 2061, 1885, + 1867, 1868, 1886, 1887, 1888, 1889, 1890, 1898, 1903, 1906, 2057, 1911, 1913, 2049, 2026, 7, + 3, 4, 6, 1981, 1982, 1983, 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, + 1998, 1999, 2000, 2002, 2003, 2004, 2005, 593, 2007, 2008, 2010, 2011, 2012, 2013, 1874, 1874, + 2014, 2015, 2016, 2017, 2019, 2020, 2021, 2022, 2023, 1151, 1875, 2027, 2028, 2029, 1751, 2031, + 2032, 1754, 2033, 1756, 1757, 2035, 2036, 2037, 2039, 2040, 2041, 2042, 2043, 2045}; -int32_t decomp_idx(int32_t codepoint) { +int32_t decomp_idx(int32_t codepoint) +{ if (codepoint >= 195102) return 0; return decomp_idx_t2[(decomp_idx_t1[codepoint >> 6] << 6) + (codepoint & 63)]; } static const uint8_t comp_idx_t1[] = { - 0, 1, 2, 3, 0, 4, 5, 6, 7, 0, 8, 9, 0, 10, 0, 11, 0, 12, 0, 0, 13, 0, - 0, 0, 0, 0, 0, 0, 14, 15, 16, 0, 17, 18, 19, 20, 0, 0, 21, 22, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 23, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 29, 0, 30, 0, 0, 0, 31, 0, 0, 32, 33, 0, 0, 0, 34, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 40, 41, - 0, 42, 43, 0, 44, 45, 46, 47, 0, 48, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 60, 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 0, 67 -}; + 0, 1, 2, 3, 0, 4, 5, 6, 7, 0, 8, 9, 0, 10, 0, 11, 0, 12, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 14, 15, + 16, 0, 17, 18, 19, 20, 0, 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 0, 29, 0, 30, 0, 0, 0, 31, 0, 0, 32, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 36, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39, 40, 41, 0, 42, 43, 0, 44, 45, 46, 47, 0, 48, 49, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, + 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 60, 61, 62, + 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 0, 67}; static const uint16_t comp_idx_t2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 20, 23, - 28, 34, 502, 52, 59, 66, 81, 82, 87, 517, 94, 103, 119, 0, 122, 130, - 137, 144, 163, 165, 171, 173, 182, 0, 0, 0, 0, 0, 0, 191, 207, 210, - 215, 221, 701, 239, 246, 254, 268, 270, 275, 281, 284, 293, 309, 0, - 571, 313, 320, 328, 347, 349, 585, 358, 368, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 400, 401, 753, 403, 0, 0, 405, 0, 0, - 0, 0, 762, 0, 0, 0, 0, 413, 765, 419, 0, 768, 0, 0, 0, 424, 0, 0, 0, - 0, 0, 428, 0, 432, 433, 434, 436, 0, 0, 437, 0, 0, 0, 0, 441, 0, 0, 0, - 0, 445, 449, 452, 0, 453, 0, 0, 0, 454, 0, 0, 0, 0, 0, 459, 463, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 467, 469, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, 478, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 480, 481, 0, 0, 0, 0, 482, 483, 0, 0, 0, 0, 0, - 0, 484, 485, 486, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 488, 492, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 503, - 508, 0, 0, 0, 0, 0, 0, 513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 524, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, 536, 537, 0, 0, 0, 0, 538, - 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0, 0, - 0, 609, 0, 613, 0, 618, 0, 0, 0, 0, 0, 625, 0, 629, 0, 0, 0, 630, 0, - 0, 0, 636, 0, 0, 641, 0, 642, 0, 0, 643, 0, 0, 0, 651, 0, 655, 0, 661, - 0, 0, 0, 0, 0, 669, 0, 673, 0, 0, 0, 675, 0, 0, 0, 686, 692, 695, 0, - 0, 698, 0, 0, 0, 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 703, 0, 0, 705, 0, 706, 709, - 711, 712, 0, 716, 0, 0, 0, 717, 0, 0, 0, 0, 718, 0, 0, 0, 722, 0, 0, - 0, 723, 0, 724, 0, 0, 725, 0, 0, 727, 0, 728, 731, 733, 734, 0, 738, - 0, 0, 0, 739, 0, 0, 0, 0, 740, 0, 0, 0, 745, 0, 0, 0, 746, 0, 747, 0, - 0, 0, 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 750, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 760, 761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 763, 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 783, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 795, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 799, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, - 0, 472, 0, 0, 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 683, 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 744, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 755, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 769, - 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 773, 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, 0, 587, 0, 588, 0, - 589, 0, 590, 0, 591, 0, 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 593, 0, 594, 0, 595, 596, 0, 0, 597, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 780, - 781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 785, 0, 0, 0, 0, 0, 0, 787, - 788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 789, 791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 793, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 796, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 800, 804, 808, 809, 810, 811, 812, 813, 814, 818, 822, - 823, 824, 825, 826, 827, 828, 830, 0, 0, 0, 0, 0, 0, 832, 834, 0, 0, - 0, 0, 0, 0, 836, 840, 844, 845, 846, 847, 848, 849, 850, 854, 858, - 859, 860, 861, 862, 863, 864, 867, 0, 0, 0, 0, 0, 0, 870, 873, 0, 0, - 0, 0, 0, 0, 876, 878, 0, 0, 0, 0, 0, 0, 880, 882, 0, 0, 0, 0, 0, 0, - 884, 887, 0, 0, 0, 0, 0, 0, 0, 890, 0, 0, 0, 0, 0, 0, 893, 897, 901, - 902, 903, 904, 905, 906, 907, 911, 915, 916, 917, 751, 919, 920, 921, - 0, 0, 0, 922, 0, 0, 0, 0, 0, 0, 0, 923, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 924, 0, 0, 0, 0, 0, 0, 0, - 0, 925, 0, 0, 0, 0, 0, 0, 928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 930, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, 490, 0, 491, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 520, 0, 521, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 528, 0, 0, 0, 0, 529, 0, 0, 786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 532, 0, 533, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 0, 0, 0, 0, 0, 0, - 541, 0, 542, 0, 0, 544, 0, 0, 0, 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 547, 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 551, 552, 0, 0, 553, 554, 0, 0, 555, 556, 557, 558, 0, - 0, 0, 0, 559, 560, 0, 0, 561, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 0, 0, - 568, 569, 0, 570, 0, 0, 0, 0, 0, 0, 579, 580, 581, 582, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 514, 0, 93, 0, 523, - 0, 121, 0, 526, 0, 527, 0, 530, 0, 531, 0, 188, 0, 189, 0, 190, 0, - 543, 0, 0, 546, 0, 238, 0, 550, 0, 0, 0, 0, 0, 0, 565, 0, 0, 311, 0, - 0, 583, 0, 0, 356, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, 0, - 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 384, 0, 385, 0, 386, 0, 387, 0, - 388, 0, 389, 0, 390, 0, 391, 0, 392, 0, 393, 0, 394, 0, 395, 0, 0, - 752, 0, 402, 0, 404, 0, 0, 0, 0, 0, 0, 409, 0, 0, 411, 0, 0, 417, 0, - 0, 420, 0, 0, 422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 772, 442, 443, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 376, 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, 474 -}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 4, 20, 23, 28, + 34, 502, 52, 59, 66, 81, 82, 87, 517, 94, 103, 119, 0, 122, 130, 137, 144, 163, 165, 171, 173, 182, 0, + 0, 0, 0, 0, 0, 191, 207, 210, 215, 221, 701, 239, 246, 254, 268, 270, 275, 281, 284, 293, 309, 0, 571, + 313, 320, 328, 347, 349, 585, 358, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 396, 0, 400, 401, 753, 403, 0, 0, 405, 0, 0, 0, 0, 762, 0, 0, 0, 0, 413, 765, 419, 0, + 768, 0, 0, 0, 424, 0, 0, 0, 0, 0, 428, 0, 432, 433, 434, 436, 0, 0, 437, 0, 0, 0, 0, + 441, 0, 0, 0, 0, 445, 449, 452, 0, 453, 0, 0, 0, 454, 0, 0, 0, 0, 0, 459, 463, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 467, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, 478, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 480, 481, 0, 0, 0, 0, 482, 483, 0, 0, 0, 0, 0, 0, 484, 485, 486, + 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 488, 492, 497, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 503, 508, 0, 0, 0, 0, 0, 0, 513, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 525, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, + 535, 536, 537, 0, 0, 0, 0, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 601, 0, 0, 0, 609, 0, 613, 0, 618, 0, 0, 0, 0, 0, 625, 0, 629, 0, + 0, 0, 630, 0, 0, 0, 636, 0, 0, 641, 0, 642, 0, 0, 643, 0, 0, 0, 651, 0, 655, 0, 661, + 0, 0, 0, 0, 0, 669, 0, 673, 0, 0, 0, 675, 0, 0, 0, 686, 692, 695, 0, 0, 698, 0, 0, + 0, 699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 702, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 703, 0, 0, 705, 0, 706, 709, 711, 712, 0, 716, 0, 0, 0, 717, + 0, 0, 0, 0, 718, 0, 0, 0, 722, 0, 0, 0, 723, 0, 724, 0, 0, 725, 0, 0, 727, 0, 728, + 731, 733, 734, 0, 738, 0, 0, 0, 739, 0, 0, 0, 0, 740, 0, 0, 0, 745, 0, 0, 0, 746, 0, + 747, 0, 0, 0, 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 750, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 760, 761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 763, + 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 783, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 795, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 0, 799, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, 0, 472, 0, 0, + 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 683, 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 755, 0, 0, + 0, 0, 0, 0, 756, 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 769, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 773, 0, 0, 776, 0, + 0, 0, 0, 0, 0, 0, 0, 587, 0, 588, 0, 589, 0, 590, 0, 591, 0, 0, 0, 592, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 0, 594, 0, 595, 596, 0, 0, 597, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 780, 781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 785, 0, 0, 0, + 0, 0, 0, 787, 788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, 791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 796, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 800, 804, 808, 809, 810, 811, 812, 813, 814, 818, 822, 823, 824, 825, 826, 827, 828, 830, + 0, 0, 0, 0, 0, 0, 832, 834, 0, 0, 0, 0, 0, 0, 836, 840, 844, 845, 846, 847, 848, 849, 850, + 854, 858, 859, 860, 861, 862, 863, 864, 867, 0, 0, 0, 0, 0, 0, 870, 873, 0, 0, 0, 0, 0, 0, + 876, 878, 0, 0, 0, 0, 0, 0, 880, 882, 0, 0, 0, 0, 0, 0, 884, 887, 0, 0, 0, 0, 0, + 0, 0, 890, 0, 0, 0, 0, 0, 0, 893, 897, 901, 902, 903, 904, 905, 906, 907, 911, 915, 916, 917, 751, + 919, 920, 921, 0, 0, 0, 922, 0, 0, 0, 0, 0, 0, 0, 923, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 924, 0, 0, 0, 0, 0, + 0, 0, 0, 925, 0, 0, 0, 0, 0, 0, 928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 930, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, 490, 0, 491, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 520, 0, 521, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, + 0, 0, 529, 0, 0, 786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 532, 0, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 540, 0, 0, 0, 0, 0, 0, 541, 0, 542, 0, 0, 544, 0, 0, + 0, 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 547, + 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 551, 552, 0, 0, 553, 554, 0, + 0, 555, 556, 557, 558, 0, 0, 0, 0, 559, 560, 0, 0, 561, 562, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 918, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 0, + 0, 568, 569, 0, 570, 0, 0, 0, 0, 0, 0, 579, 580, 581, 582, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 514, 0, 93, 0, 523, 0, 121, 0, 526, 0, + 527, 0, 530, 0, 531, 0, 188, 0, 189, 0, 190, 0, 543, 0, 0, 546, 0, 238, 0, 550, 0, 0, 0, + 0, 0, 0, 565, 0, 0, 311, 0, 0, 583, 0, 0, 356, 0, 0, 374, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 384, 0, 385, 0, 386, 0, + 387, 0, 388, 0, 389, 0, 390, 0, 391, 0, 392, 0, 393, 0, 394, 0, 395, 0, 0, 752, 0, 402, 0, + 404, 0, 0, 0, 0, 0, 0, 409, 0, 0, 411, 0, 0, 417, 0, 0, 420, 0, 0, 422, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 772, 442, 443, 444, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376, 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 473, + 474}; -int32_t comp_idx(int32_t codepoint) { +int32_t comp_idx(int32_t codepoint) +{ if (codepoint >= 69939) return 0; return comp_idx_t2[(comp_idx_t1[codepoint >> 5] << 5) + (codepoint & 31)]; } static const uint8_t ccc_t1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 4, - 5, 6, 7, 0, 8, 9, 10, 0, 11, 12, 13, 0, 14, 15, 16, 15, 17, 15, 17, - 15, 17, 15, 17, 0, 17, 0, 18, 15, 17, 0, 17, 0, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 32, 0, 0, 33, 0, 34, 0, 0, - 0, 35, 36, 0, 0, 37, 38, 39, 40, 41, 0, 0, 42, 0, 0, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 46, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, 53, - 0, 0, 54, 55, 56, 57, 58, 0, 0, 59, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 66, 0, 67, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 71 -}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 4, 5, 6, 7, 0, 8, 9, + 10, 0, 11, 12, 13, 0, 14, 15, 16, 15, 17, 15, 17, 15, 17, 15, 17, 0, 17, 0, 18, 15, 17, 0, 17, 0, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 31, 0, 0, 32, 0, 0, 33, 0, 34, 0, 0, 0, 35, 36, 0, 0, 37, 38, 39, 40, 41, 0, 0, 42, + 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 45, 0, 46, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, + 52, 0, 0, 0, 0, 53, 0, 0, 54, 55, 56, 57, 58, 0, 0, 59, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 66, 0, 67, 0, 0, 58, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 69, 70, 0, 0, 71}; static const uint8_t ccc_t2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, - 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, - 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, - 230, 230, 220, 220, 0, 230, 230, 230, 220, 220, 220, 220, 230, 232, - 220, 220, 230, 233, 234, 234, 233, 234, 234, 233, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, - 230, 230, 230, 220, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, - 222, 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, - 0, 23, 0, 24, 25, 0, 230, 220, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, - 230, 230, 230, 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 230, - 230, 220, 220, 230, 230, 230, 230, 230, 220, 230, 230, 220, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, - 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 220, - 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, 230, 230, 220, - 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, - 230, 230, 230, 220, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, - 230, 230, 0, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 230, 230, - 230, 0, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 220, 230, - 230, 220, 230, 230, 230, 220, 220, 220, 27, 28, 29, 230, 230, 230, - 220, 230, 230, 220, 220, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, - 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 129, 130, 0, 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, - 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, - 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 230, - 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, - 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 230, 0, 1, 220, 220, 220, 220, 220, 230, 230, 220, 220, 220, - 220, 230, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, - 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 220, 230, 230, 230, - 230, 230, 230, 230, 220, 230, 230, 234, 214, 220, 202, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 233, 220, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, - 0, 0, 0, 0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, 1, 220, 220, 220, - 220, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, - 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, - 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, - 0, 0, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 230, - 230, 220, 0, 0, 230, 230, 0, 0, 0, 0, 0, 230, 230, 0, 230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 230, 1, 220, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 216, 1, 1, 1, - 0, 0, 0, 226, 216, 216, 216, 216, 216, 0, 0, 0, 0, 0, 0, 0, 0, 220, - 220, 220, 220, 220, 220, 220, 220, 0, 0, 230, 230, 230, 230, 230, 220, - 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230 -}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, + 220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, + 230, 230, 230, 220, 220, 0, 230, 230, 230, 220, 220, 220, 220, 230, 232, 220, 220, 230, 233, 234, 234, 233, 234, + 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 230, 230, + 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230, 230, 230, 220, 220, 220, 220, 220, 220, 230, 230, 220, + 230, 230, 222, 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 0, 23, 0, 24, + 25, 0, 230, 220, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 230, 30, 31, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, 220, 230, 230, 230, 230, 230, 220, 230, 230, 220, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, 230, 220, 230, 0, 0, 230, + 230, 0, 220, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, 230, 230, 220, 230, + 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 220, 230, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, + 230, 230, 230, 0, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 220, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 220, 230, 230, 220, 230, 230, 230, 220, 220, + 220, 27, 28, 29, 230, 230, 230, 220, 230, 230, 220, 220, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 0, 132, 0, 0, 0, + 0, 0, 130, 130, 130, 130, 0, 0, 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 222, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 220, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 230, 230, 230, 230, 230, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 0, 1, 220, 220, 220, 220, 220, + 230, 230, 220, 220, 220, 220, 230, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 220, 0, 0, 0, + 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 220, 230, 230, 230, 230, 230, + 230, 230, 220, 230, 230, 234, 214, 220, 202, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 233, 220, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, 0, 230, 0, 0, + 0, 1, 1, 230, 220, 230, 1, 1, 220, 220, 220, 220, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 230, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, + 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 230, 0, 230, 230, 220, 0, 0, 230, 230, 0, 0, 0, 0, 0, 230, 230, 0, + 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 230, 1, 220, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 216, 1, 1, 1, 0, 0, 0, 226, + 216, 216, 216, 216, 216, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 220, 220, 220, 220, 220, 0, 0, + 230, 230, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230}; -int32_t ccc(int32_t codepoint) { +int32_t ccc(int32_t codepoint) +{ if (codepoint >= 119365) return 0; return ccc_t2[(ccc_t1[codepoint >> 6] << 6) + (codepoint & 63)]; } static const int32_t lowercase_offset_values[] = { - 0, 32, 1, -199, -121, 210, 206, 205, 79, 202, 203, 207, 211, 209, 213, - 214, 218, 217, 219, 2, -97, -56, -130, 10795, -163, 10792, -195, 69, - 71, 38, 37, 64, 63, 8, -60, -7, 80, 15, 48, 7264, -7615, -8, -74, -9, - -86, -100, -112, -128, -126, -7517, -8383, -8262, 28, 16, 26, -10743, - -3814, -10727, -10780, -10749, -10783, -10782, -10815, -35332, -42280, - -42308, 40 -}; + 0, 32, 1, -199, -121, 210, 206, 205, 79, 202, 203, 207, 211, 209, + 213, 214, 218, 217, 219, 2, -97, -56, -130, 10795, -163, 10792, -195, 69, + 71, 38, 37, 64, 63, 8, -60, -7, 80, 15, 48, 7264, -7615, -8, + -74, -9, -86, -100, -112, -128, -126, -7517, -8383, -8262, 28, 16, 26, -10743, + -3814, -10727, -10780, -10749, -10783, -10782, -10815, -35332, -42280, -42308, 40}; static const uint8_t lowercase_offset_t1[] = { - 0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 20, 21, 20, 22, 23, 24, 25, 0, 0, 0, 0, 26, - 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 32, - 20, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 35, 0, 36, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40 -}; + 0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 21, 20, 22, 23, 24, 25, + 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 32, 20, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 36, 37, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40}; static const uint8_t lowercase_offset_t2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 4, 2, 0, 2, 0, 2, 0, 0, 0, 5, - 2, 0, 2, 0, 6, 2, 0, 7, 7, 2, 0, 0, 8, 9, 10, 2, 0, 7, 11, 0, 12, 13, - 2, 0, 0, 0, 12, 14, 0, 15, 2, 0, 2, 0, 2, 0, 16, 2, 0, 16, 0, 0, 2, 0, - 16, 2, 0, 17, 17, 2, 0, 2, 0, 18, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 19, 2, 0, 19, 2, 0, 19, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, - 19, 2, 0, 2, 0, 20, 21, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 22, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 23, 2, 0, 24, 25, 0, 0, 2, 0, 26, 27, 28, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 30, 30, 30, 0, 31, 0, 32, 32, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 0, 0, 0, 0, 34, 0, 0, 2, 0, 35, 2, 0, 0, 22, 22, 22, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 37, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 39, - 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, - 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, - 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 41, 0, 41, 0, 41, 0, 0, 0, 0, 0, 0, 0, - 0, 41, 41, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, 0, - 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, - 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, - 42, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 41, 46, 46, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, - 48, 48, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 0, 0, 0, 50, 51, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 55, 56, 57, 0, - 0, 2, 0, 2, 0, 2, 0, 58, 59, 60, 61, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 62, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 63, - 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 64, 0, 0, 2, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 65, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66 -}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 4, 2, 0, 2, 0, 2, 0, + 0, 0, 5, 2, 0, 2, 0, 6, 2, 0, 7, 7, 2, 0, 0, 8, 9, 10, 2, 0, 7, 11, 0, 12, 13, 2, 0, 0, 0, + 12, 14, 0, 15, 2, 0, 2, 0, 2, 0, 16, 2, 0, 16, 0, 0, 2, 0, 16, 2, 0, 17, 17, 2, 0, 2, 0, 18, 2, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 19, 2, 0, 19, 2, 0, 19, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 19, 2, + 0, 2, 0, 20, 21, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 22, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 23, 2, 0, 24, 25, 0, 0, 2, 0, 26, 27, 28, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 30, 30, 30, 0, 31, 0, 32, 32, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, + 0, 0, 34, 0, 0, 2, 0, 35, 2, 0, 0, 22, 22, 22, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 37, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 0, 39, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, + 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, + 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 41, 0, 41, 0, 41, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, + 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 42, + 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 41, 41, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 46, 46, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 47, 47, 48, 48, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 50, 51, 0, 0, 0, + 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 55, 56, 57, 0, 0, 2, + 0, 2, 0, 2, 0, 58, 59, 60, 61, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 2, 0, 2, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 63, 2, 0, 2, 0, 2, 0, + 2, 0, 2, 0, 0, 0, 0, 2, 0, 64, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 2, 0, 2, 0, 2, 0, 2, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66}; -int32_t lowercase_offset(int32_t codepoint) { - int offset_index; +int32_t lowercase_offset(int32_t codepoint) +{ + int offset_index; if (codepoint >= 66600) return 0; offset_index = lowercase_offset_t2[(lowercase_offset_t1[codepoint >> 6] << 6) + (codepoint & 63)]; return lowercase_offset_values[offset_index]; diff --git a/src/Datadog.Trace.ClrProfiler.Native/module_metadata.h b/src/Datadog.Trace.ClrProfiler.Native/module_metadata.h index 898b855c94..89635bf62e 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/module_metadata.h +++ b/src/Datadog.Trace.ClrProfiler.Native/module_metadata.h @@ -11,37 +11,33 @@ #include "integration.h" #include "string.h" -namespace trace { - -class ModuleMetadata { - private: - std::unordered_map wrapper_refs{}; - std::unordered_map wrapper_parent_type{}; - std::unordered_set failed_wrapper_keys{}; - CallTargetTokens* calltargetTokens = nullptr; - - public: - const ComPtr metadata_import{}; - const ComPtr metadata_emit{}; - const ComPtr assembly_import{}; - const ComPtr assembly_emit{}; - WSTRING assemblyName = WStr(""); - AppDomainID app_domain_id; - GUID module_version_id; - std::vector integrations = {}; - AssemblyProperty* corAssemblyProperty{}; - - - ModuleMetadata(ComPtr metadata_import, - ComPtr metadata_emit, - ComPtr assembly_import, - ComPtr assembly_emit, - WSTRING assembly_name, - AppDomainID app_domain_id, - GUID module_version_id, - std::vector integrations, - AssemblyProperty* corAssemblyProperty) - : metadata_import(metadata_import), +namespace trace +{ + +class ModuleMetadata +{ +private: + std::unordered_map wrapper_refs{}; + std::unordered_map wrapper_parent_type{}; + std::unordered_set failed_wrapper_keys{}; + CallTargetTokens* calltargetTokens = nullptr; + +public: + const ComPtr metadata_import{}; + const ComPtr metadata_emit{}; + const ComPtr assembly_import{}; + const ComPtr assembly_emit{}; + WSTRING assemblyName = WStr(""); + AppDomainID app_domain_id; + GUID module_version_id; + std::vector integrations = {}; + AssemblyProperty* corAssemblyProperty{}; + + ModuleMetadata(ComPtr metadata_import, ComPtr metadata_emit, + ComPtr assembly_import, ComPtr assembly_emit, + WSTRING assembly_name, AppDomainID app_domain_id, GUID module_version_id, + std::vector integrations, AssemblyProperty* corAssemblyProperty) : + metadata_import(metadata_import), metadata_emit(metadata_emit), assembly_import(assembly_import), assembly_emit(assembly_emit), @@ -49,76 +45,89 @@ class ModuleMetadata { app_domain_id(app_domain_id), module_version_id(module_version_id), integrations(integrations), - corAssemblyProperty(corAssemblyProperty) {} + corAssemblyProperty(corAssemblyProperty) + { + } + + bool TryGetWrapperMemberRef(const WSTRING& keyIn, mdMemberRef& valueOut) const + { + const auto search = wrapper_refs.find(keyIn); + + if (search != wrapper_refs.end()) + { + valueOut = search->second; + return true; + } + + return false; + } + + bool TryGetWrapperParentTypeRef(const WSTRING& keyIn, mdTypeRef& valueOut) const + { + const auto search = wrapper_parent_type.find(keyIn); - bool TryGetWrapperMemberRef(const WSTRING& keyIn, - mdMemberRef& valueOut) const { - const auto search = wrapper_refs.find(keyIn); + if (search != wrapper_parent_type.end()) + { + valueOut = search->second; + return true; + } - if (search != wrapper_refs.end()) { - valueOut = search->second; - return true; + return false; } - return false; - } + bool IsFailedWrapperMemberKey(const WSTRING& key) const + { + const auto search = failed_wrapper_keys.find(key); - bool TryGetWrapperParentTypeRef(const WSTRING& keyIn, - mdTypeRef& valueOut) const { - const auto search = wrapper_parent_type.find(keyIn); + if (search != failed_wrapper_keys.end()) + { + return true; + } - if (search != wrapper_parent_type.end()) { - valueOut = search->second; - return true; + return false; } - return false; - } + void SetWrapperMemberRef(const WSTRING& keyIn, const mdMemberRef valueIn) + { + wrapper_refs[keyIn] = valueIn; + } - bool IsFailedWrapperMemberKey(const WSTRING& key) const { - const auto search = failed_wrapper_keys.find(key); + void SetWrapperParentTypeRef(const WSTRING& keyIn, const mdTypeRef valueIn) + { + wrapper_parent_type[keyIn] = valueIn; + } - if (search != failed_wrapper_keys.end()) { - return true; + void SetFailedWrapperMemberKey(const WSTRING& key) + { + failed_wrapper_keys.insert(key); } - return false; - } - - void SetWrapperMemberRef(const WSTRING& keyIn, const mdMemberRef valueIn) { - wrapper_refs[keyIn] = valueIn; - } - - void SetWrapperParentTypeRef(const WSTRING& keyIn, const mdTypeRef valueIn) { - wrapper_parent_type[keyIn] = valueIn; - } - - void SetFailedWrapperMemberKey(const WSTRING& key) { - failed_wrapper_keys.insert(key); - } - - inline std::vector GetMethodReplacementsForCaller( - const trace::FunctionInfo& caller) { - std::vector enabled; - for (auto& i : integrations) { - if ((i.replacement.caller_method.type_name.empty() || - i.replacement.caller_method.type_name == caller.type.name) && - (i.replacement.caller_method.method_name.empty() || - i.replacement.caller_method.method_name == caller.name)) { - enabled.push_back(i.replacement); - } + inline std::vector GetMethodReplacementsForCaller(const trace::FunctionInfo& caller) + { + std::vector enabled; + for (auto& i : integrations) + { + if ((i.replacement.caller_method.type_name.empty() || + i.replacement.caller_method.type_name == caller.type.name) && + (i.replacement.caller_method.method_name.empty() || + i.replacement.caller_method.method_name == caller.name)) + { + enabled.push_back(i.replacement); + } + } + return enabled; } - return enabled; - } - inline CallTargetTokens* GetCallTargetTokens() { - if (calltargetTokens == nullptr) { - calltargetTokens = new CallTargetTokens(this); + inline CallTargetTokens* GetCallTargetTokens() + { + if (calltargetTokens == nullptr) + { + calltargetTokens = new CallTargetTokens(this); + } + return calltargetTokens; } - return calltargetTokens; - } }; -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_MODULE_METADATA_H_ +#endif // DD_CLR_PROFILER_MODULE_METADATA_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/pal.h b/src/Datadog.Trace.ClrProfiler.Native/pal.h index c1b540db75..02393d6558 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/pal.h +++ b/src/Datadog.Trace.ClrProfiler.Native/pal.h @@ -3,14 +3,14 @@ #ifdef _WIN32 -#include -#include #include "windows.h" +#include +#include #else -#include #include +#include #endif @@ -19,80 +19,86 @@ #endif #include "environment_variables.h" -#include "string.h" // NOLINT +#include "string.h" // NOLINT #include "util.h" -namespace trace { +namespace trace +{ -inline WSTRING DatadogLogFilePath(const std::string& file_name_suffix) { - WSTRING directory = GetEnvironmentValue(environment::log_directory); +inline WSTRING DatadogLogFilePath(const std::string& file_name_suffix) +{ + WSTRING directory = GetEnvironmentValue(environment::log_directory); - if (directory.length() > 0) { - return directory + + if (directory.length() > 0) + { + return directory + #ifdef _WIN32 - WStr('\\') + + WStr('\\') + #else - WStr('/') + + WStr('/') + #endif - ToWSTRING("dotnet-tracer-native" + file_name_suffix + ".log"); - } + ToWSTRING("dotnet-tracer-native" + file_name_suffix + ".log"); + } - WSTRING path = GetEnvironmentValue(environment::log_path); + WSTRING path = GetEnvironmentValue(environment::log_path); - if (path.length() > 0) { - return path; - } + if (path.length() > 0) + { + return path; + } #ifdef _WIN32 - char* p_program_data; - size_t length; - const errno_t result = _dupenv_s(&p_program_data, &length, "PROGRAMDATA"); - std::string program_data; - - if (SUCCEEDED(result) && p_program_data != nullptr && length > 0) { - program_data = std::string(p_program_data); - } else { - program_data = R"(C:\ProgramData)"; - } - - return ToWSTRING(program_data + - R"(\OpenTelemetry .NET AutoInstrumentation\logs\dotnet-tracer-native)" + - file_name_suffix + ".log"); + char* p_program_data; + size_t length; + const errno_t result = _dupenv_s(&p_program_data, &length, "PROGRAMDATA"); + std::string program_data; + + if (SUCCEEDED(result) && p_program_data != nullptr && length > 0) + { + program_data = std::string(p_program_data); + } + else + { + program_data = R"(C:\ProgramData)"; + } + + return ToWSTRING(program_data + R"(\OpenTelemetry .NET AutoInstrumentation\logs\dotnet-tracer-native)" + file_name_suffix + ".log"); #else - return ToWSTRING("/var/log/opentelemetry/dotnet/dotnet-tracer-native" + - file_name_suffix + ".log"); + return ToWSTRING("/var/log/opentelemetry/dotnet/dotnet-tracer-native" + file_name_suffix + ".log"); #endif } -inline WSTRING GetCurrentProcessName() { +inline WSTRING GetCurrentProcessName() +{ #ifdef _WIN32 - const DWORD length = 260; - WCHAR buffer[length]{}; + const DWORD length = 260; + WCHAR buffer[length]{}; - const DWORD len = GetModuleFileName(nullptr, buffer, length); - const WSTRING current_process_path(buffer); - return std::filesystem::path(current_process_path).filename(); + const DWORD len = GetModuleFileName(nullptr, buffer, length); + const WSTRING current_process_path(buffer); + return std::filesystem::path(current_process_path).filename(); #elif MACOS - const int length = 260; - char* buffer = new char[length]; - proc_name(getpid(), buffer, length); - return ToWSTRING(std::string(buffer)); + const int length = 260; + char* buffer = new char[length]; + proc_name(getpid(), buffer, length); + return ToWSTRING(std::string(buffer)); #else - std::fstream comm("/proc/self/comm"); - std::string name; - std::getline(comm, name); - return ToWSTRING(name); + std::fstream comm("/proc/self/comm"); + std::string name; + std::getline(comm, name); + return ToWSTRING(name); #endif } -inline int GetPID() { +inline int GetPID() +{ #ifdef _WIN32 - return _getpid(); + return _getpid(); #else - return getpid(); + return getpid(); #endif } } // namespace trace -#endif // DD_CLR_PROFILER_PAL_H_ +#endif // DD_CLR_PROFILER_PAL_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/rejit_handler.cpp b/src/Datadog.Trace.ClrProfiler.Native/rejit_handler.cpp index 2770658727..54bd215ebe 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/rejit_handler.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/rejit_handler.cpp @@ -1,194 +1,209 @@ #include "rejit_handler.h" -namespace trace { - -RejitItem::RejitItem(int length, ModuleID* modulesId, mdMethodDef* methodDefs) { - length_ = length; - if (length > 0) { - ModuleID* myModulesIds = new ModuleID[length]; - memcpy(myModulesIds, modulesId, length * sizeof(ModuleID)); - moduleIds_ = myModulesIds; - - mdMethodDef* myMethodDefs = new mdMethodDef[length]; - memcpy(myMethodDefs, methodDefs, length * sizeof(mdMethodDef)); - methodDefs_ = myMethodDefs; - } +namespace trace +{ + +RejitItem::RejitItem(int length, ModuleID* modulesId, mdMethodDef* methodDefs) +{ + length_ = length; + if (length > 0) + { + ModuleID* myModulesIds = new ModuleID[length]; + memcpy(myModulesIds, modulesId, length * sizeof(ModuleID)); + moduleIds_ = myModulesIds; + + mdMethodDef* myMethodDefs = new mdMethodDef[length]; + memcpy(myMethodDefs, methodDefs, length * sizeof(mdMethodDef)); + methodDefs_ = myMethodDefs; + } } -void RejitItem::DeleteArray() { - if (moduleIds_ != nullptr) { - delete[] moduleIds_; - moduleIds_ = nullptr; - } - if (methodDefs_ != nullptr) { - delete[] methodDefs_; - methodDefs_ = nullptr; - } +void RejitItem::DeleteArray() +{ + if (moduleIds_ != nullptr) + { + delete[] moduleIds_; + moduleIds_ = nullptr; + } + if (methodDefs_ != nullptr) + { + delete[] methodDefs_; + methodDefs_ = nullptr; + } } -void RejitHandlerModuleMethod::AddFunctionId(FunctionID functionId) { - std::lock_guard guard(functionsIds_lock); - auto moduleHandler = (RejitHandlerModule*)module; - auto rejitHandler = (RejitHandler*)moduleHandler->GetHandler(); - functionsIds.insert(functionId); - rejitHandler->_addFunctionToSet(functionId, this); +void RejitHandlerModuleMethod::AddFunctionId(FunctionID functionId) +{ + std::lock_guard guard(functionsIds_lock); + auto moduleHandler = (RejitHandlerModule*) module; + auto rejitHandler = (RejitHandler*) moduleHandler->GetHandler(); + functionsIds.insert(functionId); + rejitHandler->_addFunctionToSet(functionId, this); } -bool RejitHandlerModuleMethod::ExistFunctionId(FunctionID functionId) { - std::lock_guard guard(functionsIds_lock); - return functionsIds.find(functionId) != functionsIds.end(); +bool RejitHandlerModuleMethod::ExistFunctionId(FunctionID functionId) +{ + std::lock_guard guard(functionsIds_lock); + return functionsIds.find(functionId) != functionsIds.end(); } -RejitHandlerModuleMethod* RejitHandlerModule::GetOrAddMethod(mdMethodDef methodDef) { - std::lock_guard guard(methods_lock); +RejitHandlerModuleMethod* RejitHandlerModule::GetOrAddMethod(mdMethodDef methodDef) +{ + std::lock_guard guard(methods_lock); - auto find_res = methods.find(methodDef); - if (find_res != methods.end()) { - return find_res->second; - } + auto find_res = methods.find(methodDef); + if (find_res != methods.end()) + { + return find_res->second; + } - RejitHandlerModuleMethod* methodHandler = new RejitHandlerModuleMethod(methodDef, this); - methods[methodDef] = methodHandler; - return methodHandler; + RejitHandlerModuleMethod* methodHandler = new RejitHandlerModuleMethod(methodDef, this); + methods[methodDef] = methodHandler; + return methodHandler; } -bool RejitHandlerModule::TryGetMethod(mdMethodDef methodDef, - RejitHandlerModuleMethod** methodHandler) { - std::lock_guard guard(methods_lock); - - auto find_res = methods.find(methodDef); - if (find_res != methods.end()) { - *methodHandler = find_res->second; - return true; - } - *methodHandler = nullptr; - return false; +bool RejitHandlerModule::TryGetMethod(mdMethodDef methodDef, RejitHandlerModuleMethod** methodHandler) +{ + std::lock_guard guard(methods_lock); + + auto find_res = methods.find(methodDef); + if (find_res != methods.end()) + { + *methodHandler = find_res->second; + return true; + } + *methodHandler = nullptr; + return false; } -RejitHandlerModuleMethod* RejitHandler::GetModuleMethodFromFunctionId( - FunctionID functionId) { - { - std::lock_guard guard(methodByFunctionId_lock); - auto find_res = methodByFunctionId.find(functionId); - if (find_res != methodByFunctionId.end()) { - return find_res->second; +RejitHandlerModuleMethod* RejitHandler::GetModuleMethodFromFunctionId(FunctionID functionId) +{ + { + std::lock_guard guard(methodByFunctionId_lock); + auto find_res = methodByFunctionId.find(functionId); + if (find_res != methodByFunctionId.end()) + { + return find_res->second; + } + } + + ModuleID moduleId; + mdToken function_token = mdTokenNil; + + HRESULT hr = profilerInfo->GetFunctionInfo(functionId, nullptr, &moduleId, &function_token); + + if (FAILED(hr)) + { + Warn("RejitHandler::GetModuleMethodFromFunctionId: Call to " + "ICorProfilerInfo4.GetFunctionInfo() " + "failed for ", + functionId); + methodByFunctionId[functionId] = nullptr; + return nullptr; } - } - - ModuleID moduleId; - mdToken function_token = mdTokenNil; - - HRESULT hr = profilerInfo->GetFunctionInfo(functionId, nullptr, &moduleId, - &function_token); - - if (FAILED(hr)) { - Warn( - "RejitHandler::GetModuleMethodFromFunctionId: Call to " - "ICorProfilerInfo4.GetFunctionInfo() " - "failed for ", - functionId); - methodByFunctionId[functionId] = nullptr; - return nullptr; - } - - auto moduleHandler = GetOrAddModule(moduleId); - auto methodHandler = moduleHandler->GetOrAddMethod(function_token); - methodHandler->AddFunctionId(functionId); - return methodHandler; + + auto moduleHandler = GetOrAddModule(moduleId); + auto methodHandler = moduleHandler->GetOrAddMethod(function_token); + methodHandler->AddFunctionId(functionId); + return methodHandler; } -RejitHandlerModule* RejitHandler::GetOrAddModule(ModuleID moduleId) { - std::lock_guard guard(modules_lock); +RejitHandlerModule* RejitHandler::GetOrAddModule(ModuleID moduleId) +{ + std::lock_guard guard(modules_lock); - auto find_res = modules.find(moduleId); - if (find_res != modules.end()) { - return find_res->second; - } + auto find_res = modules.find(moduleId); + if (find_res != modules.end()) + { + return find_res->second; + } - RejitHandlerModule* moduleHandler = new RejitHandlerModule(moduleId, this); - modules[moduleId] = moduleHandler; - return moduleHandler; + RejitHandlerModule* moduleHandler = new RejitHandlerModule(moduleId, this); + modules[moduleId] = moduleHandler; + return moduleHandler; } -bool RejitHandler::TryGetModule(ModuleID moduleId, - RejitHandlerModule** moduleHandler) { - std::lock_guard guard(modules_lock); - - auto find_res = modules.find(moduleId); - if (find_res != modules.end()) { - *moduleHandler = find_res->second; - return true; - } - *moduleHandler = nullptr; - return false; +bool RejitHandler::TryGetModule(ModuleID moduleId, RejitHandlerModule** moduleHandler) +{ + std::lock_guard guard(modules_lock); + + auto find_res = modules.find(moduleId); + if (find_res != modules.end()) + { + *moduleHandler = find_res->second; + return true; + } + *moduleHandler = nullptr; + return false; } -HRESULT RejitHandler::NotifyReJITParameters( - ModuleID moduleId, mdMethodDef methodId, - ICorProfilerFunctionControl* pFunctionControl, ModuleMetadata* metadata) { - auto moduleHandler = GetOrAddModule(moduleId); - moduleHandler->SetModuleMetadata(metadata); - auto methodHandler = moduleHandler->GetOrAddMethod(methodId); - methodHandler->SetFunctionControl(pFunctionControl); - - if (methodHandler->GetMethodDef() == mdMethodDefNil) { - Warn( - "NotifyReJITCompilationStarted: mdMethodDef is missing for " - "MethodDef: ", - methodId); - return S_FALSE; - } - - if (methodHandler->GetFunctionControl() == nullptr) { - Warn( - "NotifyReJITCompilationStarted: ICorProfilerFunctionControl is missing " - "for " - "MethodDef: ", - methodId); - return S_FALSE; - } - - if (methodHandler->GetFunctionInfo() == nullptr) { - Warn( - "NotifyReJITCompilationStarted: FunctionInfo is missing for " - "MethodDef: ", - methodId); - return S_FALSE; - } - - if (methodHandler->GetMethodReplacement() == nullptr) { - Warn( - "NotifyReJITCompilationStarted: MethodReplacement is missing for " - "MethodDef: ", - methodId); - return S_FALSE; - } - - if (moduleHandler->GetModuleId() == 0) { - Warn( - "NotifyReJITCompilationStarted: ModuleID is missing for " - "MethodDef: ", - methodId); - return S_FALSE; - } - - if (moduleHandler->GetModuleMetadata() == nullptr) { - Warn( - "NotifyReJITCompilationStarted: ModuleMetadata is missing for " - "MethodDef: ", - methodId); - return S_FALSE; - } - - return rewriteCallback(moduleHandler, methodHandler); +HRESULT RejitHandler::NotifyReJITParameters(ModuleID moduleId, mdMethodDef methodId, + ICorProfilerFunctionControl* pFunctionControl, ModuleMetadata* metadata) +{ + auto moduleHandler = GetOrAddModule(moduleId); + moduleHandler->SetModuleMetadata(metadata); + auto methodHandler = moduleHandler->GetOrAddMethod(methodId); + methodHandler->SetFunctionControl(pFunctionControl); + + if (methodHandler->GetMethodDef() == mdMethodDefNil) + { + Warn("NotifyReJITCompilationStarted: mdMethodDef is missing for " + "MethodDef: ", + methodId); + return S_FALSE; + } + + if (methodHandler->GetFunctionControl() == nullptr) + { + Warn("NotifyReJITCompilationStarted: ICorProfilerFunctionControl is missing " + "for " + "MethodDef: ", + methodId); + return S_FALSE; + } + + if (methodHandler->GetFunctionInfo() == nullptr) + { + Warn("NotifyReJITCompilationStarted: FunctionInfo is missing for " + "MethodDef: ", + methodId); + return S_FALSE; + } + + if (methodHandler->GetMethodReplacement() == nullptr) + { + Warn("NotifyReJITCompilationStarted: MethodReplacement is missing for " + "MethodDef: ", + methodId); + return S_FALSE; + } + + if (moduleHandler->GetModuleId() == 0) + { + Warn("NotifyReJITCompilationStarted: ModuleID is missing for " + "MethodDef: ", + methodId); + return S_FALSE; + } + + if (moduleHandler->GetModuleMetadata() == nullptr) + { + Warn("NotifyReJITCompilationStarted: ModuleMetadata is missing for " + "MethodDef: ", + methodId); + return S_FALSE; + } + + return rewriteCallback(moduleHandler, methodHandler); } -HRESULT RejitHandler::NotifyReJITCompilationStarted(FunctionID functionId, ReJITID rejitId) { - return S_OK; +HRESULT RejitHandler::NotifyReJITCompilationStarted(FunctionID functionId, ReJITID rejitId) +{ + return S_OK; } -void RejitHandler::_addFunctionToSet(FunctionID functionId, - RejitHandlerModuleMethod* method) { - std::lock_guard guard(methodByFunctionId_lock); - methodByFunctionId[functionId] = method; +void RejitHandler::_addFunctionToSet(FunctionID functionId, RejitHandlerModuleMethod* method) +{ + std::lock_guard guard(methodByFunctionId_lock); + methodByFunctionId[functionId] = method; } -} // namespace trace \ No newline at end of file +} // namespace trace \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/rejit_handler.h b/src/Datadog.Trace.ClrProfiler.Native/rejit_handler.h index 2636a82e86..21a6cc11f1 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/rejit_handler.h +++ b/src/Datadog.Trace.ClrProfiler.Native/rejit_handler.h @@ -12,170 +12,206 @@ #include "logging.h" #include "module_metadata.h" -namespace trace { +namespace trace +{ -struct RejitItem { - int length_ = 0; - ModuleID* moduleIds_ = nullptr; - mdMethodDef* methodDefs_ = nullptr; +struct RejitItem +{ + int length_ = 0; + ModuleID* moduleIds_ = nullptr; + mdMethodDef* methodDefs_ = nullptr; - RejitItem(int length, ModuleID* modulesId, mdMethodDef* methodDefs); - void DeleteArray(); + RejitItem(int length, ModuleID* modulesId, mdMethodDef* methodDefs); + void DeleteArray(); }; - /// /// Rejit handler representation of a method /// -class RejitHandlerModuleMethod { - private: - mdMethodDef methodDef; - ICorProfilerFunctionControl* pFunctionControl; - FunctionInfo* functionInfo; - MethodReplacement* methodReplacement; - std::mutex functionsIds_lock; - std::unordered_set functionsIds; - void* module; - - public: - RejitHandlerModuleMethod(mdMethodDef methodDef, void* module) { - this->methodDef = methodDef; - this->pFunctionControl = nullptr; - this->module = module; - this->functionInfo = nullptr; - this->methodReplacement = nullptr; - } - inline mdMethodDef GetMethodDef() { return this->methodDef; } - inline ICorProfilerFunctionControl* GetFunctionControl() { - return this->pFunctionControl; - } - inline void SetFunctionControl( - ICorProfilerFunctionControl* pFunctionControl) { - this->pFunctionControl = pFunctionControl; - } - inline FunctionInfo* GetFunctionInfo() { return this->functionInfo; } - inline void SetFunctionInfo(FunctionInfo* functionInfo) { - this->functionInfo = functionInfo; - } - inline MethodReplacement* GetMethodReplacement() { - return this->methodReplacement; - } - inline void SetMethodReplacement(MethodReplacement* methodReplacement) { - this->methodReplacement = methodReplacement; - } - inline void* GetModule() { return this->module; } - void AddFunctionId(FunctionID functionId); - bool ExistFunctionId(FunctionID functionId); +class RejitHandlerModuleMethod +{ +private: + mdMethodDef methodDef; + ICorProfilerFunctionControl* pFunctionControl; + FunctionInfo* functionInfo; + MethodReplacement* methodReplacement; + std::mutex functionsIds_lock; + std::unordered_set functionsIds; + void* module; + +public: + RejitHandlerModuleMethod(mdMethodDef methodDef, void* module) + { + this->methodDef = methodDef; + this->pFunctionControl = nullptr; + this->module = module; + this->functionInfo = nullptr; + this->methodReplacement = nullptr; + } + inline mdMethodDef GetMethodDef() + { + return this->methodDef; + } + inline ICorProfilerFunctionControl* GetFunctionControl() + { + return this->pFunctionControl; + } + inline void SetFunctionControl(ICorProfilerFunctionControl* pFunctionControl) + { + this->pFunctionControl = pFunctionControl; + } + inline FunctionInfo* GetFunctionInfo() + { + return this->functionInfo; + } + inline void SetFunctionInfo(FunctionInfo* functionInfo) + { + this->functionInfo = functionInfo; + } + inline MethodReplacement* GetMethodReplacement() + { + return this->methodReplacement; + } + inline void SetMethodReplacement(MethodReplacement* methodReplacement) + { + this->methodReplacement = methodReplacement; + } + inline void* GetModule() + { + return this->module; + } + void AddFunctionId(FunctionID functionId); + bool ExistFunctionId(FunctionID functionId); }; /// /// Rejit handler representation of a module /// -class RejitHandlerModule { - private: - ModuleID moduleId; - ModuleMetadata* metadata; - std::mutex methods_lock; - std::unordered_map methods; - void* handler; - - public: - RejitHandlerModule(ModuleID moduleId, void* handler) { - this->moduleId = moduleId; - this->metadata = nullptr; - this->handler = handler; - } - inline ModuleID GetModuleId() { return this->moduleId; } - inline ModuleMetadata* GetModuleMetadata() { return this->metadata; } - inline void SetModuleMetadata(ModuleMetadata* metadata) { - this->metadata = metadata; - } - inline void* GetHandler() { return this->handler; } - RejitHandlerModuleMethod* GetOrAddMethod(mdMethodDef methodDef); - bool TryGetMethod(mdMethodDef methodDef, - RejitHandlerModuleMethod** methodHandler); +class RejitHandlerModule +{ +private: + ModuleID moduleId; + ModuleMetadata* metadata; + std::mutex methods_lock; + std::unordered_map methods; + void* handler; + +public: + RejitHandlerModule(ModuleID moduleId, void* handler) + { + this->moduleId = moduleId; + this->metadata = nullptr; + this->handler = handler; + } + inline ModuleID GetModuleId() + { + return this->moduleId; + } + inline ModuleMetadata* GetModuleMetadata() + { + return this->metadata; + } + inline void SetModuleMetadata(ModuleMetadata* metadata) + { + this->metadata = metadata; + } + inline void* GetHandler() + { + return this->handler; + } + RejitHandlerModuleMethod* GetOrAddMethod(mdMethodDef methodDef); + bool TryGetMethod(mdMethodDef methodDef, RejitHandlerModuleMethod** methodHandler); }; /// -/// Class to control the ReJIT mechanism and to make sure all the required +/// Class to control the ReJIT mechanism and to make sure all the required /// information is present before calling a method rewrite /// -class RejitHandler { - private: - std::mutex modules_lock; - std::unordered_map modules; - std::mutex methodByFunctionId_lock; - std::unordered_map methodByFunctionId; - ICorProfilerInfo4* profilerInfo; - std::function rewriteCallback; - - BlockingQueue* rejit_queue_; - std::thread* rejit_queue_thread_; - - RejitHandlerModuleMethod* GetModuleMethodFromFunctionId(FunctionID functionId); - - public: - RejitHandler(ICorProfilerInfo4* pInfo, - std::function rewriteCallback) { - this->profilerInfo = pInfo; - this->rewriteCallback = rewriteCallback; - this->rejit_queue_ = new BlockingQueue(); - this->rejit_queue_thread_ = new std::thread(enqueue_thread, this); - } - RejitHandlerModule* GetOrAddModule(ModuleID moduleId); - - bool TryGetModule(ModuleID moduleId, RejitHandlerModule** moduleHandler); - - HRESULT NotifyReJITParameters(ModuleID moduleId, mdMethodDef methodId, - ICorProfilerFunctionControl* pFunctionControl, - ModuleMetadata* metadata); - HRESULT NotifyReJITCompilationStarted(FunctionID functionId, ReJITID rejitId); - void _addFunctionToSet(FunctionID functionId, - RejitHandlerModuleMethod* method); - - void EnqueueForRejit(size_t length, ModuleID* moduleIds, mdMethodDef* methodDefs) { - rejit_queue_->push(RejitItem((int)length, moduleIds, methodDefs)); - } - - void Shutdown() { - rejit_queue_->push(RejitItem(-1, nullptr, nullptr)); - if (rejit_queue_thread_->joinable()) { - rejit_queue_thread_->join(); - } - } - - private: - static void enqueue_thread(RejitHandler* handler) { - auto queue = handler->rejit_queue_; - auto profilerInfo = handler->profilerInfo; - - Info("Initializing ReJIT request thread."); - HRESULT hr = profilerInfo->InitializeCurrentThread(); - if (FAILED(hr)) { - Warn("Call to InitializeCurrentThread fail."); - } - - while (true) { - RejitItem item = queue->pop(); - - if (item.length_ == -1) { - break; - } - - hr = profilerInfo->RequestReJIT((ULONG)item.length_, item.moduleIds_, item.methodDefs_); - if (SUCCEEDED(hr)) { - Info("Request ReJIT done for ", item.length_, " methods"); - } else { - Warn("Error requesting ReJIT for ", item.length_, " methods"); - } - - item.DeleteArray(); - } - Info("Exiting ReJIT request thread."); - } +class RejitHandler +{ +private: + std::mutex modules_lock; + std::unordered_map modules; + std::mutex methodByFunctionId_lock; + std::unordered_map methodByFunctionId; + ICorProfilerInfo4* profilerInfo; + std::function rewriteCallback; + + BlockingQueue* rejit_queue_; + std::thread* rejit_queue_thread_; + + RejitHandlerModuleMethod* GetModuleMethodFromFunctionId(FunctionID functionId); + +public: + RejitHandler(ICorProfilerInfo4* pInfo, + std::function rewriteCallback) + { + this->profilerInfo = pInfo; + this->rewriteCallback = rewriteCallback; + this->rejit_queue_ = new BlockingQueue(); + this->rejit_queue_thread_ = new std::thread(enqueue_thread, this); + } + RejitHandlerModule* GetOrAddModule(ModuleID moduleId); + + bool TryGetModule(ModuleID moduleId, RejitHandlerModule** moduleHandler); + + HRESULT NotifyReJITParameters(ModuleID moduleId, mdMethodDef methodId, + ICorProfilerFunctionControl* pFunctionControl, ModuleMetadata* metadata); + HRESULT NotifyReJITCompilationStarted(FunctionID functionId, ReJITID rejitId); + void _addFunctionToSet(FunctionID functionId, RejitHandlerModuleMethod* method); + + void EnqueueForRejit(size_t length, ModuleID* moduleIds, mdMethodDef* methodDefs) + { + rejit_queue_->push(RejitItem((int) length, moduleIds, methodDefs)); + } + + void Shutdown() + { + rejit_queue_->push(RejitItem(-1, nullptr, nullptr)); + if (rejit_queue_thread_->joinable()) + { + rejit_queue_thread_->join(); + } + } + +private: + static void enqueue_thread(RejitHandler* handler) + { + auto queue = handler->rejit_queue_; + auto profilerInfo = handler->profilerInfo; + + Info("Initializing ReJIT request thread."); + HRESULT hr = profilerInfo->InitializeCurrentThread(); + if (FAILED(hr)) + { + Warn("Call to InitializeCurrentThread fail."); + } + + while (true) + { + RejitItem item = queue->pop(); + + if (item.length_ == -1) + { + break; + } + + hr = profilerInfo->RequestReJIT((ULONG) item.length_, item.moduleIds_, item.methodDefs_); + if (SUCCEEDED(hr)) + { + Info("Request ReJIT done for ", item.length_, " methods"); + } + else + { + Warn("Error requesting ReJIT for ", item.length_, " methods"); + } + + item.DeleteArray(); + } + Info("Exiting ReJIT request thread."); + } }; -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_REJIT_HANDLER_H_ \ No newline at end of file +#endif // DD_CLR_PROFILER_REJIT_HANDLER_H_ \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/resource.h b/src/Datadog.Trace.ClrProfiler.Native/resource.h index 2e4ce6b77d..d79bb130c4 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/resource.h +++ b/src/Datadog.Trace.ClrProfiler.Native/resource.h @@ -1,18 +1,18 @@ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by Resource.rc -#define NETCOREAPP20_MANAGED_ENTRYPOINT_DLL 401 +#define NETCOREAPP20_MANAGED_ENTRYPOINT_DLL 401 #define NETCOREAPP20_MANAGED_ENTRYPOINT_SYMBOLS 402 -#define NET45_MANAGED_ENTRYPOINT_DLL 403 -#define NET45_MANAGED_ENTRYPOINT_SYMBOLS 404 +#define NET45_MANAGED_ENTRYPOINT_DLL 403 +#define NET45_MANAGED_ENTRYPOINT_SYMBOLS 404 // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/src/Datadog.Trace.ClrProfiler.Native/sig_helpers.cpp b/src/Datadog.Trace.ClrProfiler.Native/sig_helpers.cpp index cb8731377f..af53e2a1f6 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/sig_helpers.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/sig_helpers.cpp @@ -1,266 +1,312 @@ #include "sig_helpers.h" -namespace trace { - -bool ParseNumber(PCCOR_SIGNATURE* p_sig, ULONG* number) { - ULONG result = CorSigUncompressData(*p_sig, number); - if (result == -1) { - return false; - } +namespace trace +{ + +bool ParseNumber(PCCOR_SIGNATURE* p_sig, ULONG* number) +{ + ULONG result = CorSigUncompressData(*p_sig, number); + if (result == -1) + { + return false; + } - *p_sig += result; - return true; + *p_sig += result; + return true; } -bool ParseTypeDefOrRefEncoded(PCCOR_SIGNATURE* p_sig) { - mdToken type_token; - ULONG result; - result = CorSigUncompressToken(*p_sig, &type_token); - if (result == -1) { - return false; - } +bool ParseTypeDefOrRefEncoded(PCCOR_SIGNATURE* p_sig) +{ + mdToken type_token; + ULONG result; + result = CorSigUncompressToken(*p_sig, &type_token); + if (result == -1) + { + return false; + } - *p_sig += result; - return true; + *p_sig += result; + return true; } -bool ParseCustomMod(PCCOR_SIGNATURE* p_sig) { - if (**p_sig == ELEMENT_TYPE_CMOD_OPT || **p_sig == ELEMENT_TYPE_CMOD_REQD) { - *p_sig += 1; - return ParseTypeDefOrRefEncoded(p_sig); - } +bool ParseCustomMod(PCCOR_SIGNATURE* p_sig) +{ + if (**p_sig == ELEMENT_TYPE_CMOD_OPT || **p_sig == ELEMENT_TYPE_CMOD_REQD) + { + *p_sig += 1; + return ParseTypeDefOrRefEncoded(p_sig); + } - return false; + return false; } -bool ParseOptionalCustomMods(PCCOR_SIGNATURE* p_sig) { - while (true) { - switch (**p_sig) { - case ELEMENT_TYPE_CMOD_OPT: - case ELEMENT_TYPE_CMOD_REQD: - if (!ParseCustomMod(p_sig)) { - return false; +bool ParseOptionalCustomMods(PCCOR_SIGNATURE* p_sig) +{ + while (true) + { + switch (**p_sig) + { + case ELEMENT_TYPE_CMOD_OPT: + case ELEMENT_TYPE_CMOD_REQD: + if (!ParseCustomMod(p_sig)) + { + return false; + } + break; + default: + return true; } - break; - default: - return true; } - } - return false; + return false; } -bool ParseRetType(PCCOR_SIGNATURE* p_sig) { - if (!ParseOptionalCustomMods(p_sig)) { - return false; - } +bool ParseRetType(PCCOR_SIGNATURE* p_sig) +{ + if (!ParseOptionalCustomMods(p_sig)) + { + return false; + } - if (**p_sig == ELEMENT_TYPE_TYPEDBYREF || - **p_sig == ELEMENT_TYPE_VOID) { - *p_sig += 1; - return true; - } + if (**p_sig == ELEMENT_TYPE_TYPEDBYREF || **p_sig == ELEMENT_TYPE_VOID) + { + *p_sig += 1; + return true; + } - if (**p_sig == ELEMENT_TYPE_BYREF) { - *p_sig += 1; - } + if (**p_sig == ELEMENT_TYPE_BYREF) + { + *p_sig += 1; + } - return ParseType(p_sig); + return ParseType(p_sig); } -bool ParseParam(PCCOR_SIGNATURE* p_sig) { - if (!ParseOptionalCustomMods(p_sig)) { - return false; - } +bool ParseParam(PCCOR_SIGNATURE* p_sig) +{ + if (!ParseOptionalCustomMods(p_sig)) + { + return false; + } - if (**p_sig == ELEMENT_TYPE_TYPEDBYREF) { - *p_sig += 1; - return true; - } + if (**p_sig == ELEMENT_TYPE_TYPEDBYREF) + { + *p_sig += 1; + return true; + } - if (**p_sig == ELEMENT_TYPE_BYREF) { - *p_sig += 1; - } + if (**p_sig == ELEMENT_TYPE_BYREF) + { + *p_sig += 1; + } - return ParseType(p_sig); + return ParseType(p_sig); } -bool ParseMethod(PCCOR_SIGNATURE* p_sig) { - // Format: [[HASTHIS] [EXPLICITTHIS]] (DEFAULT|VARARG|GENERIC GenParamCount) - // ParamCount RetType Param* [SENTINEL Param+] - if (**p_sig == IMAGE_CEE_CS_CALLCONV_GENERIC) { - *p_sig += 1; +bool ParseMethod(PCCOR_SIGNATURE* p_sig) +{ + // Format: [[HASTHIS] [EXPLICITTHIS]] (DEFAULT|VARARG|GENERIC GenParamCount) + // ParamCount RetType Param* [SENTINEL Param+] + if (**p_sig == IMAGE_CEE_CS_CALLCONV_GENERIC) + { + *p_sig += 1; - ULONG generic_count = 0; - if (!ParseNumber(p_sig, &generic_count)) { - return false; + ULONG generic_count = 0; + if (!ParseNumber(p_sig, &generic_count)) + { + return false; + } } - } - - ULONG param_count = 0; - if (!ParseNumber(p_sig, ¶m_count)) { - return false; - } - if (!ParseRetType(p_sig)) { - return false; - } - - bool sentinel_found = false; - for (ULONG i = 0; i < param_count; i++) { - if (**p_sig == ELEMENT_TYPE_SENTINEL) { - if (sentinel_found) { + ULONG param_count = 0; + if (!ParseNumber(p_sig, ¶m_count)) + { return false; - } + } - sentinel_found = true; - *p_sig += 1; + if (!ParseRetType(p_sig)) + { + return false; } + bool sentinel_found = false; + for (ULONG i = 0; i < param_count; i++) + { + if (**p_sig == ELEMENT_TYPE_SENTINEL) + { + if (sentinel_found) + { + return false; + } + + sentinel_found = true; + *p_sig += 1; + } - if (!ParseParam(p_sig)) { - return false; + if (!ParseParam(p_sig)) + { + return false; + } } - } - return true; + return true; } -bool ParseArrayShape(PCCOR_SIGNATURE* p_sig) { - // Format: Rank NumSizes Size* NumLoBounds LoBound* - ULONG rank = 0, numsizes = 0, size = 0; - if (!ParseNumber(p_sig, &rank) || !ParseNumber(p_sig, &numsizes)) { - return false; - } +bool ParseArrayShape(PCCOR_SIGNATURE* p_sig) +{ + // Format: Rank NumSizes Size* NumLoBounds LoBound* + ULONG rank = 0, numsizes = 0, size = 0; + if (!ParseNumber(p_sig, &rank) || !ParseNumber(p_sig, &numsizes)) + { + return false; + } - for (ULONG i = 0; i < numsizes; i++) { - if (!ParseNumber(p_sig, &size)) { - return false; + for (ULONG i = 0; i < numsizes; i++) + { + if (!ParseNumber(p_sig, &size)) + { + return false; + } } - } - if (!ParseNumber(p_sig, &numsizes)) { - return false; - } + if (!ParseNumber(p_sig, &numsizes)) + { + return false; + } - for (ULONG i = 0; i < numsizes; i++) { - if (!ParseNumber(p_sig, &size)) { - return false; + for (ULONG i = 0; i < numsizes; i++) + { + if (!ParseNumber(p_sig, &size)) + { + return false; + } } - } - return true; + return true; } // Returns whether or not the Type signature at the given address could be parsed. // If successful, the input pointer will point to the next byte following the Type signature. // If not, the input pointer may point to invalid data. -bool ParseType(PCCOR_SIGNATURE* p_sig) { - /* - Format = BOOLEAN | CHAR | I1 | U1 | U2 | U2 | I4 | U4 | I8 | U8 | R4 | R8 | I | U | STRING | OBJECT - | VALUETYPE TypeDefOrRefEncoded - | CLASS TypeDefOrRefEncoded - | PTR CustomMod* VOID - | PTR CustomMod* Type - | FNPTR MethodDefSig - | FNPTR MethodRefSig - | ARRAY Type ArrayShape - | SZARRAY CustomMod* Type - | GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * - | VAR Number - | MVAR Number - */ - - const auto cor_element_type = CorElementType(**p_sig); - ULONG number = 0; - *p_sig += 1; - - switch (cor_element_type) { - case ELEMENT_TYPE_VOID: - case ELEMENT_TYPE_BOOLEAN: - case ELEMENT_TYPE_CHAR: - case ELEMENT_TYPE_I1: - case ELEMENT_TYPE_U1: - case ELEMENT_TYPE_I2: - case ELEMENT_TYPE_U2: - case ELEMENT_TYPE_I4: - case ELEMENT_TYPE_U4: - case ELEMENT_TYPE_I8: - case ELEMENT_TYPE_U8: - case ELEMENT_TYPE_R4: - case ELEMENT_TYPE_R8: - case ELEMENT_TYPE_STRING: - case ELEMENT_TYPE_OBJECT: - return true; - - case ELEMENT_TYPE_PTR: - // Format: PTR CustomMod* VOID - // Format: PTR CustomMod* Type - if (!ParseOptionalCustomMods(p_sig)) { - return false; - } - - if (**p_sig == ELEMENT_TYPE_VOID) { - *p_sig += 1; - return true; - } else { - return ParseType(p_sig); - } - - case ELEMENT_TYPE_VALUETYPE: - case ELEMENT_TYPE_CLASS: - // Format: CLASS TypeDefOrRefEncoded - // Format: VALUETYPE TypeDefOrRefEncoded - return ParseTypeDefOrRefEncoded(p_sig); - - case ELEMENT_TYPE_FNPTR: - // Format: FNPTR MethodDefSig - // Format: FNPTR MethodRefSig - return ParseMethod(p_sig); - - case ELEMENT_TYPE_ARRAY: - // Format: ARRAY Type ArrayShape - if (!ParseType(p_sig)) { - return false; - } - return ParseArrayShape(p_sig); - - case ELEMENT_TYPE_SZARRAY: - // Format: SZARRAY CustomMod* Type - if (!ParseOptionalCustomMods(p_sig)) { - return false; - } - return ParseType(p_sig); - - case ELEMENT_TYPE_GENERICINST: - if (**p_sig != ELEMENT_TYPE_VALUETYPE && **p_sig != ELEMENT_TYPE_CLASS) { - return false; - } - - *p_sig += 1; - if (!ParseTypeDefOrRefEncoded(p_sig)) { - return false; - } - - if (!ParseNumber(p_sig, &number)) { - return false; - } +bool ParseType(PCCOR_SIGNATURE* p_sig) +{ + /* + Format = BOOLEAN | CHAR | I1 | U1 | U2 | U2 | I4 | U4 | I8 | U8 | R4 | R8 | I | U | STRING | OBJECT + | VALUETYPE TypeDefOrRefEncoded + | CLASS TypeDefOrRefEncoded + | PTR CustomMod* VOID + | PTR CustomMod* Type + | FNPTR MethodDefSig + | FNPTR MethodRefSig + | ARRAY Type ArrayShape + | SZARRAY CustomMod* Type + | GENERICINST (CLASS | VALUETYPE) TypeDefOrRefEncoded GenArgCount Type * + | VAR Number + | MVAR Number + */ + + const auto cor_element_type = CorElementType(**p_sig); + ULONG number = 0; + *p_sig += 1; - for (ULONG i = 0; i < number; i++) { - if (!ParseType(p_sig)) { - return false; - } - } - return true; - - case ELEMENT_TYPE_VAR: - case ELEMENT_TYPE_MVAR: - // Format: VAR Number - // Format: MVAR Number - return ParseNumber(p_sig, &number); - - default: - return false; - } + switch (cor_element_type) + { + case ELEMENT_TYPE_VOID: + case ELEMENT_TYPE_BOOLEAN: + case ELEMENT_TYPE_CHAR: + case ELEMENT_TYPE_I1: + case ELEMENT_TYPE_U1: + case ELEMENT_TYPE_I2: + case ELEMENT_TYPE_U2: + case ELEMENT_TYPE_I4: + case ELEMENT_TYPE_U4: + case ELEMENT_TYPE_I8: + case ELEMENT_TYPE_U8: + case ELEMENT_TYPE_R4: + case ELEMENT_TYPE_R8: + case ELEMENT_TYPE_STRING: + case ELEMENT_TYPE_OBJECT: + return true; + + case ELEMENT_TYPE_PTR: + // Format: PTR CustomMod* VOID + // Format: PTR CustomMod* Type + if (!ParseOptionalCustomMods(p_sig)) + { + return false; + } + + if (**p_sig == ELEMENT_TYPE_VOID) + { + *p_sig += 1; + return true; + } + else + { + return ParseType(p_sig); + } + + case ELEMENT_TYPE_VALUETYPE: + case ELEMENT_TYPE_CLASS: + // Format: CLASS TypeDefOrRefEncoded + // Format: VALUETYPE TypeDefOrRefEncoded + return ParseTypeDefOrRefEncoded(p_sig); + + case ELEMENT_TYPE_FNPTR: + // Format: FNPTR MethodDefSig + // Format: FNPTR MethodRefSig + return ParseMethod(p_sig); + + case ELEMENT_TYPE_ARRAY: + // Format: ARRAY Type ArrayShape + if (!ParseType(p_sig)) + { + return false; + } + return ParseArrayShape(p_sig); + + case ELEMENT_TYPE_SZARRAY: + // Format: SZARRAY CustomMod* Type + if (!ParseOptionalCustomMods(p_sig)) + { + return false; + } + return ParseType(p_sig); + + case ELEMENT_TYPE_GENERICINST: + if (**p_sig != ELEMENT_TYPE_VALUETYPE && **p_sig != ELEMENT_TYPE_CLASS) + { + return false; + } + + *p_sig += 1; + if (!ParseTypeDefOrRefEncoded(p_sig)) + { + return false; + } + + if (!ParseNumber(p_sig, &number)) + { + return false; + } + + for (ULONG i = 0; i < number; i++) + { + if (!ParseType(p_sig)) + { + return false; + } + } + return true; + + case ELEMENT_TYPE_VAR: + case ELEMENT_TYPE_MVAR: + // Format: VAR Number + // Format: MVAR Number + return ParseNumber(p_sig, &number); + + default: + return false; + } } -} \ No newline at end of file +} // namespace trace \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/sig_helpers.h b/src/Datadog.Trace.ClrProfiler.Native/sig_helpers.h index 483ab98548..50c458e8e1 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/sig_helpers.h +++ b/src/Datadog.Trace.ClrProfiler.Native/sig_helpers.h @@ -2,8 +2,9 @@ #include -namespace trace { +namespace trace +{ bool ParseType(PCCOR_SIGNATURE* p_sig); -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/stats.h b/src/Datadog.Trace.ClrProfiler.Native/stats.h index dc0e17fb34..952b8b4ab4 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/stats.h +++ b/src/Datadog.Trace.ClrProfiler.Native/stats.h @@ -5,123 +5,138 @@ #include "util.h" -namespace trace { +namespace trace +{ -class SWStat { - std::atomic_ullong* _value; - std::chrono::steady_clock::time_point _startTime; +class SWStat +{ + std::atomic_ullong* _value; + std::chrono::steady_clock::time_point _startTime; - public: - SWStat(std::atomic_ullong* value) { - _value = value; - _startTime = std::chrono::steady_clock::now(); - } - ~SWStat() { - auto increment = (std::chrono::steady_clock::now() - _startTime).count(); - _value->fetch_add(increment); - } +public: + SWStat(std::atomic_ullong* value) + { + _value = value; + _startTime = std::chrono::steady_clock::now(); + } + ~SWStat() + { + auto increment = (std::chrono::steady_clock::now() - _startTime).count(); + _value->fetch_add(increment); + } }; -class Stats : public Singleton { - friend class Singleton; +class Stats : public Singleton +{ + friend class Singleton; - private: - std::atomic_ullong callTargetRequestRejit = {0}; - std::atomic_ullong callTargetRewriter = {0}; - std::atomic_ullong jitInlining = {0}; - std::atomic_ullong jitCompilationStarted = {0}; - std::atomic_ullong moduleUnloadStarted = {0}; - std::atomic_ullong moduleLoadFinished = {0}; - std::atomic_ullong assemblyLoadFinished = {0}; - std::atomic_ullong initialize = {0}; +private: + std::atomic_ullong callTargetRequestRejit = {0}; + std::atomic_ullong callTargetRewriter = {0}; + std::atomic_ullong jitInlining = {0}; + std::atomic_ullong jitCompilationStarted = {0}; + std::atomic_ullong moduleUnloadStarted = {0}; + std::atomic_ullong moduleLoadFinished = {0}; + std::atomic_ullong assemblyLoadFinished = {0}; + std::atomic_ullong initialize = {0}; - // - std::atomic_uint callTargetRequestRejitCount = {0}; - std::atomic_uint callTargetRewriterCount = {0}; - std::atomic_uint jitInliningCount = {0}; - std::atomic_uint jitCompilationStartedCount = {0}; - std::atomic_uint moduleUnloadStartedCount = {0}; - std::atomic_uint moduleLoadFinishedCount = {0}; - std::atomic_uint assemblyLoadFinishedCount = {0}; + // + std::atomic_uint callTargetRequestRejitCount = {0}; + std::atomic_uint callTargetRewriterCount = {0}; + std::atomic_uint jitInliningCount = {0}; + std::atomic_uint jitCompilationStartedCount = {0}; + std::atomic_uint moduleUnloadStartedCount = {0}; + std::atomic_uint moduleLoadFinishedCount = {0}; + std::atomic_uint assemblyLoadFinishedCount = {0}; - public: - Stats() { - callTargetRequestRejit = 0; - jitInlining = 0; - jitCompilationStarted = 0; - moduleUnloadStarted = 0; - moduleLoadFinished = 0; - assemblyLoadFinished = 0; - initialize = 0; +public: + Stats() + { + callTargetRequestRejit = 0; + jitInlining = 0; + jitCompilationStarted = 0; + moduleUnloadStarted = 0; + moduleLoadFinished = 0; + assemblyLoadFinished = 0; + initialize = 0; - callTargetRequestRejitCount = 0; - jitInliningCount = 0; - jitCompilationStartedCount = 0; - moduleUnloadStartedCount = 0; - moduleLoadFinishedCount = 0; - assemblyLoadFinishedCount = 0; - } - SWStat CallTargetRequestRejitMeasure() { - callTargetRequestRejitCount++; - return SWStat(&callTargetRequestRejit); - } - SWStat CallTargetRewriterCallbackMeasure() { - callTargetRewriterCount++; - return SWStat(&callTargetRewriter); - } - SWStat JITInliningMeasure() { - jitInliningCount++; - return SWStat(&jitInlining); - } - SWStat JITCompilationStartedMeasure() { - jitCompilationStartedCount++; - return SWStat(&jitCompilationStarted); - } - SWStat ModuleUnloadStartedMeasure() { - moduleUnloadStartedCount++; - return SWStat(&moduleUnloadStarted); - } - SWStat ModuleLoadFinishedMeasure() { - moduleLoadFinishedCount++; - return SWStat(&moduleLoadFinished); - } - SWStat AssemblyLoadFinishedMeasure() { - assemblyLoadFinishedCount++; - return SWStat(&assemblyLoadFinished); - } - SWStat InitializeMeasure() { - return SWStat(&initialize); - } - std::string ToString() { - std::stringstream ss; - ss << "[Initialize="; - ss << initialize.load() / 1000000 << "ms"; - ss << ", ModuleLoadFinished="; - ss << moduleLoadFinished.load() / 1000000 << "ms" - << "/" << moduleLoadFinishedCount.load(); - ss << ", CallTargetRequestRejit="; - ss << callTargetRequestRejit.load() / 1000000 << "ms" - << "/" << callTargetRequestRejitCount.load(); - ss << ", CallTargetRewriter="; - ss << callTargetRewriter.load() / 1000000 << "ms" - << "/" << callTargetRewriterCount.load(); - ss << ", AssemblyLoadFinished="; - ss << assemblyLoadFinished.load() / 1000000 << "ms" - << "/" << assemblyLoadFinishedCount.load(); - ss << ", ModuleUnloadStarted="; - ss << moduleUnloadStarted.load() / 1000000 << "ms" - << "/" << moduleUnloadStartedCount.load(); - ss << ", JitCompilationStarted="; - ss << jitCompilationStarted.load() / 1000000 << "ms" - << "/" << jitCompilationStartedCount.load(); - ss << ", JitInlining="; - ss << jitInlining.load() / 1000000 << "ms" - << "/" << jitInliningCount.load(); - ss << "]"; - return ss.str(); - } + callTargetRequestRejitCount = 0; + jitInliningCount = 0; + jitCompilationStartedCount = 0; + moduleUnloadStartedCount = 0; + moduleLoadFinishedCount = 0; + assemblyLoadFinishedCount = 0; + } + SWStat CallTargetRequestRejitMeasure() + { + callTargetRequestRejitCount++; + return SWStat(&callTargetRequestRejit); + } + SWStat CallTargetRewriterCallbackMeasure() + { + callTargetRewriterCount++; + return SWStat(&callTargetRewriter); + } + SWStat JITInliningMeasure() + { + jitInliningCount++; + return SWStat(&jitInlining); + } + SWStat JITCompilationStartedMeasure() + { + jitCompilationStartedCount++; + return SWStat(&jitCompilationStarted); + } + SWStat ModuleUnloadStartedMeasure() + { + moduleUnloadStartedCount++; + return SWStat(&moduleUnloadStarted); + } + SWStat ModuleLoadFinishedMeasure() + { + moduleLoadFinishedCount++; + return SWStat(&moduleLoadFinished); + } + SWStat AssemblyLoadFinishedMeasure() + { + assemblyLoadFinishedCount++; + return SWStat(&assemblyLoadFinished); + } + SWStat InitializeMeasure() + { + return SWStat(&initialize); + } + std::string ToString() + { + std::stringstream ss; + ss << "[Initialize="; + ss << initialize.load() / 1000000 << "ms"; + ss << ", ModuleLoadFinished="; + ss << moduleLoadFinished.load() / 1000000 << "ms" + << "/" << moduleLoadFinishedCount.load(); + ss << ", CallTargetRequestRejit="; + ss << callTargetRequestRejit.load() / 1000000 << "ms" + << "/" << callTargetRequestRejitCount.load(); + ss << ", CallTargetRewriter="; + ss << callTargetRewriter.load() / 1000000 << "ms" + << "/" << callTargetRewriterCount.load(); + ss << ", AssemblyLoadFinished="; + ss << assemblyLoadFinished.load() / 1000000 << "ms" + << "/" << assemblyLoadFinishedCount.load(); + ss << ", ModuleUnloadStarted="; + ss << moduleUnloadStarted.load() / 1000000 << "ms" + << "/" << moduleUnloadStartedCount.load(); + ss << ", JitCompilationStarted="; + ss << jitCompilationStarted.load() / 1000000 << "ms" + << "/" << jitCompilationStartedCount.load(); + ss << ", JitInlining="; + ss << jitInlining.load() / 1000000 << "ms" + << "/" << jitInliningCount.load(); + ss << "]"; + return ss.str(); + } }; -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_STATS_H_ \ No newline at end of file +#endif // DD_CLR_PROFILER_STATS_H_ \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/string.cpp b/src/Datadog.Trace.ClrProfiler.Native/string.cpp index 2ec9be5c1e..34951a7ff0 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/string.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/string.cpp @@ -6,51 +6,67 @@ #include "miniutf.hpp" #endif -namespace trace { +namespace trace +{ -std::string ToString(const std::string& str) { return str; } -std::string ToString(const char* str) { return std::string(str); } -std::string ToString(const uint64_t i) { return std::to_string(i); } -std::string ToString(const WSTRING& wstr) { +std::string ToString(const std::string& str) +{ + return str; +} +std::string ToString(const char* str) +{ + return std::string(str); +} +std::string ToString(const uint64_t i) +{ + return std::to_string(i); +} +std::string ToString(const WSTRING& wstr) +{ #ifdef _WIN32 - if (wstr.empty()) return std::string(); + if (wstr.empty()) return std::string(); - std::string tmpStr(tmp_buffer_size, 0); - int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), &tmpStr[0], tmp_buffer_size, NULL, NULL); - if (size_needed < tmp_buffer_size) { - return tmpStr.substr(0, size_needed); - } + std::string tmpStr(tmp_buffer_size, 0); + int size_needed = + WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int) wstr.size(), &tmpStr[0], tmp_buffer_size, NULL, NULL); + if (size_needed < tmp_buffer_size) + { + return tmpStr.substr(0, size_needed); + } - std::string strTo(size_needed, 0); - WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), &strTo[0], size_needed, NULL, NULL); - return strTo; + std::string strTo(size_needed, 0); + WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int) wstr.size(), &strTo[0], size_needed, NULL, NULL); + return strTo; #else - std::u16string ustr(reinterpret_cast(wstr.c_str())); - return miniutf::to_utf8(ustr); + std::u16string ustr(reinterpret_cast(wstr.c_str())); + return miniutf::to_utf8(ustr); #endif } -WSTRING ToWSTRING(const std::string& str) { +WSTRING ToWSTRING(const std::string& str) +{ #ifdef _WIN32 - if (str.empty()) return std::wstring(); + if (str.empty()) return std::wstring(); - std::wstring tmpStr(tmp_buffer_size, 0); - int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &tmpStr[0], tmp_buffer_size); - if (size_needed < tmp_buffer_size) { - return tmpStr.substr(0, size_needed); - } + std::wstring tmpStr(tmp_buffer_size, 0); + int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int) str.size(), &tmpStr[0], tmp_buffer_size); + if (size_needed < tmp_buffer_size) + { + return tmpStr.substr(0, size_needed); + } - std::wstring wstrTo(size_needed, 0); - MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed); - return wstrTo; + std::wstring wstrTo(size_needed, 0); + MultiByteToWideChar(CP_UTF8, 0, &str[0], (int) str.size(), &wstrTo[0], size_needed); + return wstrTo; #else - auto ustr = miniutf::to_utf16(str); - return WSTRING(reinterpret_cast(ustr.c_str())); + auto ustr = miniutf::to_utf16(str); + return WSTRING(reinterpret_cast(ustr.c_str())); #endif } -WSTRING ToWSTRING(const uint64_t i) { - return WSTRING(reinterpret_cast(std::to_wstring(i).c_str())); +WSTRING ToWSTRING(const uint64_t i) +{ + return WSTRING(reinterpret_cast(std::to_wstring(i).c_str())); } -} // namespace trace \ No newline at end of file +} // namespace trace \ No newline at end of file diff --git a/src/Datadog.Trace.ClrProfiler.Native/string.h b/src/Datadog.Trace.ClrProfiler.Native/string.h index 31d3ce1d8f..5102d21e98 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/string.h +++ b/src/Datadog.Trace.ClrProfiler.Native/string.h @@ -13,7 +13,8 @@ #define WStrLen(value) (size_t) std::char_traits::length(value) #endif -namespace trace { +namespace trace +{ typedef std::basic_string WSTRING; @@ -29,6 +30,6 @@ std::string ToString(const WSTRING& wstr); WSTRING ToWSTRING(const std::string& str); WSTRING ToWSTRING(const uint64_t i); -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_STRING_H_ +#endif // DD_CLR_PROFILER_STRING_H_ diff --git a/src/Datadog.Trace.ClrProfiler.Native/util.cpp b/src/Datadog.Trace.ClrProfiler.Native/util.cpp index 9b36908d55..c09a1f06b0 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/util.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/util.cpp @@ -1,109 +1,125 @@ #include "util.h" +#include "miniutf.hpp" +#include "pal.h" #include #include #include #include //NOLINT #include -#include "miniutf.hpp" -#include "pal.h" -namespace trace { +namespace trace +{ template -void Split(const WSTRING &s, wchar_t delim, Out result) { - size_t lpos = 0; - for (size_t i = 0; i < s.length(); i++) { - if (s[i] == delim) { - *(result++) = s.substr(lpos, (i - lpos)); - lpos = i + 1; +void Split(const WSTRING& s, wchar_t delim, Out result) +{ + size_t lpos = 0; + for (size_t i = 0; i < s.length(); i++) + { + if (s[i] == delim) + { + *(result++) = s.substr(lpos, (i - lpos)); + lpos = i + 1; + } } - } - *(result++) = s.substr(lpos); + *(result++) = s.substr(lpos); } -std::vector Split(const WSTRING &s, wchar_t delim) { - std::vector elems; - Split(s, delim, std::back_inserter(elems)); - return elems; +std::vector Split(const WSTRING& s, wchar_t delim) +{ + std::vector elems; + Split(s, delim, std::back_inserter(elems)); + return elems; } -WSTRING Trim(const WSTRING &str) { - if (str.length() == 0) { - return WStr(""); - } +WSTRING Trim(const WSTRING& str) +{ + if (str.length() == 0) + { + return WStr(""); + } - WSTRING trimmed = str; + WSTRING trimmed = str; - auto lpos = trimmed.find_first_not_of(WStr(" \t")); - if (lpos != WSTRING::npos && lpos > 0) { - trimmed = trimmed.substr(lpos); - } + auto lpos = trimmed.find_first_not_of(WStr(" \t")); + if (lpos != WSTRING::npos && lpos > 0) + { + trimmed = trimmed.substr(lpos); + } - auto rpos = trimmed.find_last_not_of(WStr(" \t")); - if (rpos != WSTRING::npos) { - trimmed = trimmed.substr(0, rpos + 1); - } + auto rpos = trimmed.find_last_not_of(WStr(" \t")); + if (rpos != WSTRING::npos) + { + trimmed = trimmed.substr(0, rpos + 1); + } - return trimmed; + return trimmed; } -WSTRING GetEnvironmentValue(const WSTRING &name) { +WSTRING GetEnvironmentValue(const WSTRING& name) +{ #ifdef _WIN32 - const size_t max_buf_size = 4096; - WSTRING buf(max_buf_size, 0); - auto len = - GetEnvironmentVariable(name.data(), buf.data(), (DWORD)(buf.size())); - return Trim(buf.substr(0, len)); + const size_t max_buf_size = 4096; + WSTRING buf(max_buf_size, 0); + auto len = GetEnvironmentVariable(name.data(), buf.data(), (DWORD)(buf.size())); + return Trim(buf.substr(0, len)); #else - auto cstr = std::getenv(ToString(name).c_str()); - if (cstr == nullptr) { - return WStr(""); - } - std::string str(cstr); - auto wstr = ToWSTRING(str); - return Trim(wstr); + auto cstr = std::getenv(ToString(name).c_str()); + if (cstr == nullptr) + { + return WStr(""); + } + std::string str(cstr); + auto wstr = ToWSTRING(str); + return Trim(wstr); #endif } -std::vector GetEnvironmentValues(const WSTRING &name, - const wchar_t delim) { - std::vector values; - for (auto s : Split(GetEnvironmentValue(name), delim)) { - s = Trim(s); - if (!s.empty()) { - values.push_back(s); +std::vector GetEnvironmentValues(const WSTRING& name, const wchar_t delim) +{ + std::vector values; + for (auto s : Split(GetEnvironmentValue(name), delim)) + { + s = Trim(s); + if (!s.empty()) + { + values.push_back(s); + } } - } - return values; + return values; } -std::vector GetEnvironmentValues(const WSTRING &name) { - return GetEnvironmentValues(name, L','); +std::vector GetEnvironmentValues(const WSTRING& name) +{ + return GetEnvironmentValues(name, L';'); } -constexpr char HexMap[] = {'0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; - -WSTRING HexStr(const void *dataPtr, int len) { - const unsigned char *data = (unsigned char *)dataPtr; - WSTRING s(len * 2, ' '); - for (int i = 0; i < len; ++i) { - s[2 * i] = HexMap[(data[i] & 0xF0) >> 4]; - s[2 * i + 1] = HexMap[data[i] & 0x0F]; - } - return s; +constexpr char HexMap[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + +WSTRING HexStr(const void* dataPtr, int len) +{ + const unsigned char* data = (unsigned char*) dataPtr; + WSTRING s(len * 2, ' '); + for (int i = 0; i < len; ++i) + { + s[2 * i] = HexMap[(data[i] & 0xF0) >> 4]; + s[2 * i + 1] = HexMap[data[i] & 0x0F]; + } + return s; } -WSTRING TokenStr(const mdToken *token) { - const unsigned char *data = (unsigned char *)token; - int len = sizeof(mdToken); - WSTRING s(len * 2, ' '); - for (int i = 0; i < len; i++) { - s[(2 * (len - i)) - 2] = HexMap[(data[i] & 0xF0) >> 4]; - s[(2 * (len - i)) - 1] = HexMap[data[i] & 0x0F]; - } - return s; +WSTRING TokenStr(const mdToken* token) +{ + const unsigned char* data = (unsigned char*) token; + int len = sizeof(mdToken); + WSTRING s(len * 2, ' '); + for (int i = 0; i < len; i++) + { + s[(2 * (len - i)) - 2] = HexMap[(data[i] & 0xF0) >> 4]; + s[(2 * (len - i)) - 1] = HexMap[data[i] & 0x0F]; + } + return s; } -} // namespace trace +} // namespace trace diff --git a/src/Datadog.Trace.ClrProfiler.Native/util.h b/src/Datadog.Trace.ClrProfiler.Native/util.h index ae74fcb0e2..446e2cb1d4 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/util.h +++ b/src/Datadog.Trace.ClrProfiler.Native/util.h @@ -12,89 +12,96 @@ #include "string.h" -namespace trace { +namespace trace +{ template -void Split(const WSTRING &s, wchar_t delim, Out result); +void Split(const WSTRING& s, wchar_t delim, Out result); // Split splits a string by the given delimiter. -std::vector Split(const WSTRING &s, wchar_t delim); +std::vector Split(const WSTRING& s, wchar_t delim); // Trim removes space from the beginning and end of a string. -WSTRING Trim(const WSTRING &str); +WSTRING Trim(const WSTRING& str); // GetEnvironmentValue returns the environment variable value for the given // name. Space is trimmed. -WSTRING GetEnvironmentValue(const WSTRING &name); +WSTRING GetEnvironmentValue(const WSTRING& name); // GetEnvironmentValues returns environment variable values for the given name // split by the delimiter. Space is trimmed and empty values are ignored. -std::vector GetEnvironmentValues(const WSTRING &name, - const wchar_t delim); +std::vector GetEnvironmentValues(const WSTRING& name, const wchar_t delim); -// GetEnvironmentValues calls GetEnvironmentValues with a comma delimiter. -std::vector GetEnvironmentValues(const WSTRING &name); +// GetEnvironmentValues calls GetEnvironmentValues with a semicolon delimiter. +std::vector GetEnvironmentValues(const WSTRING& name); // Convert Hex to string -WSTRING HexStr(const void *data, int len); +WSTRING HexStr(const void* data, int len); // Convert Token to string -WSTRING TokenStr(const mdToken *token); +WSTRING TokenStr(const mdToken* token); template -bool Contains(const Container &items, - const typename Container::value_type &value) { - return std::find(items.begin(), items.end(), value) != items.end(); +bool Contains(const Container& items, const typename Container::value_type& value) +{ + return std::find(items.begin(), items.end(), value) != items.end(); } // Singleton definition -class UnCopyable { - protected: - UnCopyable(){}; - ~UnCopyable(){}; - - private: - UnCopyable(const UnCopyable &) = delete; - UnCopyable(const UnCopyable &&) = delete; - UnCopyable &operator=(const UnCopyable &) = delete; - UnCopyable &operator=(const UnCopyable &&) = delete; +class UnCopyable +{ +protected: + UnCopyable(){}; + ~UnCopyable(){}; + +private: + UnCopyable(const UnCopyable&) = delete; + UnCopyable(const UnCopyable&&) = delete; + UnCopyable& operator=(const UnCopyable&) = delete; + UnCopyable& operator=(const UnCopyable&&) = delete; }; template -class Singleton : public UnCopyable { - public: - static T *Instance() { - static T instance_obj; - return &instance_obj; - } +class Singleton : public UnCopyable +{ +public: + static T* Instance() + { + static T instance_obj; + return &instance_obj; + } }; template -class BlockingQueue : public UnCopyable { - private: - std::queue queue_; - mutable std::mutex mutex_; - std::condition_variable condition_; - - public: - T pop() { - std::unique_lock mlock(mutex_); - while (queue_.empty()) { - condition_.wait(mlock); +class BlockingQueue : public UnCopyable +{ +private: + std::queue queue_; + mutable std::mutex mutex_; + std::condition_variable condition_; + +public: + T pop() + { + std::unique_lock mlock(mutex_); + while (queue_.empty()) + { + condition_.wait(mlock); + } + T value = queue_.front(); + queue_.pop(); + return value; } - T value = queue_.front(); - queue_.pop(); - return value; - } - void push(const T &item) { + void push(const T& item) { - std::lock_guard guard(mutex_); - queue_.push(item); + { + std::lock_guard guard(mutex_); + queue_.push(item); + } + condition_.notify_one(); } - condition_.notify_one(); - } }; -} // namespace trace +} // namespace trace -#endif // DD_CLR_PROFILER_UTIL_H_ +#endif // DD_CLR_PROFILER_UTIL_H_ diff --git a/src/Datadog.Trace/DuckTyping/DuckAttribute.cs b/src/Datadog.Trace/DuckTyping/DuckAttribute.cs index 62b0a10e05..388d49b6cf 100644 --- a/src/Datadog.Trace/DuckTyping/DuckAttribute.cs +++ b/src/Datadog.Trace/DuckTyping/DuckAttribute.cs @@ -59,5 +59,10 @@ public class DuckAttribute : Attribute /// Gets or sets the parameter type names of the target method (optional / used to disambiguation) /// public string[] ParameterTypeNames { get; set; } + + /// + /// Gets or sets the explicit interface type name + /// + public string ExplicitInterfaceTypeName { get; set; } } } diff --git a/src/Datadog.Trace/DuckTyping/DuckType.Methods.cs b/src/Datadog.Trace/DuckTyping/DuckType.Methods.cs index cf45542cce..47e313d224 100644 --- a/src/Datadog.Trace/DuckTyping/DuckType.Methods.cs +++ b/src/Datadog.Trace/DuckTyping/DuckType.Methods.cs @@ -384,7 +384,8 @@ private static void CreateMethods(TypeBuilder proxyTypeBuilder, Type proxyType, } // Method call - if (targetMethod.IsPublic) + // A generic method cannot be called using calli (throws System.InvalidOperationException) + if (targetMethod.IsPublic || targetMethod.IsGenericMethod) { // We can emit a normal call if we have a public instance with a public target method. il.EmitCall(targetMethod.IsStatic || targetMethod.DeclaringType.IsValueType ? OpCodes.Call : OpCodes.Callvirt, targetMethod, null); @@ -554,10 +555,35 @@ private static MethodInfo SelectTargetMethod(Type targetType, MethodInfo proxyMe MethodInfo[] allTargetMethods = targetType.GetMethods(DuckAttribute.DefaultFlags); foreach (MethodInfo candidateMethod in allTargetMethods) { + string name = proxyMethodDuckAttribute.Name; + bool useRelaxedNameComparison = false; + + // If there is an explicit interface type name we add it to the name + if (!string.IsNullOrEmpty(proxyMethodDuckAttribute.ExplicitInterfaceTypeName)) + { + string interfaceTypeName = proxyMethodDuckAttribute.ExplicitInterfaceTypeName; + + if (interfaceTypeName == "*") + { + // If a wildcard is use, then we relax the name comparison so it can be an implicit or explicity implementation + useRelaxedNameComparison = true; + } + else + { + // Nested types are separated with a "." on explicit implementation. + interfaceTypeName = interfaceTypeName.Replace("+", "."); + + name = interfaceTypeName + "." + name; + } + } + // We omit target methods with different names. - if (candidateMethod.Name != proxyMethodDuckAttribute.Name) + if (candidateMethod.Name != name) { - continue; + if (!useRelaxedNameComparison || !candidateMethod.Name.EndsWith("." + name)) + { + continue; + } } // Check if the candidate method is a reverse mapped method diff --git a/src/Datadog.Trace/DuckTyping/DuckType.Utilities.cs b/src/Datadog.Trace/DuckTyping/DuckType.Utilities.cs index c69bd1ed00..fc7322b035 100644 --- a/src/Datadog.Trace/DuckTyping/DuckType.Utilities.cs +++ b/src/Datadog.Trace/DuckTyping/DuckType.Utilities.cs @@ -48,18 +48,44 @@ private static void EnsureArguments(Type proxyType, object instance) /// Type to gain internals visibility private static void EnsureTypeVisibility(ModuleBuilder builder, Type type) { - string name = type.Assembly.GetName().Name; - lock (_ignoresAccessChecksToAssembliesSetDictionary) + EnsureAssemblyNameVisibility(builder, type.Assembly.GetName().Name); + + if (type.IsGenericType && !type.IsGenericTypeDefinition) + { + foreach (Type t in type.GetGenericArguments()) + { + if (!t.IsVisible) + { + EnsureAssemblyNameVisibility(builder, t.Assembly.GetName().Name); + } + } + } + + while (type.IsNested) { - if (!_ignoresAccessChecksToAssembliesSetDictionary.TryGetValue(builder, out var hashSet)) + if (!type.IsNestedPublic) { - hashSet = new HashSet(); - _ignoresAccessChecksToAssembliesSetDictionary[builder] = hashSet; + EnsureAssemblyNameVisibility(builder, type.Assembly.GetName().Name); } - if (hashSet.Add(name)) + // this should be null for non-nested types. + type = type.DeclaringType; + } + + static void EnsureAssemblyNameVisibility(ModuleBuilder builder, string assemblyName) + { + lock (_ignoresAccessChecksToAssembliesSetDictionary) { - ((AssemblyBuilder)builder.Assembly).SetCustomAttribute(new CustomAttributeBuilder(_ignoresAccessChecksToAttributeCtor, new object[] { name })); + if (!_ignoresAccessChecksToAssembliesSetDictionary.TryGetValue(builder, out var hashSet)) + { + hashSet = new HashSet(); + _ignoresAccessChecksToAssembliesSetDictionary[builder] = hashSet; + } + + if (hashSet.Add(assemblyName)) + { + ((AssemblyBuilder)builder.Assembly).SetCustomAttribute(new CustomAttributeBuilder(_ignoresAccessChecksToAttributeCtor, new object[] { assemblyName })); + } } } } diff --git a/src/Datadog.Trace/Logging/CustomSerilogLogProvider.cs b/src/Datadog.Trace/Logging/CustomSerilogLogProvider.cs index e1753387fa..0d4b10aa60 100644 --- a/src/Datadog.Trace/Logging/CustomSerilogLogProvider.cs +++ b/src/Datadog.Trace/Logging/CustomSerilogLogProvider.cs @@ -5,6 +5,8 @@ using System; using System.Linq.Expressions; +using System.Reflection; +using System.Runtime.CompilerServices; using Datadog.Trace.Logging.LogProviders; namespace Datadog.Trace.Logging @@ -12,10 +14,27 @@ namespace Datadog.Trace.Logging internal class CustomSerilogLogProvider : SerilogLogProvider, ILogProviderWithEnricher { private static Func _pushMethod; + private readonly bool _wrapEnricher; public CustomSerilogLogProvider() { - _pushMethod = GetPush(); + var logEnricherType = GetLogEnricherType(); + if (GetPushMethodInfo() is MethodInfo pushMethodInfo) + { + _wrapEnricher = false; + _pushMethod = GeneratePushDelegate(pushMethodInfo, logEnricherType); + } + else if (GetPushPropertiesMethodInfo() is MethodInfo pushPropertiesMethodInfo) + { + _wrapEnricher = true; + _pushMethod = GeneratePushDelegate(pushPropertiesMethodInfo, logEnricherType.MakeArrayType()); + } + else + { + _wrapEnricher = false; + IDisposable cachedDisposable = new NoOpDisposable(); + _pushMethod = (enricher) => { return cachedDisposable; }; + } } public IDisposable OpenContext(object enricher) @@ -23,20 +42,31 @@ public IDisposable OpenContext(object enricher) return _pushMethod(enricher); } - public ILogEnricher CreateEnricher() => new SerilogEnricher(this); + public ILogEnricher CreateEnricher() => new SerilogEnricher(this, _wrapEnricher); internal static Type GetLogEnricherType() => Type.GetType("Serilog.Core.ILogEventEnricher, Serilog"); - private static Func GetPush() + internal static new bool IsLoggerAvailable() => + SerilogLogProvider.IsLoggerAvailable() && (GetPushMethodInfo() != null || GetPushPropertiesMethodInfo() != null); + + private static MethodInfo GetPushMethodInfo() { var ndcContextType = Type.GetType("Serilog.Context.LogContext, Serilog"); + return ndcContextType?.GetMethod("Push", GetLogEnricherType()); + } - var logEventEnricherType = GetLogEnricherType(); + private static MethodInfo GetPushPropertiesMethodInfo() + { + var ndcContextType = FindType("Serilog.Context.LogContext", new[] { "Serilog", "Serilog.FullNetFx" }); + return ndcContextType?.GetMethod("PushProperties", GetLogEnricherType().MakeArrayType()); + } - var pushPropertyMethod = ndcContextType.GetMethod("Push", logEventEnricherType); + private static Func GeneratePushDelegate(MethodInfo methodInfo, Type argumentTargetType) + { var enricherParam = Expression.Parameter(typeof(object), "enricher"); - var castEnricherParam = Expression.Convert(enricherParam, logEventEnricherType); - var pushMethodCall = Expression.Call(null, pushPropertyMethod, castEnricherParam); + var castEnricherParam = Expression.Convert(enricherParam, argumentTargetType); + var pushMethodCall = Expression.Call(null, methodInfo, castEnricherParam); + var push = Expression.Lambda>( pushMethodCall, enricherParam) @@ -44,5 +74,13 @@ private static Func GetPush() return push; } + + internal class NoOpDisposable : IDisposable + { + public void Dispose() + { + // Do nothing + } + } } } diff --git a/src/Datadog.Trace/Logging/LibLogScopeEventSubscriber.cs b/src/Datadog.Trace/Logging/LibLogScopeEventSubscriber.cs index eeea954361..6fcdc749b8 100644 --- a/src/Datadog.Trace/Logging/LibLogScopeEventSubscriber.cs +++ b/src/Datadog.Trace/Logging/LibLogScopeEventSubscriber.cs @@ -258,12 +258,18 @@ public void Dispose() private static void InitResolvers() { - // Register the custom Serilog provider + // Note: for retrocompatibility, the order in which the providers are resolved is important + // Make sure to respect the order: + // - Serilog + // - NLog + // - Log4net + + // Register the custom log4net provider LogProvider.LogProviderResolvers.Insert( 0, Tuple.Create( - CustomSerilogLogProvider.IsLoggerAvailable, - () => new CustomSerilogLogProvider())); + CustomLog4NetLogProvider.IsLoggerAvailable, + () => new CustomLog4NetLogProvider())); // Register the custom NLog provider LogProvider.LogProviderResolvers.Insert( @@ -272,12 +278,12 @@ private static void InitResolvers() CustomNLogLogProvider.IsLoggerAvailable, () => new CustomNLogLogProvider())); - // Register the custom log4net provider + // Register the custom Serilog provider LogProvider.LogProviderResolvers.Insert( 0, Tuple.Create( - CustomLog4NetLogProvider.IsLoggerAvailable, - () => new CustomLog4NetLogProvider())); + CustomSerilogLogProvider.IsLoggerAvailable, + () => new CustomSerilogLogProvider())); } private void SetDefaultValues() diff --git a/src/Datadog.Trace/Logging/SerilogEnricher.cs b/src/Datadog.Trace/Logging/SerilogEnricher.cs index 2197ebca1b..5d78171e5e 100644 --- a/src/Datadog.Trace/Logging/SerilogEnricher.cs +++ b/src/Datadog.Trace/Logging/SerilogEnricher.cs @@ -15,6 +15,7 @@ namespace Datadog.Trace.Logging internal class SerilogEnricher : ILogEnricher { private readonly CustomSerilogLogProvider _logProvider; + private readonly bool _wrapEnricher; private readonly Func _valueFactory; private readonly Func _propertyFactory; @@ -25,9 +26,10 @@ internal class SerilogEnricher : ILogEnricher private object _serilogEventEnricher; - public SerilogEnricher(CustomSerilogLogProvider logProvider) + public SerilogEnricher(CustomSerilogLogProvider logProvider, bool wrapEnricher) { _logProvider = logProvider; + _wrapEnricher = wrapEnricher; var logEventPropertyType = Type.GetType("Serilog.Events.LogEventProperty, Serilog"); @@ -62,7 +64,15 @@ public void Initialize(Tracer tracer) _versionProperty = _propertyFactory(CorrelationIdentifier.SerilogVersionKey, _valueFactory(tracer.Settings.ServiceVersion)); _environmentProperty = _propertyFactory(CorrelationIdentifier.SerilogEnvKey, _valueFactory(tracer.Settings.Environment)); - _serilogEventEnricher = this.DuckCast(CustomSerilogLogProvider.GetLogEnricherType()); + var logEnricherType = CustomSerilogLogProvider.GetLogEnricherType(); + _serilogEventEnricher = this.DuckCast(logEnricherType); + + if (_wrapEnricher) + { + var array = Array.CreateInstance(logEnricherType, 1); + array.SetValue(_serilogEventEnricher, 0); + _serilogEventEnricher = array; + } } public IDisposable Register() diff --git a/src/Datadog.Trace/RuntimeMetrics/PerformanceCountersListener.cs b/src/Datadog.Trace/RuntimeMetrics/PerformanceCountersListener.cs index 8777ff5cb1..520f8ddf41 100644 --- a/src/Datadog.Trace/RuntimeMetrics/PerformanceCountersListener.cs +++ b/src/Datadog.Trace/RuntimeMetrics/PerformanceCountersListener.cs @@ -7,6 +7,9 @@ using System; using System.Diagnostics; using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Datadog.Trace.Logging; using Datadog.Trace.Util; using Datadog.Trace.Vendors.StatsdClient; @@ -17,13 +20,15 @@ internal class PerformanceCountersListener : IRuntimeMetricsListener private const string MemoryCategoryName = ".NET CLR Memory"; private const string ThreadingCategoryName = ".NET CLR LocksAndThreads"; + private static readonly IDatadogLogger Log = DatadogLogging.GetLoggerFor(); + private readonly IDogStatsd _statsd; - private readonly PerformanceCounterCategory _memoryCategory; - private readonly bool _fullInstanceName; private readonly string _processName; private readonly int _processId; private string _instanceName; + private PerformanceCounterCategory _memoryCategory; + private bool _fullInstanceName; private PerformanceCounterWrapper _gen0Size; private PerformanceCounterWrapper _gen1Size; @@ -37,32 +42,46 @@ internal class PerformanceCountersListener : IRuntimeMetricsListener private double? _lastContentionCount; + private Task _initializationTask; + public PerformanceCountersListener(IDogStatsd statsd) { _statsd = statsd; ProcessHelpers.GetCurrentProcessInformation(out _processName, out _, out _processId); - _memoryCategory = new PerformanceCounterCategory(MemoryCategoryName); - - var instanceName = GetInstanceName(); - _fullInstanceName = instanceName.Item2; - _instanceName = instanceName.Item1; - - InitializePerformanceCounters(_instanceName); + // To prevent a potential deadlock when hosted in a service, performance counter initialization must be asynchronous + // That's because performance counters may rely on wmiApSrv being started, + // and the windows service manager only allows one service at a time to be starting: https://docs.microsoft.com/en-us/windows/win32/services/service-startup + _initializationTask = Task.Run(InitializePerformanceCounters); + _initializationTask.ContinueWith( + t => + { + Log.Error(t.Exception, "An error occured while initializing the performance counters"); + }, + CancellationToken.None, + TaskContinuationOptions.OnlyOnFaulted | TaskContinuationOptions.ExecuteSynchronously, + TaskScheduler.Default); } + public Task WaitForInitialization() => _initializationTask; + public void Dispose() { - _gen0Size.Dispose(); - _gen1Size.Dispose(); - _gen2Size.Dispose(); - _lohSize.Dispose(); - _contentionCount.Dispose(); + _gen0Size?.Dispose(); + _gen1Size?.Dispose(); + _gen2Size?.Dispose(); + _lohSize?.Dispose(); + _contentionCount?.Dispose(); } public void Refresh() { + if (!_initializationTask.IsCompleted) + { + return; + } + if (!_fullInstanceName) { _instanceName = GetSimpleInstanceName(); @@ -99,13 +118,19 @@ public void Refresh() _previousGen2Count = gen2; } - private void InitializePerformanceCounters(string instanceName) + protected virtual void InitializePerformanceCounters() { - _gen0Size = new PerformanceCounterWrapper(MemoryCategoryName, "Gen 0 heap size", instanceName); - _gen1Size = new PerformanceCounterWrapper(MemoryCategoryName, "Gen 1 heap size", instanceName); - _gen2Size = new PerformanceCounterWrapper(MemoryCategoryName, "Gen 2 heap size", instanceName); - _lohSize = new PerformanceCounterWrapper(MemoryCategoryName, "Large Object Heap size", instanceName); - _contentionCount = new PerformanceCounterWrapper(ThreadingCategoryName, "Total # of Contentions", instanceName); + _memoryCategory = new PerformanceCounterCategory(MemoryCategoryName); + + var instanceName = GetInstanceName(); + _fullInstanceName = instanceName.Item2; + _instanceName = instanceName.Item1; + + _gen0Size = new PerformanceCounterWrapper(MemoryCategoryName, "Gen 0 heap size", _instanceName); + _gen1Size = new PerformanceCounterWrapper(MemoryCategoryName, "Gen 1 heap size", _instanceName); + _gen2Size = new PerformanceCounterWrapper(MemoryCategoryName, "Gen 2 heap size", _instanceName); + _lohSize = new PerformanceCounterWrapper(MemoryCategoryName, "Large Object Heap size", _instanceName); + _contentionCount = new PerformanceCounterWrapper(ThreadingCategoryName, "Total # of Contentions", _instanceName); } private void TryUpdateGauge(string path, PerformanceCounterWrapper counter) diff --git a/src/Datadog.Trace/Tagging/TagsList.cs b/src/Datadog.Trace/Tagging/TagsList.cs index d1c702dd87..c48c63be94 100644 --- a/src/Datadog.Trace/Tagging/TagsList.cs +++ b/src/Datadog.Trace/Tagging/TagsList.cs @@ -17,6 +17,8 @@ internal abstract class TagsList : ITags private static byte[] _metaBytes = StringEncoding.UTF8.GetBytes("meta"); private static byte[] _metricsBytes = StringEncoding.UTF8.GetBytes("metrics"); private static byte[] _originBytes = StringEncoding.UTF8.GetBytes(Trace.Tags.Origin); + private static byte[] _runtimeIdBytes = StringEncoding.UTF8.GetBytes(Trace.Tags.RuntimeId); + private static byte[] _runtimeIdValueBytes = StringEncoding.UTF8.GetBytes(Tracer.RuntimeId); private List> _metrics; private List> _tags; @@ -340,6 +342,13 @@ private int WriteTags(ref byte[] bytes, int offset, Span span) } } + if (span.IsTopLevel) + { + count++; + offset += MessagePackBinary.WriteStringBytes(ref bytes, offset, _runtimeIdBytes); + offset += MessagePackBinary.WriteStringBytes(ref bytes, offset, _runtimeIdValueBytes); + } + string origin = span.Context.Origin; if (!isOriginWritten && !string.IsNullOrEmpty(origin)) { diff --git a/src/Datadog.Trace/Tags.cs b/src/Datadog.Trace/Tags.cs index ab1d58958c..e9bbba8e89 100644 --- a/src/Datadog.Trace/Tags.cs +++ b/src/Datadog.Trace/Tags.cs @@ -403,5 +403,7 @@ public static class Tags internal const string ElasticsearchMethod = "elasticsearch.method"; internal const string ElasticsearchUrl = "elasticsearch.url"; + + internal const string RuntimeId = "runtime-id"; } } diff --git a/src/Datadog.Trace/Tracer.cs b/src/Datadog.Trace/Tracer.cs index 14be437fa8..0c6c882188 100644 --- a/src/Datadog.Trace/Tracer.cs +++ b/src/Datadog.Trace/Tracer.cs @@ -39,6 +39,8 @@ public class Tracer : IDatadogTracer private const string UnknownServiceName = "UnknownService"; private static readonly IDatadogLogger Log = DatadogLogging.GetLoggerFor(); + private static string _runtimeId; + /// /// The number of Tracer instances that have been created and not yet destroyed. /// This is used in the heartbeat metrics to estimate the number of @@ -286,10 +288,7 @@ string IDatadogTracer.AgentVersion /// ISampler IDatadogTracer.Sampler => Sampler; - /// - /// Gets the propagator logic . - /// - IPropagator IDatadogTracer.Propagator => _propagator; + internal static string RuntimeId => LazyInitializer.EnsureInitialized(ref _runtimeId, () => Guid.NewGuid().ToString()); internal IDiagnosticManager DiagnosticManager { get; set; } @@ -605,6 +604,9 @@ internal async Task WriteDiagnosticLog() writer.WritePropertyName("partialflush_minspans"); writer.WriteValue(Settings.PartialFlushMinSpans); + writer.WritePropertyName("runtime_id"); + writer.WriteValue(RuntimeId); + writer.WritePropertyName("agent_reachable"); writer.WriteValue(agentError == null); @@ -699,16 +701,10 @@ private static IDogStatsd CreateDogStatsdClient(TracerSettings settings, int por $"lang_interpreter:{FrameworkDescription.Instance.Name}", $"lang_version:{FrameworkDescription.Instance.ProductVersion}", $"tracer_version:{TracerConstants.AssemblyVersion}", - $"service:{settings.ServiceName}" + $"service:{settings.ServiceName}", + $"{Tags.RuntimeId}:{RuntimeId}" }; - var containerId = ContainerMetadata.GetContainerId(); - - if (containerId != null) - { - constantTags.Add($"runtime-id:{containerId}"); - } - if (settings.Environment != null) { constantTags.Add($"env:{settings.Environment}"); diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AWS/AwsSqsTests.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AWS/AwsSqsTests.cs index 5f6e3ae538..8e2c1b6681 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AWS/AwsSqsTests.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AWS/AwsSqsTests.cs @@ -140,7 +140,7 @@ public void SubmitsTraces(string packageVersion) .ExcludingMissingMembers() .ExcludingDefaultSpanProperties() .AssertMetricsMatchExcludingKeys("_dd.tracer_kr", "_sampling_priority_v1") - .AssertTagsMatchAndSpecifiedTagsPresent("env", "aws.requestId", "aws.queue.url")); + .AssertTagsMatchAndSpecifiedTagsPresent("env", "aws.requestId", "aws.queue.url", "runtime-id")); } } diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AdoNet/MicrosoftDataSqlClientTests.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AdoNet/MicrosoftDataSqlClientTests.cs index fde53ef150..b320a53b11 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AdoNet/MicrosoftDataSqlClientTests.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AdoNet/MicrosoftDataSqlClientTests.cs @@ -27,7 +27,12 @@ public static IEnumerable GetMicrosoftDataSqlClient() { foreach (object[] item in PackageVersions.MicrosoftDataSqlClient) { - yield return item.Concat(false); + // Callsite instrumentation is not supported with 3.* + if (!item.Cast().First().StartsWith("3")) + { + yield return item.Concat(false); + } + yield return item.Concat(true); } } diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index c17b7a897d..93a2d6ba25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 8d5e3ece8f..e464d1542c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 2e1132629b..a961900b95 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -35,14 +36,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -60,6 +61,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -87,17 +92,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index b422f28f00..f44630de5e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 9433111dce..a2523b1653 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 2580082766..da6b6e8bee 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 3bdba5b556..656cf7192a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -40,14 +41,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -65,6 +66,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -97,17 +102,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index 438b6d2f88..fc667592da 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -40,14 +41,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -65,6 +66,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -97,17 +102,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index c17b7a897d..93a2d6ba25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 8d5e3ece8f..e464d1542c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 4acc57a684..4081c00afe 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -46,14 +47,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -71,6 +72,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -109,17 +114,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index b422f28f00..f44630de5e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 9433111dce..a2523b1653 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 2580082766..da6b6e8bee 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 73e2433863..6004a87d29 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -51,14 +52,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -76,6 +77,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -119,17 +124,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index dd189db0aa..8db83cfcbd 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -51,14 +52,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -76,6 +77,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -119,17 +124,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index 7a8279a020..2757161a6e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 5e459ae60c..c65c420ac2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 2e1132629b..a961900b95 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -35,14 +36,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -60,6 +61,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -87,17 +92,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index bff5f955bc..d4af9f6c90 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 2c53b7547d..77b8960aed 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 99df012db8..b3b4b0aba9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 50aefb70e8..7f347ab26f 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -40,14 +41,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -65,6 +66,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -97,17 +102,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index 438b6d2f88..fc667592da 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -40,14 +41,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -65,6 +66,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -97,17 +102,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index 7a8279a020..2757161a6e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 5e459ae60c..c65c420ac2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 4acc57a684..4081c00afe 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -46,14 +47,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -71,6 +72,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -109,17 +114,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index bff5f955bc..d4af9f6c90 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 2c53b7547d..77b8960aed 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 99df012db8..b3b4b0aba9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 0e75a074ec..ed88d3dc82 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -51,14 +52,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -76,6 +77,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -119,17 +124,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index dd189db0aa..8db83cfcbd 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -51,14 +52,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -76,6 +77,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -119,17 +124,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index c17b7a897d..93a2d6ba25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 8d5e3ece8f..e464d1542c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 2a7bf8c5a4..86016ec9a1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -35,14 +36,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -60,6 +61,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -87,17 +92,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index b422f28f00..f44630de5e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 9433111dce..a2523b1653 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 2580082766..da6b6e8bee 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index fb76772593..70bf4d9748 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -40,14 +41,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -65,6 +66,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -97,17 +102,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index ff398a7389..78db5d04ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -40,14 +41,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -65,6 +66,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -97,17 +102,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index c17b7a897d..93a2d6ba25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 8d5e3ece8f..e464d1542c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 791bf9014f..34f4605448 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -46,14 +47,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -71,6 +72,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -109,17 +114,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index b422f28f00..f44630de5e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 9433111dce..a2523b1653 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 2580082766..da6b6e8bee 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 06dc943ae3..a9e7f3f2cf 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -51,14 +52,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -76,6 +77,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -119,17 +124,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index f1c66bed0f..8537e9da7f 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -51,14 +52,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -76,6 +77,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -119,17 +124,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index 7a8279a020..2757161a6e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 5e459ae60c..c65c420ac2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 2a7bf8c5a4..86016ec9a1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -35,14 +36,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -60,6 +61,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -87,17 +92,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index bff5f955bc..d4af9f6c90 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 2c53b7547d..77b8960aed 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 99df012db8..b3b4b0aba9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 495d41b757..cdce0d8762 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -40,14 +41,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -65,6 +66,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -97,17 +102,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index ff398a7389..78db5d04ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -40,14 +41,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -65,6 +66,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -97,17 +102,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index 7a8279a020..2757161a6e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 5e459ae60c..c65c420ac2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 791bf9014f..34f4605448 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -46,14 +47,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -71,6 +72,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -109,17 +114,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index bff5f955bc..d4af9f6c90 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 2c53b7547d..77b8960aed 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 99df012db8..b3b4b0aba9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 74fffa75f2..490e38d745 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -51,14 +52,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -76,6 +77,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -119,17 +124,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index f1c66bed0f..8537e9da7f 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -51,14 +52,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -76,6 +77,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -119,17 +124,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index c17b7a897d..93a2d6ba25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 8d5e3ece8f..e464d1542c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 8c635b74ed..b626f50d84 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -33,14 +34,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -58,6 +59,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -71,17 +76,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index b422f28f00..f44630de5e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 9433111dce..a2523b1653 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 2580082766..da6b6e8bee 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 509de50b28..9525e8cdc6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -81,17 +86,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index dfb1a76d53..e86aa902c1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -81,17 +86,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index c17b7a897d..93a2d6ba25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 8d5e3ece8f..e464d1542c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 3e244e0d16..8c19324c96 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -58,14 +59,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -83,6 +84,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -111,17 +116,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index b422f28f00..f44630de5e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 9433111dce..a2523b1653 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 2580082766..da6b6e8bee 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 604296f358..8e3db640cc 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -63,14 +64,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -88,6 +89,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -121,17 +126,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index 2fe963130c..cdd0fccf9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -63,14 +64,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -88,6 +89,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -121,17 +126,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index 7a8279a020..2757161a6e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 5e459ae60c..c65c420ac2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 8c635b74ed..b626f50d84 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -33,14 +34,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -58,6 +59,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -71,17 +76,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index bff5f955bc..d4af9f6c90 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 2c53b7547d..77b8960aed 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 99df012db8..b3b4b0aba9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 90549b8d14..8633178726 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -81,17 +86,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index dfb1a76d53..e86aa902c1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -81,17 +86,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index 7a8279a020..2757161a6e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 5e459ae60c..c65c420ac2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 3e244e0d16..8c19324c96 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -58,14 +59,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -83,6 +84,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -111,17 +116,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index bff5f955bc..d4af9f6c90 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 2c53b7547d..77b8960aed 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 99df012db8..b3b4b0aba9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index dec57acf11..0e4221ed22 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -63,14 +64,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -88,6 +89,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -121,17 +126,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index 2fe963130c..cdd0fccf9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -63,14 +64,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -88,6 +89,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -121,17 +126,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index c17b7a897d..93a2d6ba25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 8d5e3ece8f..e464d1542c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index afd187ec7c..fbc15c5e04 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -33,14 +34,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -58,6 +59,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -71,17 +76,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index b422f28f00..f44630de5e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 9433111dce..a2523b1653 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 2580082766..da6b6e8bee 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 95f124bd0a..306a8f6e78 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -81,17 +86,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index 894170fdc0..59b080702e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -81,17 +86,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index c17b7a897d..93a2d6ba25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 8d5e3ece8f..e464d1542c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 71e7d0d3cf..a4de35a9f1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -58,14 +59,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -83,6 +84,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -111,17 +116,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index b422f28f00..f44630de5e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 9433111dce..a2523b1653 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 2580082766..da6b6e8bee 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 653c7388f7..eb4e7826ea 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -63,14 +64,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -88,6 +89,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -121,17 +126,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index f29fdcbc88..69d9082fd7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -63,14 +64,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -88,6 +89,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -121,17 +126,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index 7a8279a020..2757161a6e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 5e459ae60c..c65c420ac2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index afd187ec7c..fbc15c5e04 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -33,14 +34,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -58,6 +59,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -71,17 +76,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index bff5f955bc..d4af9f6c90 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 2c53b7547d..77b8960aed 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 99df012db8..b3b4b0aba9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 3b26601209..4123a60a1f 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -81,17 +86,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index 894170fdc0..59b080702e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -81,17 +86,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__Di at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.b__22(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt index 3b99a3aadc..071200bc0d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_Index_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt index 7a8279a020..2757161a6e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_Home_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin/home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt index 5e459ae60c..c65c420ac2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Admin_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: admin, + aspnet.controller: home, + aspnet.route: Admin/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, language: dotnet, - aspnet.route: Admin/{controller}/{action}/{id}, - aspnet.area: admin, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /admin, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt index 71e7d0d3cf..a4de35a9f1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_BadRequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -58,14 +59,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -83,6 +84,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -111,17 +116,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/badrequest, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt index bff5f955bc..d4af9f6c90 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt index 2c53b7547d..77b8960aed 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_BadValue_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt index 0df4032f91..6e94f4f01e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_OptionalIdentifier_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optionalidentifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: optionalidentifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/optionalidentifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt index fc9f259857..c64bed55ac 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /home/statuscode?value=201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt index 3efb96c9ce..4cff318b9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_StatusCode-value=503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /home/statuscode?value=503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt index 99df012db8..b3b4b0aba9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_123_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/identifier/123, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt index 54c3ee2ede..b5449f1139 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_BadValue_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -63,14 +64,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -88,6 +89,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -121,17 +126,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier/badvalue, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt index f29fdcbc88..69d9082fd7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_identifier_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -63,14 +64,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -88,6 +89,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: identifier, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Identifier(Int32)' in 'Samples.AspNetMvc4.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -121,17 +126,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/identifier, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: identifier + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc4Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index fe69e900f8..e6ad320b16 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 4d915ac83a..b9c8334f9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index fc03b9b78a..8886a386df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 19c3dd690e..7673f5ebe2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -93,17 +98,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 9177e1455f..8313d826c9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -35,14 +36,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -60,6 +61,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -87,17 +92,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 50bcee9c97..4fdfdfb8c6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index ed4d3e5b5e..92b8e7f030 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index e991c9675d..7404a48370 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 85d254f4cf..bd7f33e4e7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index ac36b17b6e..035bcf3794 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cdabe7a510..5d7433ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index fe69e900f8..e6ad320b16 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 4d915ac83a..b9c8334f9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index fc03b9b78a..8886a386df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 08798a9324..7a4948b94e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -50,14 +51,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -75,6 +76,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -117,17 +122,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 31fead0c7d..3a9ea0bb2d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -49,14 +50,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -74,6 +75,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -115,17 +120,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 50bcee9c97..4fdfdfb8c6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index ed4d3e5b5e..92b8e7f030 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index e991c9675d..7404a48370 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 85d254f4cf..bd7f33e4e7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index ac36b17b6e..035bcf3794 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cdabe7a510..5d7433ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index 4b862343b1..8303e1f7cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 9b66bbbb69..19eea490c7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index 905819b638..e914975004 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 19c3dd690e..7673f5ebe2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -93,17 +98,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 9177e1455f..8313d826c9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -35,14 +36,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -60,6 +61,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -87,17 +92,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 17c870c610..ca96ef0cc1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index 4daab38642..4fe217375a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index ec1945cf40..43f5cb418b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 32dda07ff7..a38e839ee7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index c8c00535e6..eef3cbcee5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e5fde87521..2cf5e2eb83 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index 4b862343b1..8303e1f7cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 9b66bbbb69..19eea490c7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index 905819b638..e914975004 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 08798a9324..7a4948b94e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -50,14 +51,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -75,6 +76,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -117,17 +122,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 31fead0c7d..3a9ea0bb2d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -49,14 +50,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -74,6 +75,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -115,17 +120,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 17c870c610..ca96ef0cc1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index 4daab38642..4fe217375a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index ec1945cf40..43f5cb418b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 32dda07ff7..a38e839ee7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index c8c00535e6..eef3cbcee5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e5fde87521..2cf5e2eb83 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index fe69e900f8..e6ad320b16 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 4d915ac83a..b9c8334f9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index fc03b9b78a..8886a386df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 8f7b4babb4..fad9799e81 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -93,17 +98,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 58f41108f6..23ec242184 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -35,14 +36,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -60,6 +61,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -87,17 +92,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 50bcee9c97..4fdfdfb8c6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index ed4d3e5b5e..92b8e7f030 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index e991c9675d..7404a48370 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 85d254f4cf..bd7f33e4e7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index ac36b17b6e..035bcf3794 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cdabe7a510..5d7433ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index fe69e900f8..e6ad320b16 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 4d915ac83a..b9c8334f9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index fc03b9b78a..8886a386df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 6338759abd..62774e6700 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -50,14 +51,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -75,6 +76,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -117,17 +122,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index ae3672ddc5..4d69d7cc2c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -49,14 +50,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -74,6 +75,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -115,17 +120,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 50bcee9c97..4fdfdfb8c6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index ed4d3e5b5e..92b8e7f030 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index e991c9675d..7404a48370 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 85d254f4cf..bd7f33e4e7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index ac36b17b6e..035bcf3794 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cdabe7a510..5d7433ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index 4b862343b1..8303e1f7cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 9b66bbbb69..19eea490c7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index 905819b638..e914975004 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 8f7b4babb4..fad9799e81 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -38,14 +39,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -63,6 +64,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -93,17 +98,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 58f41108f6..23ec242184 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -35,14 +36,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -60,6 +61,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -87,17 +92,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 17c870c610..ca96ef0cc1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index 4daab38642..4fe217375a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index ec1945cf40..43f5cb418b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 32dda07ff7..a38e839ee7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index c8c00535e6..eef3cbcee5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e5fde87521..2cf5e2eb83 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index 4b862343b1..8303e1f7cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 9b66bbbb69..19eea490c7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index 905819b638..e914975004 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 6338759abd..62774e6700 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -50,14 +51,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -75,6 +76,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -117,17 +122,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index ae3672ddc5..4d69d7cc2c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -49,14 +50,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -74,6 +75,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -115,17 +120,13 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 17c870c610..ca96ef0cc1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index 4daab38642..4fe217375a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index ec1945cf40..43f5cb418b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 32dda07ff7..a38e839ee7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index c8c00535e6..eef3cbcee5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e5fde87521..2cf5e2eb83 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index fe69e900f8..e6ad320b16 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 4d915ac83a..b9c8334f9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index fc03b9b78a..8886a386df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 0fdda07a35..eab857ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -37,14 +38,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -62,6 +63,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -79,17 +84,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.c__DisplayClass3_1.b__1(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 3e19e78cf2..d98801f220 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -34,14 +35,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -59,6 +60,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -73,17 +78,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.c__DisplayClass3_1.b__1(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 50bcee9c97..4fdfdfb8c6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index ed4d3e5b5e..92b8e7f030 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index e991c9675d..7404a48370 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 85d254f4cf..bd7f33e4e7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index ac36b17b6e..035bcf3794 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cdabe7a510..5d7433ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index fe69e900f8..e6ad320b16 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 4d915ac83a..b9c8334f9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index fc03b9b78a..8886a386df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index f0d6050a3e..8d75e83c77 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -62,14 +63,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -87,6 +88,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -118,17 +123,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 8f517d5d78..1725a44961 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -61,14 +62,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -86,6 +87,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -116,17 +121,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 50bcee9c97..4fdfdfb8c6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index ed4d3e5b5e..92b8e7f030 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index e991c9675d..7404a48370 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 85d254f4cf..bd7f33e4e7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index ac36b17b6e..035bcf3794 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cdabe7a510..5d7433ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index 4b862343b1..8303e1f7cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 9b66bbbb69..19eea490c7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index 905819b638..e914975004 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 0fdda07a35..eab857ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -37,14 +38,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -62,6 +63,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -79,17 +84,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.c__DisplayClass3_1.b__1(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 3e19e78cf2..d98801f220 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -34,14 +35,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -59,6 +60,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -73,17 +78,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.c__DisplayClass3_1.b__1(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 17c870c610..ca96ef0cc1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index 4daab38642..4fe217375a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index ec1945cf40..43f5cb418b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 32dda07ff7..a38e839ee7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index c8c00535e6..eef3cbcee5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e5fde87521..2cf5e2eb83 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index 4b862343b1..8303e1f7cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 9b66bbbb69..19eea490c7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index 905819b638..e914975004 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index f0d6050a3e..8d75e83c77 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -62,14 +63,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -87,6 +88,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -118,17 +123,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 8f517d5d78..1725a44961 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -61,14 +62,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -86,6 +87,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -116,17 +121,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 17c870c610..ca96ef0cc1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index 4daab38642..4fe217375a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index ec1945cf40..43f5cb418b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 32dda07ff7..a38e839ee7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index c8c00535e6..eef3cbcee5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e5fde87521..2cf5e2eb83 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index fe69e900f8..e6ad320b16 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 4d915ac83a..b9c8334f9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index fc03b9b78a..8886a386df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 47bb43f898..fab33d3caa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -37,14 +38,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -62,6 +63,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -79,17 +84,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.c__DisplayClass3_1.b__1(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 15cdee793a..671e214f75 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -34,14 +35,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -59,6 +60,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -73,17 +78,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.c__DisplayClass3_1.b__1(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 50bcee9c97..4fdfdfb8c6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index ed4d3e5b5e..92b8e7f030 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index e991c9675d..7404a48370 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 85d254f4cf..bd7f33e4e7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index ac36b17b6e..035bcf3794 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cdabe7a510..5d7433ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index fe69e900f8..e6ad320b16 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 4d915ac83a..b9c8334f9a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index fc03b9b78a..8886a386df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 883031edb9..bc63228623 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -62,14 +63,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -87,6 +88,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -118,17 +123,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index 78f66b00c8..ee2d108060 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 9cf23ee732..c3e4a86f25 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index abd3f3cecd..fd0b3e7b23 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -61,14 +62,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -86,6 +87,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -116,17 +121,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 50bcee9c97..4fdfdfb8c6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index ed4d3e5b5e..92b8e7f030 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index e991c9675d..7404a48370 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 85d254f4cf..bd7f33e4e7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index ac36b17b6e..035bcf3794 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cdabe7a510..5d7433ed21 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index 4b862343b1..8303e1f7cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 9b66bbbb69..19eea490c7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index 905819b638..e914975004 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 47bb43f898..fab33d3caa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -37,14 +38,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -62,6 +63,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -79,17 +84,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.c__DisplayClass3_1.b__1(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 97% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index 15cdee793a..671e214f75 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -34,14 +35,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -59,6 +60,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -73,17 +78,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.c__DisplayClass3_1.b__1(IAsyncResult asyncResult) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 17c870c610..ca96ef0cc1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index 4daab38642..4fe217375a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index ec1945cf40..43f5cb418b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 32dda07ff7..a38e839ee7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index c8c00535e6..eef3cbcee5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e5fde87521..2cf5e2eb83 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt index d40af51e1c..3f26126de6 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_Woof_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: woof, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: woof + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse/woof, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt index 4b862343b1..8303e1f7cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_DogHouse_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog/doghouse, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt index 9b66bbbb69..19eea490c7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_DataDog_statusCode=OK.verified.txt @@ -8,18 +8,18 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.area: datadog, + aspnet.controller: doghouse, + aspnet.route: Datadog/{controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, language: dotnet, - aspnet.route: Datadog/{controller}/{action}/{id}, - aspnet.area: datadog, - aspnet.controller: doghouse, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -31,13 +31,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /datadog, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt index 905819b638..e914975004 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_3_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/get/3, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt index 883031edb9..bc63228623 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Get_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -62,14 +63,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -87,6 +88,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: get, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, + env: integration_tests, error.msg: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Get(Int32)' in 'Samples.AspNetMvc5.Controllers.HomeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters, @@ -118,17 +123,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /home/get, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: get + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt index 0cc03a574f..0e603604e8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_Index_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home/index, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt index b57f672e41..6f0c8098ca 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_Home_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /home, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt index 13e5d9c828..829ead2a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=__statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: index, + aspnet.controller: home, + aspnet.route: {controller}/{action}/{id}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, language: dotnet, - aspnet.route: {controller}/{action}/{id}, - aspnet.controller: home, - aspnet.action: index + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt similarity index 98% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt index abd3f3cecd..fd0b3e7b23 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_badrequest_statusCode=InternalServerError.verified.txt @@ -8,6 +8,7 @@ Type: web, Error: 1, Tags: { + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -61,14 +62,14 @@ at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplicatio at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -86,6 +87,10 @@ at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& complete ParentId: Id_2, Error: 1, Tags: { + aspnet.action: badrequest, + aspnet.controller: home, + aspnet.route: badrequest, + env: integration_tests, error.msg: Oops, it broke., error.stack: System.Exception: Oops, it broke. @@ -116,17 +121,13 @@ at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResul at EndInvokeAction(Object , Object ) at Datadog.Trace.ClrProfiler.Integrations.AspNetMvcIntegration.EndInvokeAction(Object asyncControllerActionInvoker, Object asyncResult, Int32 opCode, Int32 mdToken, Int64 moduleVersionPtr), error.type: System.Exception, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /badrequest, language: dotnet, - aspnet.route: badrequest, - aspnet.controller: home, - aspnet.action: badrequest + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt index 17c870c610..ca96ef0cc1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-async_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: home, + aspnet.route: delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, language: dotnet, - aspnet.route: delay-async/{seconds}, - aspnet.controller: home, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt index 4daab38642..4fe217375a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt index ec1945cf40..43f5cb418b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay-optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: home, + aspnet.route: delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, language: dotnet, - aspnet.route: delay-optional/{seconds}, - aspnet.controller: home, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt index 32dda07ff7..a38e839ee7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: home, + aspnet.route: delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, language: dotnet, - aspnet.route: delay/{seconds}, - aspnet.controller: home, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt index c8c00535e6..eef3cbcee5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e5fde87521..2cf5e2eb83 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetMvc5Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: home, + aspnet.route: statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, language: dotnet, - aspnet.route: statuscode/{value}, - aspnet.controller: home, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 834a087783..10574410aa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 8741ffc57c..94857b9f7d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index fc6d0dec18..d86d2441f0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fe9e6286bd..4d981f095d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 7b72614f82..7e81a8c88a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 6049207ec3..d755f24e71 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index a41bb1def9..08aeb377bc 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -46,17 +51,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index 67faa268c4..6f8fcf2beb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8de560f792..4a77921312 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 2839bdad4a..f8c36c0815 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index cabcb7f500..3c257e2f60 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 6e61293b46..d7fedbf111 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 6d0ef17d0c..28c6f139db 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 745546f401..68b81ec712 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 73fe5665f7..c670cced69 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cc309231d0..332d4ed7df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 575f07c698..93dfa2a9de 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -46,15 +49,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 3176d48814..f4416e85a2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 834a087783..10574410aa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 8741ffc57c..94857b9f7d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index fc6d0dec18..d86d2441f0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fe9e6286bd..4d981f095d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 7b72614f82..7e81a8c88a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 6049207ec3..d755f24e71 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 1231d677a7..c0a05a3c91 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -45,17 +50,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index 67faa268c4..6f8fcf2beb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8de560f792..4a77921312 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 2839bdad4a..f8c36c0815 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index cabcb7f500..3c257e2f60 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 6e61293b46..d7fedbf111 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 6d0ef17d0c..28c6f139db 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 745546f401..68b81ec712 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 73fe5665f7..c670cced69 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cc309231d0..332d4ed7df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 104566eb3d..1af6a13a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -45,15 +48,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 3176d48814..f4416e85a2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index e788c86ead..c1075eaaa0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 83a2923ba3..21ec38c261 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 01d47e2f41..615aa6a12e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index 8cdc926f1b..a746c14a8d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index d57f806787..9ad100ecbb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 4bbd3f3a1e..ade0cdabab 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index d6b181089f..7dd527e608 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -46,17 +51,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index e1f03847fc..e12c5e65bf 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 91419118f1..f430f68a1e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index dc24db4955..8abf916381 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 880327bd18..066903d6e2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 5a3faf1b71..bb1d105a65 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 1980ae440c..d42b09e9e1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 39c53cddca..da03778455 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 0cf7a57ca2..8b1f4a5644 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index fb5366653c..245c4c8086 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 3192a26336..85cf64f6cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -46,15 +49,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2988bd8d83..6ecb49eaf3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index e788c86ead..c1075eaaa0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 83a2923ba3..21ec38c261 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 01d47e2f41..615aa6a12e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index 8cdc926f1b..a746c14a8d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index d57f806787..9ad100ecbb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 4bbd3f3a1e..ade0cdabab 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 64d0b7bdda..dc66f39b8a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -45,17 +50,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index e1f03847fc..e12c5e65bf 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 91419118f1..f430f68a1e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index dc24db4955..8abf916381 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 880327bd18..066903d6e2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 5a3faf1b71..bb1d105a65 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 1980ae440c..d42b09e9e1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 39c53cddca..da03778455 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 0cf7a57ca2..8b1f4a5644 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index fb5366653c..245c4c8086 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index f354aecf6d..5775409d15 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -45,15 +48,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2988bd8d83..6ecb49eaf3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 834a087783..10574410aa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 8741ffc57c..94857b9f7d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index fc6d0dec18..d86d2441f0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fe9e6286bd..4d981f095d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 7b72614f82..7e81a8c88a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 6049207ec3..d755f24e71 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index a41bb1def9..08aeb377bc 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -46,17 +51,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index 67faa268c4..6f8fcf2beb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8de560f792..4a77921312 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 2839bdad4a..f8c36c0815 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index cabcb7f500..3c257e2f60 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 6e61293b46..d7fedbf111 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 6d0ef17d0c..28c6f139db 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 745546f401..68b81ec712 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 73fe5665f7..c670cced69 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cc309231d0..332d4ed7df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 575f07c698..93dfa2a9de 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -46,15 +49,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 3176d48814..f4416e85a2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 834a087783..10574410aa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 8741ffc57c..94857b9f7d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index fc6d0dec18..d86d2441f0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fe9e6286bd..4d981f095d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 7b72614f82..7e81a8c88a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 6049207ec3..d755f24e71 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 1231d677a7..c0a05a3c91 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -45,17 +50,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index 67faa268c4..6f8fcf2beb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8de560f792..4a77921312 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 2839bdad4a..f8c36c0815 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index cabcb7f500..3c257e2f60 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 6e61293b46..d7fedbf111 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 6d0ef17d0c..28c6f139db 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 745546f401..68b81ec712 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 73fe5665f7..c670cced69 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cc309231d0..332d4ed7df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 104566eb3d..1af6a13a80 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -45,15 +48,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 3176d48814..f4416e85a2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index e788c86ead..c1075eaaa0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 83a2923ba3..21ec38c261 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 01d47e2f41..615aa6a12e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index 8cdc926f1b..a746c14a8d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index d57f806787..9ad100ecbb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 4bbd3f3a1e..ade0cdabab 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index d6b181089f..7dd527e608 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -46,17 +51,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index e1f03847fc..e12c5e65bf 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 91419118f1..f430f68a1e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index dc24db4955..8abf916381 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 880327bd18..066903d6e2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 5a3faf1b71..bb1d105a65 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 1980ae440c..d42b09e9e1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 39c53cddca..da03778455 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 0cf7a57ca2..8b1f4a5644 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index fb5366653c..245c4c8086 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 3192a26336..85cf64f6cb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -46,15 +49,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2988bd8d83..6ecb49eaf3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index e788c86ead..c1075eaaa0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 83a2923ba3..21ec38c261 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 01d47e2f41..615aa6a12e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index 8cdc926f1b..a746c14a8d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index d57f806787..9ad100ecbb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 4bbd3f3a1e..ade0cdabab 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 64d0b7bdda..dc66f39b8a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -45,17 +50,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index e1f03847fc..e12c5e65bf 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 91419118f1..f430f68a1e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index dc24db4955..8abf916381 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 880327bd18..066903d6e2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 5a3faf1b71..bb1d105a65 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 1980ae440c..d42b09e9e1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 39c53cddca..da03778455 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 0cf7a57ca2..8b1f4a5644 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index fb5366653c..245c4c8086 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index f354aecf6d..5775409d15 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -45,15 +48,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2988bd8d83..6ecb49eaf3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallSite.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 834a087783..10574410aa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 8741ffc57c..94857b9f7d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index fc6d0dec18..d86d2441f0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fe9e6286bd..4d981f095d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 7b72614f82..7e81a8c88a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 6049207ec3..d755f24e71 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 60251365af..c23a03681e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -48,17 +53,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index 67faa268c4..6f8fcf2beb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8de560f792..4a77921312 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 2839bdad4a..f8c36c0815 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index cabcb7f500..3c257e2f60 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 6e61293b46..d7fedbf111 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 6d0ef17d0c..28c6f139db 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 745546f401..68b81ec712 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 73fe5665f7..c670cced69 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cc309231d0..332d4ed7df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 47539b7dc0..4a00a9cea4 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -48,15 +51,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 3176d48814..f4416e85a2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 834a087783..10574410aa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 8741ffc57c..94857b9f7d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index fc6d0dec18..d86d2441f0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fe9e6286bd..4d981f095d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 7b72614f82..7e81a8c88a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 6049207ec3..d755f24e71 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 4cad3b3275..21cae239a5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -49,17 +54,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index 67faa268c4..6f8fcf2beb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8de560f792..4a77921312 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 2839bdad4a..f8c36c0815 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index cabcb7f500..3c257e2f60 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 6e61293b46..d7fedbf111 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 6d0ef17d0c..28c6f139db 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 745546f401..68b81ec712 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 73fe5665f7..c670cced69 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cc309231d0..332d4ed7df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index d3fa01ef35..490e3aa933 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -49,15 +52,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 3176d48814..f4416e85a2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index e788c86ead..c1075eaaa0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 83a2923ba3..21ec38c261 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 01d47e2f41..615aa6a12e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index 8cdc926f1b..a746c14a8d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index d57f806787..9ad100ecbb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 4bbd3f3a1e..ade0cdabab 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 8009e4bdca..b9d2956cea 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -48,17 +53,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index e1f03847fc..e12c5e65bf 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 91419118f1..f430f68a1e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index dc24db4955..8abf916381 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 880327bd18..066903d6e2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 5a3faf1b71..bb1d105a65 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 1980ae440c..d42b09e9e1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 39c53cddca..da03778455 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 0cf7a57ca2..8b1f4a5644 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index fb5366653c..245c4c8086 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index afaabafd0f..9189c4e856 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -48,15 +51,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2988bd8d83..6ecb49eaf3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index e788c86ead..c1075eaaa0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 83a2923ba3..21ec38c261 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 01d47e2f41..615aa6a12e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index 8cdc926f1b..a746c14a8d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index d57f806787..9ad100ecbb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 4bbd3f3a1e..ade0cdabab 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 6d0eb91832..83478d603d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -49,17 +54,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index e1f03847fc..e12c5e65bf 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 91419118f1..f430f68a1e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index dc24db4955..8abf916381 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 880327bd18..066903d6e2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 5a3faf1b71..bb1d105a65 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 1980ae440c..d42b09e9e1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 39c53cddca..da03778455 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 0cf7a57ca2..8b1f4a5644 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index fb5366653c..245c4c8086 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 5d36a43ac7..70f7e2bc0c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -49,15 +52,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2988bd8d83..6ecb49eaf3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Classic.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 834a087783..10574410aa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 8741ffc57c..94857b9f7d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index fc6d0dec18..d86d2441f0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fe9e6286bd..4d981f095d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 7b72614f82..7e81a8c88a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 6049207ec3..d755f24e71 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 60251365af..c23a03681e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -48,17 +53,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index 67faa268c4..6f8fcf2beb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8de560f792..4a77921312 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 2839bdad4a..f8c36c0815 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index cabcb7f500..3c257e2f60 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 6e61293b46..d7fedbf111 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 6d0ef17d0c..28c6f139db 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 745546f401..68b81ec712 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 73fe5665f7..c670cced69 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cc309231d0..332d4ed7df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 47539b7dc0..4a00a9cea4 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -48,15 +51,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 3176d48814..f4416e85a2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 834a087783..10574410aa 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 8741ffc57c..94857b9f7d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index fc6d0dec18..d86d2441f0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fe9e6286bd..4d981f095d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 7b72614f82..7e81a8c88a 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 6049207ec3..d755f24e71 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 4cad3b3275..21cae239a5 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -49,17 +54,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index 67faa268c4..6f8fcf2beb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8de560f792..4a77921312 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 2839bdad4a..f8c36c0815 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index cabcb7f500..3c257e2f60 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 6e61293b46..d7fedbf111 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 6d0ef17d0c..28c6f139db 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 745546f401..68b81ec712 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 73fe5665f7..c670cced69 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index cc309231d0..332d4ed7df 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index d3fa01ef35..490e3aa933 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -49,15 +52,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 3176d48814..f4416e85a2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index e788c86ead..c1075eaaa0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 83a2923ba3..21ec38c261 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 01d47e2f41..615aa6a12e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index 8cdc926f1b..a746c14a8d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index d57f806787..9ad100ecbb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 4bbd3f3a1e..ade0cdabab 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 8009e4bdca..b9d2956cea 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -48,17 +53,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index e1f03847fc..e12c5e65bf 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 91419118f1..f430f68a1e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index dc24db4955..8abf916381 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 880327bd18..066903d6e2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 5a3faf1b71..bb1d105a65 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 1980ae440c..d42b09e9e1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 39c53cddca..da03778455 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 0cf7a57ca2..8b1f4a5644 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index fb5366653c..245c4c8086 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index afaabafd0f..9189c4e856 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -48,15 +51,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2988bd8d83..6ecb49eaf3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index e788c86ead..c1075eaaa0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delayasync/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 83a2923ba3..21ec38c261 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 01d47e2f41..615aa6a12e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index 8cdc926f1b..a746c14a8d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index d57f806787..9ad100ecbb 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api2/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 90% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 4bbd3f3a1e..ade0cdabab 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,18 +9,18 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + span.kind: server, + version: 1.0.0 } }, { @@ -32,15 +32,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api2/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 6d0eb91832..83478d603d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api2/transientfailure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,10 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -49,17 +54,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index e1f03847fc..e12c5e65bf 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -8,17 +8,17 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + span.kind: server, + version: 1.0.0 } }, { @@ -30,13 +30,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api2/transientfailure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 91419118f1..f430f68a1e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/absolute-route, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index dc24db4955..8abf916381 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-async/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 880327bd18..066903d6e2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional/1, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 5a3faf1b71..bb1d105a65 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay-optional, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index 1980ae440c..d42b09e9e1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/delay/0, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 39c53cddca..da03778455 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/environment, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index 0cf7a57ca2..8b1f4a5644 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: /api/statuscode/201, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index fb5366653c..245c4c8086 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -9,16 +9,16 @@ ParentId: Id_3, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -30,15 +30,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: /api/statuscode/503, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 5d36a43ac7..70f7e2bc0c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,15 +8,16 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 500., env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, + error.msg: The HTTP response has status code 500., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: /api/transient-failure/false, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, @@ -34,6 +35,8 @@ ParentId: Id_2, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -49,15 +52,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 500, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 500, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } } ] \ No newline at end of file diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2988bd8d83..6ecb49eaf3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/AspNetWebApi2Tests.CallTarget.Integrated.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -8,15 +8,15 @@ Type: web, ParentId: Id_3, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + span.kind: server, + version: 1.0.0 } }, { @@ -28,13 +28,14 @@ Type: web, Tags: { env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: /api/transient-failure/true, - language: dotnet + language: dotnet, + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 8b7ef8bbbd..d9346747c4 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 23f946a35d..721722ce3c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 6c22a4e714..360af5d1c0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index af44114e2a..5240cd6137 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 25a149de61..906a2564c1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e4a0f6f1fe..d478a2424c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,18 +8,19 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 0e60542b94..86927eaa8d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,10 @@ Type: web, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -20,16 +24,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__5.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index ffacebc8de..e2e942a42d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 2d9eb83547..f7e604bfd0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 1013948f86..f33868ac6b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 923a78c429..55b59218ef 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 8c1fb08aab..b2ebdef62b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index c09dc3b16c..c57bf0728c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 1119d7e3c0..1596ffa4ea 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index b3fee94fbc..4f08b86dc8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 689c3c504c..d06c0d3b55 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,16 +8,17 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 501a007934..65565f5fd0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,8 @@ Type: web, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -20,14 +22,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__5.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index b29ad70249..399527b15d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 8b7ef8bbbd..d9346747c4 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 23f946a35d..721722ce3c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 6c22a4e714..360af5d1c0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index af44114e2a..5240cd6137 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 25a149de61..906a2564c1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e4a0f6f1fe..d478a2424c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,18 +8,19 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index e9f702d916..968bf243d2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,10 @@ Type: web, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -19,16 +23,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index ffacebc8de..e2e942a42d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 2d9eb83547..f7e604bfd0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 1013948f86..f33868ac6b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 923a78c429..55b59218ef 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 8c1fb08aab..b2ebdef62b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index c09dc3b16c..c57bf0728c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 1119d7e3c0..1596ffa4ea 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index b3fee94fbc..4f08b86dc8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 689c3c504c..d06c0d3b55 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,16 +8,17 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 564d537e26..4ffad47355 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,8 @@ Type: web, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -19,14 +21,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index b29ad70249..399527b15d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 4e8cb6c92f..fa83649cef 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 7a8c7cf759..a931c079f2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 02f705764d..bd9f420031 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fefe2af453..8e01f51d53 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index b6d6f01dde..e4f855d797 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 883e0213fb..7316954e74 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,18 +8,19 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index da826608b2..d306c26570 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,10 @@ Type: web, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -20,16 +24,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__5.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index fcb2818164..56e461f664 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8571dba207..943f7417d7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 767ed2fbb4..59be3c163c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index bd6d496ec0..9b5953fd27 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 69029ce26d..61d208ab96 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index f45e46f48c..cd56e6fe00 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index fe911a6082..1f88d1c8d8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index a4ce436dcd..0efeac807e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 5bf11d08d6..ffe8bc3170 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,16 +8,17 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index ebaaa34c85..ba2a2db073 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,8 @@ Type: web, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -20,14 +22,13 @@ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__5.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2177c2e1e1..4d74b16590 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 4e8cb6c92f..fa83649cef 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 7a8c7cf759..a931c079f2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 02f705764d..bd9f420031 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fefe2af453..8e01f51d53 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index b6d6f01dde..e4f855d797 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 883e0213fb..7316954e74 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,18 +8,19 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index e9432bc12c..e72a661b6c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,10 @@ Type: web, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -19,16 +23,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index fcb2818164..56e461f664 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8571dba207..943f7417d7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 767ed2fbb4..59be3c163c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index bd6d496ec0..9b5953fd27 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 69029ce26d..61d208ab96 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index f45e46f48c..cd56e6fe00 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index fe911a6082..1f88d1c8d8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index a4ce436dcd..0efeac807e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 5bf11d08d6..ffe8bc3170 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,16 +8,17 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 93% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 613597ec6f..64034c17da 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,8 @@ Type: web, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -19,14 +21,13 @@ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpCo at System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext() at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2177c2e1e1..4d74b16590 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallSite.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 8b7ef8bbbd..d9346747c4 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 23f946a35d..721722ce3c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 6c22a4e714..360af5d1c0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index af44114e2a..5240cd6137 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 25a149de61..906a2564c1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e4a0f6f1fe..d478a2424c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,18 +8,19 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 95% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 4f358dba2f..d9493b7f0e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,10 @@ Type: web, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -22,16 +26,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index ffacebc8de..e2e942a42d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 2d9eb83547..f7e604bfd0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 1013948f86..f33868ac6b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 923a78c429..55b59218ef 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 8c1fb08aab..b2ebdef62b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index c09dc3b16c..c57bf0728c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 1119d7e3c0..1596ffa4ea 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index b3fee94fbc..4f08b86dc8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 689c3c504c..d06c0d3b55 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,16 +8,17 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index fe1a297de3..dff1af7d3c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,8 @@ Type: web, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -22,14 +24,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index b29ad70249..399527b15d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 8b7ef8bbbd..d9346747c4 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 23f946a35d..721722ce3c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 6c22a4e714..360af5d1c0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index af44114e2a..5240cd6137 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index 25a149de61..906a2564c1 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index e4a0f6f1fe..d478a2424c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,18 +8,19 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 95% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 0fd0031b17..c103553804 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,10 @@ Type: web, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -23,16 +27,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index ffacebc8de..e2e942a42d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 2d9eb83547..f7e604bfd0 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 1013948f86..f33868ac6b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index 923a78c429..55b59218ef 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 8c1fb08aab..b2ebdef62b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index c09dc3b16c..c57bf0728c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index 1119d7e3c0..1596ffa4ea 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index b3fee94fbc..4f08b86dc8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 689c3c504c..d06c0d3b55 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,16 +8,17 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 22b54a9bda..23c4474c54 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,8 @@ Type: web, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -23,14 +25,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index b29ad70249..399527b15d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.NoFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 4e8cb6c92f..fa83649cef 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 7a8c7cf759..a931c079f2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 02f705764d..bd9f420031 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fefe2af453..8e01f51d53 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index b6d6f01dde..e4f855d797 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 883e0213fb..7316954e74 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,18 +8,19 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 95% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index db23ce31d7..06086bb3c3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,10 @@ Type: web, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -22,16 +26,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index fcb2818164..56e461f664 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8571dba207..943f7417d7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 767ed2fbb4..59be3c163c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index bd6d496ec0..9b5953fd27 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 69029ce26d..61d208ab96 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index f45e46f48c..cd56e6fe00 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index fe911a6082..1f88d1c8d8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index a4ce436dcd..0efeac807e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 5bf11d08d6..ffe8bc3170 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,16 +8,17 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index 87f43698c3..ec1f2d0903 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,8 @@ Type: web, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -22,14 +24,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2177c2e1e1..4d74b16590 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X64.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt index 4e8cb6c92f..fa83649cef 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delayAsync_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delayasync, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delayasync/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delayasync + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt index 7a8c7cf759..a931c079f2 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_delay_0_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: delay, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/delay/0, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: delay + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt index 02f705764d..bd9f420031 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_1_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional/1, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt index fefe2af453..8e01f51d53 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_optional_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: optional, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/optional, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: optional + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt index b6d6f01dde..e4f855d797 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_201_statusCode=Created.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api2/statuscode/201, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 89% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 883e0213fb..7316954e74 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,18 +8,19 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.action: statuscode, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api2/statuscode/503, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: statuscode + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt similarity index 95% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt index 7a8bca48f6..b12e929640 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,10 @@ Type: web, Error: 1, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -23,16 +27,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api2/transientfailure/false, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt similarity index 88% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt index fcb2818164..56e461f664 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api2_transientfailure_true_statusCode=OK.verified.txt @@ -7,17 +7,18 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.action: transientfailure, + aspnet.controller: conventions, + aspnet.route: api2/{action}/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api2/transientfailure/true, language: dotnet, - aspnet.route: api2/{action}/{value}, - aspnet.controller: conventions, - aspnet.action: transientfailure + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt index 8571dba207..943f7417d7 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_absolute-route_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/absolute-route, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/absolute-route, language: dotnet, - aspnet.route: api/absolute-route + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt index 767ed2fbb4..59be3c163c 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-async_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-async/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-async/0, language: dotnet, - aspnet.route: api/delay-async/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt index bd6d496ec0..9b5953fd27 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_1_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional/1, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt index 69029ce26d..61d208ab96 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay-optional_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay-optional/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay-optional, language: dotnet, - aspnet.route: api/delay-optional/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt index f45e46f48c..cd56e6fe00 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_delay_0_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/delay/{seconds}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/delay/0, language: dotnet, - aspnet.route: api/delay/{seconds} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt similarity index 86% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt index fe911a6082..1f88d1c8d8 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_environment_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/environment, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/environment, language: dotnet, - aspnet.route: api/environment + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt similarity index 85% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt index a4ce436dcd..0efeac807e 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_201_statusCode=Created.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 201, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 201, http.url: http://localhost:00000/api/statuscode/201, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt similarity index 87% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt index 5bf11d08d6..ffe8bc3170 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_statuscode_503_statusCode=ServiceUnavailable.verified.txt @@ -8,16 +8,17 @@ Type: web, Error: 1, Tags: { - error.msg: The HTTP response has status code 503., + aspnet.route: api/statuscode/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 503, + error.msg: The HTTP response has status code 503., http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 503, http.url: http://localhost:00000/api/statuscode/503, language: dotnet, - aspnet.route: api/statuscode/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt similarity index 94% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt index a40ab152da..e3fda55362 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_false_statusCode=InternalServerError.verified.txt @@ -8,6 +8,8 @@ Type: web, Error: 1, Tags: { + aspnet.route: api/transient-failure/{value}, + env: integration_tests, error.msg: Passed in value was not 'true': false, error.stack: System.ArgumentException: Passed in value was not 'true': false @@ -23,14 +25,13 @@ at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Datadog.Trace.ClrProfiler.Integrations.AspNetWebApi2Integration.d__9`1.MoveNext(), error.type: System.ArgumentException, - env: integration_tests, - version: 1.0.0, - span.kind: server, http.method: GET, http.request.headers.host: localhost:00000, http.url: http://localhost:00000/api/transient-failure/false, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt similarity index 84% rename from test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt rename to test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt index 2177c2e1e1..4d74b16590 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/AspNet/Snapshots/OwinWebApi2Tests.CallTarget.WithFF.X86.SubmitsTraces_path=_api_transient-failure_true_statusCode=OK.verified.txt @@ -7,15 +7,16 @@ Service: Samples.Owin.WebApi2, Type: web, Tags: { + aspnet.route: api/transient-failure/{value}, env: integration_tests, - version: 1.0.0, - span.kind: server, - http.status_code: 200, http.method: GET, http.request.headers.host: localhost:00000, + http.status_code: 200, http.url: http://localhost:00000/api/transient-failure/true, language: dotnet, - aspnet.route: api/transient-failure/{value} + runtime-id: Guid_1, + span.kind: server, + version: 1.0.0 }, Metrics: { _sampling_priority_v1: 1.0, diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/MsTestV2Tests.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/MsTestV2Tests.cs index ed3d96201e..6d0d92cfd3 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/MsTestV2Tests.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/MsTestV2Tests.cs @@ -74,6 +74,9 @@ public void SubmitTraces(string packageVersion) // check the version AssertTargetSpanEqual(targetSpan, "version", "1.0.0"); + // checks the runtime id tag + AssertTargetSpanExists(targetSpan, Tags.RuntimeId); + // checks the origin tag CheckOriginTag(targetSpan); @@ -199,6 +202,12 @@ private static void AssertTargetSpanEqual(MockTracerAgent.Span targetSpan, strin targetSpan.Tags.Remove(key); } + private static void AssertTargetSpanExists(MockTracerAgent.Span targetSpan, string key) + { + Assert.True(targetSpan.Tags.ContainsKey(key)); + targetSpan.Tags.Remove(key); + } + private static void AssertTargetSpanContains(MockTracerAgent.Span targetSpan, string key, string value) { Assert.Contains(value, targetSpan.Tags[key]); diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/NUnitTests.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/NUnitTests.cs index d8e3029ad2..6a3962497d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/NUnitTests.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/NUnitTests.cs @@ -100,6 +100,9 @@ public void SubmitTraces(string packageVersion, bool enableCallTarget) // check the version AssertTargetSpanEqual(targetSpan, "version", "1.0.0"); + // checks the runtime id tag + AssertTargetSpanExists(targetSpan, Tags.RuntimeId); + // checks the origin tag CheckOriginTag(targetSpan); @@ -241,6 +244,12 @@ private static void AssertTargetSpanEqual(MockTracerAgent.Span targetSpan, strin targetSpan.Tags.Remove(key); } + private static void AssertTargetSpanExists(MockTracerAgent.Span targetSpan, string key) + { + Assert.True(targetSpan.Tags.ContainsKey(key)); + targetSpan.Tags.Remove(key); + } + private static void AssertTargetSpanContains(MockTracerAgent.Span targetSpan, string key, string value) { Assert.Contains(value, targetSpan.Tags[key]); diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/XUnitTests.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/XUnitTests.cs index 8d770e43d1..5f111931e4 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/XUnitTests.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/CI/XUnitTests.cs @@ -89,6 +89,9 @@ public void SubmitTraces(string packageVersion, bool enableCallTarget) // checks the origin tag CheckOriginTag(targetSpan); + // checks the runtime id tag + AssertTargetSpanExists(targetSpan, Tags.RuntimeId); + // Check the Environment AssertTargetSpanEqual(targetSpan, Tags.Env, "integration_tests"); @@ -222,6 +225,12 @@ private static void AssertTargetSpanEqual(MockTracerAgent.Span targetSpan, strin targetSpan.Tags.Remove(key); } + private static void AssertTargetSpanExists(MockTracerAgent.Span targetSpan, string key) + { + Assert.True(targetSpan.Tags.ContainsKey(key)); + targetSpan.Tags.Remove(key); + } + private static void AssertTargetSpanContains(MockTracerAgent.Span targetSpan, string key, string value) { Assert.Contains(value, targetSpan.Tags[key]); diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/CosmosTests.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/CosmosTests.cs index 531f7af0da..db8169dc5b 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/CosmosTests.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/CosmosTests.cs @@ -65,11 +65,11 @@ public void SubmitsTraces(string packageVersion) var spans = agent.WaitForSpans(expectedSpanCount, operationName: ExpectedOperationName); spans.Count.Should().BeGreaterOrEqualTo(expectedSpanCount, $"Expecting at least {expectedSpanCount} spans, only received {spans.Count}"); - Console.WriteLine($"spans.Count: {spans.Count}"); + Output.WriteLine($"spans.Count: {spans.Count}"); foreach (var span in spans) { - Console.WriteLine(span); + Output.WriteLine(span.ToString()); } var dbTags = 0; diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/Datadog.Trace.ClrProfiler.IntegrationTests.csproj b/test/Datadog.Trace.ClrProfiler.IntegrationTests/Datadog.Trace.ClrProfiler.IntegrationTests.csproj index 68a48db574..f248a73bde 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/Datadog.Trace.ClrProfiler.IntegrationTests.csproj +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/Datadog.Trace.ClrProfiler.IntegrationTests.csproj @@ -27,9 +27,6 @@ - - - diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/Helpers/TestHelper.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/Helpers/TestHelper.cs index 0d12f85684..235569ade9 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/Helpers/TestHelper.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/Helpers/TestHelper.cs @@ -76,14 +76,12 @@ public Process StartDotnetTestSample(int traceAgentPort, string arguments, strin Output.WriteLine("ApplicationPath: " + appPath); return ProfilerHelper.StartProcessWithProfiler( exec, - appPath, EnvironmentHelper, - integrationPaths, - arguments, + $"{appPath} {arguments ?? string.Empty}", traceAgentPort: traceAgentPort, statsdPort: statsdPort, aspNetCorePort: aspNetCorePort, - forceExecutable: true); + processToProfile: exec); } public ProcessResult RunDotnetTestSampleAndWaitForExit(int traceAgentPort, int? statsdPort = null, string arguments = null, string packageVersion = "", string framework = "") @@ -129,15 +127,17 @@ public Process StartSample(int traceAgentPort, string arguments, string packageV IEnumerable integrationPaths = Directory.EnumerateFiles(".", "*integrations.json").Select(Path.GetFullPath); Output.WriteLine($"Starting Application: {sampleAppPath}"); + var executable = EnvironmentHelper.IsCoreClr() ? EnvironmentHelper.GetSampleExecutionSource() : sampleAppPath; + var args = EnvironmentHelper.IsCoreClr() ? $"{sampleAppPath} {arguments ?? string.Empty}" : arguments; + return ProfilerHelper.StartProcessWithProfiler( - EnvironmentHelper.GetSampleExecutionSource(), - sampleAppPath, + executable, EnvironmentHelper, - integrationPaths, - arguments, + args, traceAgentPort: traceAgentPort, statsdPort: statsdPort, - aspNetCorePort: aspNetCorePort); + aspNetCorePort: aspNetCorePort, + processToProfile: executable); } public ProcessResult RunSampleAndWaitForExit(int traceAgentPort, int? statsdPort = null, string arguments = null, string packageVersion = "", string framework = "") @@ -175,7 +175,7 @@ public ProcessResult RunSampleAndWaitForExit(int traceAgentPort, int? statsdPort // get full paths to integration definitions IEnumerable integrationPaths = Directory.EnumerateFiles(".", "*integrations.json").Select(Path.GetFullPath); - var exe = EnvironmentHelper.GetSampleExecutionSource(); + var iisExpress = EnvironmentHelper.GetSampleExecutionSource(); var configTemplate = File.ReadAllText("applicationHost.config"); @@ -196,16 +196,15 @@ public ProcessResult RunSampleAndWaitForExit(int traceAgentPort, int? statsdPort "/trace:info" }; - Output.WriteLine($"[webserver] starting {exe} {string.Join(" ", args)}"); + Output.WriteLine($"[webserver] starting {iisExpress} {string.Join(" ", args)}"); var process = ProfilerHelper.StartProcessWithProfiler( - EnvironmentHelper.GetSampleExecutionSource(), - EnvironmentHelper.GetSampleExecutionSource(), + iisExpress, EnvironmentHelper, - integrationPaths, arguments: string.Join(" ", args), redirectStandardInput: true, - traceAgentPort: traceAgentPort); + traceAgentPort: traceAgentPort, + processToProfile: iisExpress); var wh = new EventWaitHandle(false, EventResetMode.AutoReset); @@ -324,7 +323,8 @@ protected void SetCallTargetSettings(bool enableCallTarget) string path, MockTracerAgent agent, int httpPort, - HttpStatusCode expectedHttpStatusCode) + HttpStatusCode expectedHttpStatusCode, + int expectedSpanCount = 2) { using var httpClient = new HttpClient(); @@ -339,7 +339,7 @@ protected void SetCallTargetSettings(bool enableCallTarget) agent.SpanFilters.Add(IsServerSpan); return agent.WaitForSpans( - count: 2, + count: expectedSpanCount, minDateTime: testStart, returnAllOperations: true); } diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/Helpers/VerifyHelper.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/Helpers/VerifyHelper.cs index 2b3a8e48eb..8eedd1167d 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/Helpers/VerifyHelper.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/Helpers/VerifyHelper.cs @@ -16,6 +16,7 @@ namespace Datadog.Trace.ClrProfiler.IntegrationTests { internal static class VerifyHelper { + public const string SnapshotDirectory = "Snapshots"; private static readonly Regex LocalhostRegex = new(@"localhost\:\d+", RegexOptions.IgnoreCase | RegexOptions.Compiled); private static readonly Regex KeepRateRegex = new(@"_dd.tracer_kr: \d\.\d+", RegexOptions.IgnoreCase | RegexOptions.Compiled); @@ -35,7 +36,12 @@ public static string SanitisePathsForVerify(string path) public static VerifySettings GetSpanVerifierSettings(params object[] parameters) { var settings = new VerifySettings(); - settings.UseParameters(parameters); + settings.UseDirectory(SnapshotDirectory); + if (parameters.Length > 0) + { + settings.UseParameters(parameters); + } + settings.ModifySerialization(_ => { _.IgnoreMember(s => s.Duration); @@ -64,14 +70,15 @@ private static void ReplaceRegex(StringBuilder builder, Regex regex, string repl private static Dictionary ScrubStackTraceForErrors( MockTracerAgent.Span span, Dictionary tags) { - var replacementTags = tags; - if (span.Error > 0 && tags.ContainsKey(Tags.ErrorStack)) - { - replacementTags = tags.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); - replacementTags[Tags.ErrorStack] = Scrubbers.ScrubStackTrace(replacementTags[Tags.ErrorStack]); - } - - return replacementTags; + return tags + .Select( + kvp => kvp.Key switch + { + Tags.ErrorStack => new KeyValuePair(kvp.Key, Scrubbers.ScrubStackTrace(kvp.Value)), + _ => kvp + }) + .OrderBy(x => x.Key) + .ToDictionary(x => x.Key, x => x.Value); } } } diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/KafkaTests.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/KafkaTests.cs index af08f80fab..1297472551 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/KafkaTests.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/KafkaTests.cs @@ -64,7 +64,10 @@ public void SubmitsTraces(string packageVersion) var allProducerSpans = allSpans.Where(x => x.Name == "kafka.produce").ToList(); var successfulProducerSpans = allProducerSpans.Where(x => x.Error == 0).ToList(); var errorProducerSpans = allProducerSpans.Where(x => x.Error > 0).ToList(); + var allConsumerSpans = allSpans.Where(x => x.Name == "kafka.consume").ToList(); + var successfulConsumerSpans = allConsumerSpans.Where(x => x.Error == 0).ToList(); + var errorConsumerSpans = allConsumerSpans.Where(x => x.Error > 0).ToList(); VerifyProducerSpanProperties(successfulProducerSpans, GetSuccessfulResourceName("Produce", topic), ExpectedSuccessProducerSpans + ExpectedTombstoneProducerSpans); VerifyProducerSpanProperties(errorProducerSpans, ErrorProducerResourceName, ExpectedErrorProducerSpans); @@ -105,21 +108,33 @@ public void SubmitsTraces(string packageVersion) .OnlyHaveUniqueItems() .And.Subject.ToImmutableHashSet(); - VerifyConsumerSpanProperties(allConsumerSpans, GetSuccessfulResourceName("Consume", topic), ExpectedConsumerSpans); + VerifyConsumerSpanProperties(successfulConsumerSpans, GetSuccessfulResourceName("Consume", topic), ExpectedConsumerSpans); // every consumer span should be a child of a producer span. - allConsumerSpans + successfulConsumerSpans .Should() .OnlyContain(span => span.ParentId.HasValue) .And.OnlyContain(span => producerSpanIds.Contains(span.ParentId.Value)); // HaveCountGreaterOrEqualTo because same message may be consumed by both - allConsumerSpans + successfulConsumerSpans .Where(span => span.Tags.ContainsKey(Tags.KafkaTombstone)) .Select(span => span.Tags[Tags.KafkaTombstone]) .Should() .HaveCountGreaterOrEqualTo(ExpectedTombstoneProducerSpans) .And.OnlyContain(tag => tag == "true"); + + // Error spans are created in 1.5.3 when the broker doesn't exist yet + // Other package versions don't error, so won't create a span, + // so no fixed number requirement + if (errorConsumerSpans.Count > 0) + { + errorConsumerSpans + .Should() + .OnlyContain(x => x.Tags.ContainsKey(Tags.ErrorType)) + .And.OnlyContain(x => x.Tags[Tags.ErrorMsg] == "Broker: Unknown topic or partition") + .And.OnlyContain(x => x.Tags[Tags.ErrorType] == "Confluent.Kafka.ConsumeException"); + } } private void VerifyProducerSpanProperties(List producerSpans, string resourceName, int expectedCount) diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/LoadTests/LoadTestBase.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/LoadTests/LoadTestBase.cs index ea0ed00c09..0bbfd25fbc 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/LoadTests/LoadTestBase.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/LoadTests/LoadTestBase.cs @@ -6,6 +6,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.IO; using System.Linq; using System.Threading; using Datadog.Core.Tools; @@ -129,41 +130,23 @@ protected void RunLoadTestPart(LoadTestPart loadTestPart) throw new Exception($"Load test file does not exist: {applicationPath}"); } - ProcessStartInfo startInfo; - - int agentPort = loadTestPart.Agent?.Port ?? 0; - int aspNetPort = loadTestPart.Port ?? 0; - - string commandLineArgs = string.Empty; - - if (loadTestPart.CommandLineArgs != null) - { - commandLineArgs = string.Join(" ", loadTestPart.CommandLineArgs); - } - - if (EnvironmentHelper.IsCoreClr()) - { - // .NET Core - startInfo = new ProcessStartInfo(executable, $"{applicationPath} {commandLineArgs}"); - } - else - { - // .NET Framework - startInfo = new ProcessStartInfo(executable, $"{commandLineArgs}"); - } - - environmentHelper.SetEnvironmentVariables(agentPort, aspNetPort, statsdPort: null, executable, startInfo.EnvironmentVariables); - startInfo.UseShellExecute = false; - startInfo.CreateNoWindow = true; - startInfo.RedirectStandardOutput = true; - startInfo.RedirectStandardError = true; - startInfo.RedirectStandardInput = false; + var commandLineArgs = loadTestPart.CommandLineArgs is not null + ? string.Join(" ", loadTestPart.CommandLineArgs) + : string.Empty; Output.WriteLine($"Starting load test part:{environmentHelper.SampleName}"); Process process = null; try { - process = Process.Start(startInfo); + process = ProfilerHelper.StartProcessWithProfiler( + executable, + environmentHelper, + EnvironmentHelper.IsCoreClr() ? $"{applicationPath} {commandLineArgs}" : commandLineArgs, + redirectStandardInput: false, + traceAgentPort: loadTestPart.Agent?.Port ?? 0, + aspNetCorePort: loadTestPart.Port ?? 0, + statsdPort: null, + processToProfile: Path.GetFileName(executable)); if (process == null) { diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsComprehensive.g.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsComprehensive.g.cs index 0818ebcffb..bbd65f0e7f 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsComprehensive.g.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsComprehensive.g.cs @@ -704,6 +704,7 @@ public class PackageVersionsComprehensive new object[] { "2.1.1" }, new object[] { "2.1.2" }, new object[] { "2.1.3" }, + new object[] { "3.0.0" }, #endif }; diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMinors.g.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMinors.g.cs index ad10c30ba7..3bc323c5af 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMinors.g.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMinors.g.cs @@ -164,6 +164,7 @@ public class PackageVersionsLatestMinors new object[] { "1.1.4" }, new object[] { "2.0.1" }, new object[] { "2.1.3" }, + new object[] { "3.0.0" }, #endif }; diff --git a/test/Datadog.Trace.ClrProfiler.IntegrationTests/SmokeTests/SmokeTestBase.cs b/test/Datadog.Trace.ClrProfiler.IntegrationTests/SmokeTests/SmokeTestBase.cs index 31b5c94a74..5d7b051025 100644 --- a/test/Datadog.Trace.ClrProfiler.IntegrationTests/SmokeTests/SmokeTestBase.cs +++ b/test/Datadog.Trace.ClrProfiler.IntegrationTests/SmokeTests/SmokeTestBase.cs @@ -78,7 +78,7 @@ protected void CheckForSmoke(bool shouldDeserializeTraces = true) { // Initialize StartInfo process.StartInfo.FileName = executable; - EnvironmentHelper.SetEnvironmentVariables(agentPort, aspNetCorePort, statsdPort: null, executable, process.StartInfo.EnvironmentVariables); + EnvironmentHelper.SetEnvironmentVariables(agentPort, aspNetCorePort, statsdPort: null, process.StartInfo.EnvironmentVariables, processToProfile: executable); if (EnvironmentHelper.IsCoreClr()) { // Command becomes: dotnet.exe diff --git a/test/Datadog.Trace.DuckTyping.Tests/Datadog.Trace.DuckTyping.Tests.csproj b/test/Datadog.Trace.DuckTyping.Tests/Datadog.Trace.DuckTyping.Tests.csproj index 7a0686def1..f654a698bb 100644 --- a/test/Datadog.Trace.DuckTyping.Tests/Datadog.Trace.DuckTyping.Tests.csproj +++ b/test/Datadog.Trace.DuckTyping.Tests/Datadog.Trace.DuckTyping.Tests.csproj @@ -13,4 +13,9 @@ $(DefineConstants);INTERFACE_DEFAULTS + + + + + diff --git a/test/Datadog.Trace.DuckTyping.Tests/DuckChainingWithExplicitInterfaceTests.cs b/test/Datadog.Trace.DuckTyping.Tests/DuckChainingWithExplicitInterfaceTests.cs new file mode 100644 index 0000000000..5263e4aade --- /dev/null +++ b/test/Datadog.Trace.DuckTyping.Tests/DuckChainingWithExplicitInterfaceTests.cs @@ -0,0 +1,113 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +#pragma warning disable SA1201 // Elements must appear in the correct order +#pragma warning disable SA1302 // Interface names should begin with I + +using System; +using FluentAssertions; +using Xunit; + +namespace Datadog.Trace.DuckTyping.Tests +{ + public class DuckChainingWithExplicitInterfaceTests + { + [Fact] + public void NormalTest() + { + var targetObject = new T_HostingApplication(); + var proxyObject = targetObject.DuckCast(); + + var logger = proxyObject.Diagnostics.Logger; + var disposable = logger.BeginScope(new object()); + + disposable.Should().BeOfType(); + } + + public class T_HostingApplication + { + private T_HostingApplicationDiagnostics _diagnostics; + + public T_HostingApplication() + { + _diagnostics = new T_HostingApplicationDiagnostics(); + } + } + + internal class T_HostingApplicationDiagnostics + { + private readonly T_ILogger _logger; + + public T_HostingApplicationDiagnostics() + { + _logger = new T_Logger(); + } + } + + public interface T_ILogger + { + IDisposable BeginScope(TState state); + } + + public interface T_ILogger : T_ILogger + { + } + + public class T_Logger : T_ILogger + { + private readonly T_ILogger _logger; + + public T_Logger() + { + _logger = new T_Logger(); + } + + IDisposable T_ILogger.BeginScope(TState state) + { + return _logger.BeginScope(state); + } + } + + public class T_Logger : T_ILogger + { + IDisposable T_ILogger.BeginScope(TState state) + { + return new T_DisposableObject(); + } + } + + internal class T_InternalObject + { + } + + private class T_DisposableObject : IDisposable + { + public void Dispose() + { + // . + } + } + + // *** + + public interface P_IHostingApplication + { + [Duck(Name = "_diagnostics", Kind = DuckKind.Field)] + P_IHostingApplicationDiagnostics Diagnostics { get; } + } + + public interface P_IHostingApplicationDiagnostics + { + [Duck(Name = "_logger", Kind = DuckKind.Field)] + P_ILogger Logger { get; } + } + + public interface P_ILogger + { + [Duck(ExplicitInterfaceTypeName = "*")] + IDisposable BeginScope(TState state); + } + } +} diff --git a/test/Datadog.Trace.DuckTyping.Tests/DuckExplicitInterfacePrivateTests.cs b/test/Datadog.Trace.DuckTyping.Tests/DuckExplicitInterfacePrivateTests.cs new file mode 100644 index 0000000000..32815314eb --- /dev/null +++ b/test/Datadog.Trace.DuckTyping.Tests/DuckExplicitInterfacePrivateTests.cs @@ -0,0 +1,177 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +#pragma warning disable SA1201 // Elements must appear in the correct order + +using FluentAssertions; +using Xunit; + +namespace Datadog.Trace.DuckTyping.Tests +{ + public class DuckExplicitInterfacePrivateTests + { + [Fact] + public void PrivateNormalTest() + { + var targetObject = new PrivateTargetObject(); + var proxy = targetObject.DuckCast(); + + proxy.SayHi().Should().Be("Hello World"); + proxy.SayHiWithWildcard().Should().Be("Hello World (*)"); + } + + [Fact] + public void PrivateGenericTest() + { + var targetObject = new PrivateTargetGenericObject(); + var proxy = targetObject.DuckCast(); + + proxy.Sum(1, 1).Should().Be(2); + proxy.Sum(1.0f, 1.0f).Should().Be(2.0f); + } + + [Fact] + public void PrivateNormalGenericInstanceTest() + { + var targetObject = new PrivateTargetObject(); + var proxy = targetObject.DuckCast(); + + proxy.SayHi().Should().Be("Hello World"); + proxy.SayHiWithWildcard().Should().Be("Hello World (*)"); + } + + [Fact] + public void PrivateGenericWithGenericInstanceTest() + { + var targetObject = new PrivateTargetGenericObject(); + var proxy = targetObject.DuckCast(); + + proxy.Sum(1, 1).Should().Be(2); + proxy.Sum(1.0f, 1.0f).Should().Be(2.0f); + } + + [Fact] + public void PrivateNormalGenericPrivateInstanceTest() + { + var targetObject = new PrivateTargetObject(); + var proxy = targetObject.DuckCast(); + + proxy.SayHi().Should().Be("Hello World"); + proxy.SayHiWithWildcard().Should().Be("Hello World (*)"); + } + + [Fact] + public void PrivateGenericWithGenericPrivateInstanceTest() + { + var targetObject = new PrivateTargetGenericObject(); + var proxy = targetObject.DuckCast(); + + proxy.Sum(1, 1).Should().Be(2); + proxy.Sum(1.0f, 1.0f).Should().Be(2.0f); + } + + public interface ITarget + { + string SayHi(); + + string SayHiWithWildcard(); + } + + public interface ITarget : ITarget + { + } + + public interface IGenericTarget + { + T Sum(T a, T b); + } + + public interface IGenericTarget : IGenericTarget + { + } + + public interface IProxyDefinition + { + [Duck(ExplicitInterfaceTypeName = "Datadog.Trace.DuckTyping.Tests.DuckExplicitInterfacePrivateTests+ITarget")] + string SayHi(); + + [Duck(ExplicitInterfaceTypeName = "*")] + string SayHiWithWildcard(); + } + + public interface IPrivateGenericProxyDefinition + { + [Duck(ExplicitInterfaceTypeName = "*", GenericParameterTypeNames = new string[] { "System.Int32" })] + int Sum(int a, int b); + + [Duck(ExplicitInterfaceTypeName = "*", GenericParameterTypeNames = new string[] { "System.Single" })] + float Sum(float a, float b); + } + + private class PrivateTargetObject : ITarget + { + string ITarget.SayHi() + { + return "Hello World"; + } + + string ITarget.SayHiWithWildcard() + { + return "Hello World (*)"; + } + } + + private class PrivateTargetObject : ITarget + { + string ITarget.SayHi() + { + return "Hello World"; + } + + string ITarget.SayHiWithWildcard() + { + return "Hello World (*)"; + } + } + + private class PrivateTargetGenericObject : IGenericTarget + { + T IGenericTarget.Sum(T a, T b) + { + if (a is int aInt && b is int bInt) + { + return (T)(object)(aInt + bInt); + } + else if (a is float aFloat && b is float bFloat) + { + return (T)(object)(aFloat + bFloat); + } + + return default; + } + } + + private class PrivateTargetGenericObject : IGenericTarget + { + T IGenericTarget.Sum(T a, T b) + { + if (a is int aInt && b is int bInt) + { + return (T)(object)(aInt + bInt); + } + else if (a is float aFloat && b is float bFloat) + { + return (T)(object)(aFloat + bFloat); + } + + return default; + } + } + + private class PrivateObject + { + } + } +} diff --git a/test/Datadog.Trace.DuckTyping.Tests/DuckExplicitInterfaceTests.cs b/test/Datadog.Trace.DuckTyping.Tests/DuckExplicitInterfaceTests.cs new file mode 100644 index 0000000000..1907aee0bc --- /dev/null +++ b/test/Datadog.Trace.DuckTyping.Tests/DuckExplicitInterfaceTests.cs @@ -0,0 +1,174 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +#pragma warning disable SA1201 // Elements must appear in the correct order + +using FluentAssertions; +using Xunit; + +namespace Datadog.Trace.DuckTyping.Tests +{ + public class DuckExplicitInterfaceTests + { + [Fact] + public void NormalTest() + { + var targetObject = new TargetObject(); + var proxy = targetObject.DuckCast(); + + proxy.SayHi().Should().Be("Hello World"); + proxy.SayHiWithWildcard().Should().Be("Hello World (*)"); + } + + [Fact] + public void GenericTest() + { + var targetObject = new TargetGenericObject(); + var proxy = targetObject.DuckCast(); + + proxy.Sum(1, 1).Should().Be(2); + proxy.Sum(1.0f, 1.0f).Should().Be(2.0f); + } + + [Fact] + public void NormalGenericInstanceTest() + { + var targetObject = new TargetObject(); + var proxy = targetObject.DuckCast(); + + proxy.SayHi().Should().Be("Hello World"); + proxy.SayHiWithWildcard().Should().Be("Hello World (*)"); + } + + [Fact] + public void GenericWithGenericInstanceTest() + { + var targetObject = new TargetGenericObject(); + var proxy = targetObject.DuckCast(); + + proxy.Sum(1, 1).Should().Be(2); + proxy.Sum(1.0f, 1.0f).Should().Be(2.0f); + } + + [Fact] + public void NormalGenericPrivateInstanceTest() + { + var targetObject = new TargetObject(); + var proxy = targetObject.DuckCast(); + + proxy.SayHi().Should().Be("Hello World"); + proxy.SayHiWithWildcard().Should().Be("Hello World (*)"); + } + + [Fact] + public void GenericWithGenericPrivateInstanceTest() + { + var targetObject = new TargetGenericObject(); + var proxy = targetObject.DuckCast(); + + proxy.Sum(1, 1).Should().Be(2); + proxy.Sum(1.0f, 1.0f).Should().Be(2.0f); + } + + public class TargetObject : ITarget + { + string ITarget.SayHi() + { + return "Hello World"; + } + + string ITarget.SayHiWithWildcard() + { + return "Hello World (*)"; + } + } + + public class TargetGenericObject : IGenericTarget + { + T IGenericTarget.Sum(T a, T b) + { + if (a is int aInt && b is int bInt) + { + return (T)(object)(aInt + bInt); + } + else if (a is float aFloat && b is float bFloat) + { + return (T)(object)(aFloat + bFloat); + } + + return default; + } + } + + public class TargetObject : ITarget + { + string ITarget.SayHi() + { + return "Hello World"; + } + + string ITarget.SayHiWithWildcard() + { + return "Hello World (*)"; + } + } + + public class TargetGenericObject : IGenericTarget + { + T IGenericTarget.Sum(T a, T b) + { + if (a is int aInt && b is int bInt) + { + return (T)(object)(aInt + bInt); + } + else if (a is float aFloat && b is float bFloat) + { + return (T)(object)(aFloat + bFloat); + } + + return default; + } + } + + public interface ITarget + { + string SayHi(); + + string SayHiWithWildcard(); + } + + public interface ITarget : ITarget + { + } + + public interface IGenericTarget + { + T Sum(T a, T b); + } + + public interface IGenericTarget : IGenericTarget + { + } + + public interface IProxyDefinition + { + [Duck(ExplicitInterfaceTypeName = "Datadog.Trace.DuckTyping.Tests.DuckExplicitInterfaceTests+ITarget")] + string SayHi(); + + [Duck(ExplicitInterfaceTypeName = "*")] + string SayHiWithWildcard(); + } + + public interface IGenericProxyDefinition + { + [Duck(ExplicitInterfaceTypeName = "*")] + T Sum(T a, T b); + } + + private class PrivateObject + { + } + } +} diff --git a/test/Datadog.Trace.DuckTyping.Tests/DuckILoggerTests.cs b/test/Datadog.Trace.DuckTyping.Tests/DuckILoggerTests.cs new file mode 100644 index 0000000000..d9a36191c6 --- /dev/null +++ b/test/Datadog.Trace.DuckTyping.Tests/DuckILoggerTests.cs @@ -0,0 +1,77 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +#pragma warning disable SA1201 // Elements must appear in the correct order + +#if !NETFRAMEWORK + +using System; +using System.Diagnostics; +using System.Threading.Tasks; +using Datadog.Trace.DuckTyping; +using FluentAssertions; +using Microsoft.AspNetCore.Hosting.Internal; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Features; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Xunit; + +namespace Datadog.Trace.Tests +{ + public class DuckILoggerTests + { + [Fact] + public void CanCallBeginScope() + { + var webHost = typeof(WebHostOptions).Assembly.GetType("Microsoft.AspNetCore.Hosting.Internal.WebHost"); + var hostingApplication = typeof(DuckILoggerTests) + .GetMethod(nameof(CreateHostingApplication)) + ?.MakeGenericMethod(webHost) + .Invoke(this, null); + + var proxy = hostingApplication.DuckCast(); + + proxy.Should().NotBeNull(); + + var logger = proxy.Diagnostics.Logger; + logger.Should().NotBeNull(); + var disposable = logger.BeginScope(new DatadogLoggingScope()); + disposable.Should().NotBeNull(); + } + + public object CreateHostingApplication() + { + return new HostingApplication( + application: context => Task.CompletedTask, + logger: new Logger(new LoggerFactory()), + new DiagnosticListener("ILoggerDuckTypingTests"), + httpContextFactory: new HttpContextFactory(Options.Create(new FormOptions()))); + } + + public class DatadogLoggingScope + { + } + + public interface IHostingApplication + { + [Duck(Name = "_diagnostics", Kind = DuckKind.Field)] + IHostingApplicationDiagnostics Diagnostics { get; } + } + + public interface IHostingApplicationDiagnostics + { + [Duck(Name = "_logger", Kind = DuckKind.Field)] + ILogger Logger { get; } + } + + public interface ILogger + { + [Duck(ExplicitInterfaceTypeName = "*")] + IDisposable BeginScope(TState state); + } + } +} +#endif diff --git a/test/Datadog.Trace.TestHelpers/EnvironmentHelper.cs b/test/Datadog.Trace.TestHelpers/EnvironmentHelper.cs index 5ad2fd1c98..9139659e46 100644 --- a/test/Datadog.Trace.TestHelpers/EnvironmentHelper.cs +++ b/test/Datadog.Trace.TestHelpers/EnvironmentHelper.cs @@ -17,7 +17,6 @@ namespace Datadog.Trace.TestHelpers { public class EnvironmentHelper { - private static readonly Assembly EntryAssembly = Assembly.GetEntryAssembly(); private static readonly Assembly ExecutingAssembly = Assembly.GetExecutingAssembly(); private static readonly string RuntimeFrameworkDescription = RuntimeInformation.FrameworkDescription.ToLower(); @@ -30,8 +29,6 @@ public class EnvironmentHelper private readonly string _runtime; private readonly bool _isCoreClr; private readonly string _samplesDirectory; - private readonly Type _anchorType; - private readonly Assembly _anchorAssembly; private readonly TargetFrameworkAttribute _targetFramework; private bool _requiresProfiling; @@ -42,14 +39,12 @@ public EnvironmentHelper( string sampleName, Type anchorType, ITestOutputHelper output, - string samplesDirectory = "test/test-applications/integrations", + string samplesDirectory = null, bool prependSamplesToAppName = true, bool requiresProfiling = true) { SampleName = sampleName; - _samplesDirectory = samplesDirectory ?? "test/test-applications/integrations"; - _anchorType = anchorType; - _anchorAssembly = Assembly.GetAssembly(_anchorType); + _samplesDirectory = samplesDirectory ?? Path.Combine("test", "test-applications", "integrations"); _targetFramework = Assembly.GetAssembly(anchorType).GetCustomAttribute(); _output = output; _requiresProfiling = requiresProfiling; @@ -80,22 +75,6 @@ public EnvironmentHelper( public string FullSampleName => $"{_appNamePrepend}{SampleName}"; - public static EnvironmentHelper NonProfiledHelper(Type anchor, string appName, string directory) - { - return new EnvironmentHelper( - sampleName: appName, - anchorType: anchor, - output: null, - samplesDirectory: directory, - prependSamplesToAppName: false, - requiresProfiling: false); - } - - public static string GetExecutingAssembly() - { - return ExecutingAssembly.Location; - } - public static bool IsNet5() { return Environment.Version.Major >= 5; @@ -106,18 +85,6 @@ public static bool IsCoreClr() return RuntimeFrameworkDescription.Contains("core") || IsNet5(); } - public static string GetRuntimeIdentifier() - { - return IsCoreClr() - ? string.Empty - : $"{EnvironmentTools.GetOS()}-{EnvironmentTools.GetPlatform()}"; - } - - public static string GetSolutionDirectory() - { - return EnvironmentTools.GetSolutionDirectory(); - } - public static void ClearProfilerEnvironmentVariables() { var environmentVariables = new[] @@ -154,11 +121,9 @@ public void SetEnvironmentVariables( int agentPort, int aspNetCorePort, int? statsdPort, - string processPath, StringDictionary environmentVariables, - bool ignoreProfilerProcesses = false) + string processToProfile = null) { - var processName = processPath; string profilerEnabled = _requiresProfiling ? "1" : "0"; string profilerPath; @@ -179,8 +144,6 @@ public void SetEnvironmentVariables( profilerPath = GetProfilerPath(); environmentVariables["COR_PROFILER_PATH"] = profilerPath; environmentVariables["OTEL_DOTNET_TRACER_HOME"] = Path.GetDirectoryName(profilerPath); - - processName = Path.GetFileName(processPath); } if (DebugModeEnabled) @@ -188,9 +151,9 @@ public void SetEnvironmentVariables( environmentVariables["OTEL_TRACE_DEBUG"] = "1"; } - if (!ignoreProfilerProcesses) + if (!string.IsNullOrEmpty(processToProfile)) { - environmentVariables["OTEL_PROFILER_PROCESSES"] = processName; + environmentVariables["OTEL_PROFILER_PROCESSES"] = Path.GetFileName(processToProfile); } string integrations = string.Join(";", GetIntegrationsFilePaths()); @@ -256,7 +219,7 @@ public string[] GetIntegrationsFilePaths() _output?.WriteLine($"Attempt 2: Unable to find integrations at {_integrationsFileLocation}."); // One last attempt at the solution root _integrationsFileLocation = Path.Combine( - GetSolutionDirectory(), + EnvironmentTools.GetSolutionDirectory(), fileName); } @@ -333,7 +296,7 @@ public string GetSampleApplicationPath(string packageVersion = "", string framew { string extension = "exe"; - if (EnvironmentHelper.IsCoreClr() || _samplesDirectory.Contains("aspnet")) + if (IsCoreClr() || _samplesDirectory.Contains("aspnet")) { extension = "dll"; } @@ -411,7 +374,7 @@ public string GetDotNetTest() public string GetSampleProjectDirectory() { - var solutionDirectory = GetSolutionDirectory(); + var solutionDirectory = EnvironmentTools.GetSolutionDirectory(); var projectDir = Path.Combine( solutionDirectory, _samplesDirectory, @@ -483,7 +446,7 @@ public string GetTargetFramework() private string GetProfilerProjectBin() { return Path.Combine( - GetSolutionDirectory(), + EnvironmentTools.GetSolutionDirectory(), "src", "Datadog.Trace.ClrProfiler.Native", "bin", diff --git a/test/Datadog.Trace.TestHelpers/ProfilerHelper.cs b/test/Datadog.Trace.TestHelpers/ProfilerHelper.cs index 46f301907b..6bb4fa5a20 100644 --- a/test/Datadog.Trace.TestHelpers/ProfilerHelper.cs +++ b/test/Datadog.Trace.TestHelpers/ProfilerHelper.cs @@ -4,7 +4,6 @@ // using System; -using System.Collections.Generic; using System.Diagnostics; namespace Datadog.Trace.TestHelpers @@ -13,43 +12,25 @@ public class ProfilerHelper { public static Process StartProcessWithProfiler( string executable, - string applicationPath, EnvironmentHelper environmentHelper, - IEnumerable integrationPaths, string arguments = null, bool redirectStandardInput = false, int traceAgentPort = 9696, int aspNetCorePort = 5000, int? statsdPort = null, - bool? forceExecutable = null) + string processToProfile = null) { if (environmentHelper == null) { throw new ArgumentNullException(nameof(environmentHelper)); } - if (integrationPaths == null) - { - throw new ArgumentNullException(nameof(integrationPaths)); - } - // clear all relevant environment variables to start with a clean slate EnvironmentHelper.ClearProfilerEnvironmentVariables(); - ProcessStartInfo startInfo; - - if (EnvironmentHelper.IsCoreClr() || forceExecutable == true) - { - // .NET Core - startInfo = new ProcessStartInfo(executable, $"{applicationPath} {arguments ?? string.Empty}"); - } - else - { - // .NET Framework - startInfo = new ProcessStartInfo(applicationPath, $"{arguments ?? string.Empty}"); - } + var startInfo = new ProcessStartInfo(executable, $"{arguments ?? string.Empty}"); - environmentHelper.SetEnvironmentVariables(traceAgentPort, aspNetCorePort, statsdPort, executable, startInfo.EnvironmentVariables, forceExecutable == true); + environmentHelper.SetEnvironmentVariables(traceAgentPort, aspNetCorePort, statsdPort, startInfo.EnvironmentVariables, processToProfile); startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; diff --git a/test/Datadog.Trace.Tests/RuntimeMetrics/PerformanceCountersListenerTests.cs b/test/Datadog.Trace.Tests/RuntimeMetrics/PerformanceCountersListenerTests.cs index 93fbdf1f64..ab9b1819fc 100644 --- a/test/Datadog.Trace.Tests/RuntimeMetrics/PerformanceCountersListenerTests.cs +++ b/test/Datadog.Trace.Tests/RuntimeMetrics/PerformanceCountersListenerTests.cs @@ -4,8 +4,12 @@ // #if NETFRAMEWORK +using System; +using System.Threading; +using System.Threading.Tasks; using Datadog.Trace.RuntimeMetrics; using Datadog.Trace.Vendors.StatsdClient; +using FluentAssertions; using Moq; using Xunit; @@ -14,12 +18,14 @@ namespace Datadog.Trace.Tests.RuntimeMetrics public class PerformanceCountersListenerTests { [Fact] - public void PushEvents() + public async Task PushEvents() { var statsd = new Mock(); using var listener = new PerformanceCountersListener(statsd.Object); + await listener.WaitForInitialization(); + listener.Refresh(); statsd.Verify(s => s.Gauge(MetricsNames.Gen0HeapSize, It.IsAny(), 1, null), Times.Once); @@ -45,8 +51,62 @@ public void PushEvents() statsd.VerifyNoOtherCalls(); } + + [Fact] + public void AsynchronousInitialization() + { + var barrier = new Barrier(2); + void Callback() + { + barrier.SignalAndWait(); + barrier.SignalAndWait(); + } + + var statsd = new Mock(); + + using var listener = new TestPerformanceCounterListener(statsd.Object, Callback); + + // The first SignalAndWait will deadlock if InitializePerformanceCounters is not called asynchronously + barrier.SignalAndWait(); + + listener.WaitForInitialization().IsCompleted.Should().BeFalse(); + + // Initialization is still pending, make sure Refresh doesn't throw + listener.Refresh(); + + // Nothing should have been pushed to statsd since counters are not initialized + statsd.VerifyNoOtherCalls(); + + // All done, free the thread and cleanup + barrier.SignalAndWait(); + } + + private class TestPerformanceCounterListener : PerformanceCountersListener + { + // The field needs to be volatile because it's used concurrently from two threads + private volatile Action _callback; + + public TestPerformanceCounterListener(IDogStatsd statsd, Action callback) + : base(statsd) + { + _callback = callback; + } + + protected override void InitializePerformanceCounters() + { + while (_callback == null) + { + // There is a subtle race condition because InitializePerformanceCounters is virtual + // and called from the base constructor + Thread.SpinWait(1); + } + + _callback(); + + base.InitializePerformanceCounters(); + } + } } } - #endif diff --git a/test/Datadog.Trace.Tests/Tagging/TagsListTests.cs b/test/Datadog.Trace.Tests/Tagging/TagsListTests.cs index 635599baea..de5237e8d0 100644 --- a/test/Datadog.Trace.Tests/Tagging/TagsListTests.cs +++ b/test/Datadog.Trace.Tests/Tagging/TagsListTests.cs @@ -142,7 +142,8 @@ public void Serialization(bool topLevelSpan) var deserializedSpan = MessagePack.MessagePackSerializer.Deserialize(buffer); - Assert.Equal(16, deserializedSpan.Tags.Count); + // For top-level spans, there is one tag added during serialization + Assert.Equal(topLevelSpan ? 17 : 16, deserializedSpan.Tags.Count); // For top-level spans, there is one metric added during serialization Assert.Equal(topLevelSpan ? 17 : 16, deserializedSpan.Metrics.Count); @@ -158,6 +159,7 @@ public void Serialization(bool topLevelSpan) if (topLevelSpan) { + Assert.Equal(Tracer.RuntimeId, deserializedSpan.Tags[Tags.RuntimeId]); Assert.Equal(1.0, deserializedSpan.Metrics[Metrics.TopLevelSpan]); } } diff --git a/test/Datadog.Trace.Tests/TracerTests.cs b/test/Datadog.Trace.Tests/TracerTests.cs index 78347cbca6..1cb07ed0c0 100644 --- a/test/Datadog.Trace.Tests/TracerTests.cs +++ b/test/Datadog.Trace.Tests/TracerTests.cs @@ -403,6 +403,18 @@ public void LogPartialFlushWarning(string agentVersion, bool partialFlushEnabled _tracer.ShouldLogPartialFlushWarning(agentVersion).Should().BeFalse(); } + [Fact] + public void RuntimeId() + { + var runtimeId = Tracer.RuntimeId; + + // Runtime id should be stable for a given process + Tracer.RuntimeId.Should().Be(runtimeId); + + // Runtime id should be a UUID + Guid.TryParse(runtimeId, out _).Should().BeTrue(); + } + #if NET452 // Test that storage in the Logical Call Context does not expire diff --git a/test/benchmarks/Benchmarks.Trace/AspNetCoreBenchmark.cs b/test/benchmarks/Benchmarks.Trace/AspNetCoreBenchmark.cs index b08b432e18..4b34821749 100644 --- a/test/benchmarks/Benchmarks.Trace/AspNetCoreBenchmark.cs +++ b/test/benchmarks/Benchmarks.Trace/AspNetCoreBenchmark.cs @@ -2,14 +2,11 @@ using System; using System.Net.Http; -using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Datadog.Trace; using Datadog.Trace.ClrProfiler.AutoInstrumentation.Http.HttpClient.HttpClientHandler; -using Datadog.Trace.ClrProfiler.Emit; -using Datadog.Trace.ClrProfiler.Integrations; using Datadog.Trace.Configuration; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -26,10 +23,7 @@ public class AspNetCoreBenchmark static AspNetCoreBenchmark() { - var settings = new TracerSettings - { - StartupDiagnosticLogEnabled = false, - }; + var settings = new TracerSettings { StartupDiagnosticLogEnabled = false }; Tracer.Instance = new Tracer(settings, null, new DummyAgentWriter(), null, null, null); @@ -41,11 +35,8 @@ static AspNetCoreBenchmark() Datadog.Trace.ClrProfiler.Instrumentation.Initialize(); - HomeController.Initialize(); - var bench = new AspNetCoreBenchmark(); bench.SendRequest(); - bench.CallTargetSendRequest(); } [Benchmark] @@ -54,12 +45,6 @@ public string SendRequest() return Client.GetStringAsync("/Home").GetAwaiter().GetResult(); } - [Benchmark] - public string CallTargetSendRequest() - { - return Client.GetStringAsync("/CallTargetHome").GetAwaiter().GetResult(); - } - private class Startup { public void ConfigureServices(IServiceCollection services) @@ -84,64 +69,13 @@ public void Configure(IApplicationBuilder builder) /// Simple controller used for the aspnetcore benchmark /// public class HomeController : Controller - { - private static readonly HttpRequestMessage HttpRequest = new HttpRequestMessage { RequestUri = new Uri("http://datadoghq.com") }; - private static readonly HttpMessageHandler Handler = new CustomHttpClientHandler(); - private static readonly object BoxedCancellationToken = new CancellationToken(); - private static int _mdToken; - private static IntPtr _guidPtr; - - internal static void Initialize() - { - var methodInfo = typeof(HttpMessageHandler).GetMethod("SendAsync", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); - - _mdToken = methodInfo.MetadataToken; - var guid = typeof(HttpMessageHandler).Module.ModuleVersionId; - - _guidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(guid)); - - Marshal.StructureToPtr(guid, _guidPtr, false); - } - - public async Task Index() - { - var task = (Task)HttpMessageHandlerIntegration.HttpMessageHandler_SendAsync( - Handler, - HttpRequest, - BoxedCancellationToken, - (int)OpCodeValue.Callvirt, - _mdToken, - (long)_guidPtr); - - await task; - - return "OK"; - } - - internal class CustomHttpClientHandler : HttpClientHandler - { - private static readonly Task CachedResult = Task.FromResult(new HttpResponseMessage()); - - internal static HttpClientHandler Create() => new HttpClientHandler(); - - protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) - { - return CachedResult; - } - } - } - - /// - /// Simple controller used for the calltarget aspnetcore benchmark - /// - public class CallTargetHomeController : Controller { private static readonly HttpRequestMessage HttpRequest = new HttpRequestMessage { RequestUri = new Uri("http://datadoghq.com") }; private static readonly Task CachedResult = Task.FromResult(new HttpResponseMessage()); - + public unsafe string Index() { - CallTarget.Run> + CallTarget.Run> (this, HttpRequest, CancellationToken.None, &GetResult).GetAwaiter().GetResult(); return "OK"; @@ -150,7 +84,6 @@ public unsafe string Index() } } } - #else using System.Threading.Tasks; diff --git a/test/benchmarks/Benchmarks.Trace/DbCommandBenchmark.cs b/test/benchmarks/Benchmarks.Trace/DbCommandBenchmark.cs index b68eae9b86..629e4a3eef 100644 --- a/test/benchmarks/Benchmarks.Trace/DbCommandBenchmark.cs +++ b/test/benchmarks/Benchmarks.Trace/DbCommandBenchmark.cs @@ -1,11 +1,8 @@ using System; using System.Data; -using System.Runtime.InteropServices; using BenchmarkDotNet.Attributes; using Datadog.Trace; using Datadog.Trace.ClrProfiler.AutoInstrumentation.AdoNet; -using Datadog.Trace.ClrProfiler.Emit; -using Datadog.Trace.ClrProfiler.Integrations.AdoNet; using Datadog.Trace.Configuration; namespace Benchmarks.Trace @@ -13,9 +10,6 @@ namespace Benchmarks.Trace [MemoryDiagnoser] public class DbCommandBenchmark { - private static readonly int MdToken; - private static readonly IntPtr GuidPtr; - private static readonly IDbCommand DbCommand = new CustomDbCommand(); private static readonly CustomDbCommand CustomCommand = new CustomDbCommand(); static DbCommandBenchmark() @@ -27,28 +21,12 @@ static DbCommandBenchmark() Tracer.Instance = new Tracer(settings, null, new DummyAgentWriter(), null, null, null); - var methodInfo = typeof(IDbCommand).GetMethod("ExecuteNonQuery", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); - - MdToken = methodInfo.MetadataToken; - var guid = typeof(IDbCommand).Module.ModuleVersionId; - - GuidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(guid)); - - Marshal.StructureToPtr(guid, GuidPtr, false); - var bench = new DbCommandBenchmark(); bench.ExecuteNonQuery(); - bench.CallTargetExecuteNonQuery(); - } - - [Benchmark] - public int ExecuteNonQuery() - { - return IDbCommandIntegration.ExecuteNonQuery(DbCommand, (int)OpCodeValue.Callvirt, MdToken, (long)GuidPtr); } [Benchmark] - public unsafe int CallTargetExecuteNonQuery() + public unsafe int ExecuteNonQuery() { return CallTarget.Run(CustomCommand, &InternalExecuteNonQuery); diff --git a/test/benchmarks/Benchmarks.Trace/ElasticsearchBenchmark.cs b/test/benchmarks/Benchmarks.Trace/ElasticsearchBenchmark.cs index 9de7dd41c0..04d882fd0a 100644 --- a/test/benchmarks/Benchmarks.Trace/ElasticsearchBenchmark.cs +++ b/test/benchmarks/Benchmarks.Trace/ElasticsearchBenchmark.cs @@ -1,12 +1,9 @@ using System; -using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Datadog.Trace; using Datadog.Trace.ClrProfiler.AutoInstrumentation.Elasticsearch.V6; -using Datadog.Trace.ClrProfiler.Emit; -using Datadog.Trace.ClrProfiler.Integrations; using Datadog.Trace.Configuration; using Elasticsearch.Net; @@ -15,10 +12,7 @@ namespace Benchmarks.Trace [MemoryDiagnoser] public class ElasticsearchBenchmark { - private static readonly int MdToken; - private static readonly IntPtr GuidPtr; private static readonly RequestPipeline Pipeline = new RequestPipeline(); - private static readonly object PipelineObject = new RequestPipeline(); private static readonly RequestData Data = new RequestData { Method = HttpMethod.POST, @@ -35,49 +29,13 @@ static ElasticsearchBenchmark() Tracer.Instance = new Tracer(settings, null, new DummyAgentWriter(), null, null, null); - var methodInfo = typeof(RequestPipeline).GetMethod("CallElasticsearchAsync", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); - - MdToken = methodInfo.MetadataToken; - var guid = typeof(RequestPipeline).Module.ModuleVersionId; - - GuidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(guid)); - - Marshal.StructureToPtr(guid, GuidPtr, false); - var bench = new ElasticsearchBenchmark(); bench.CallElasticsearch(); bench.CallElasticsearchAsync(); - bench.CallTargetCallElasticsearch(); - bench.CallTargetCallElasticsearchAsync(); - } - - [Benchmark] - public object CallElasticsearch() - { - return ElasticsearchNet6Integration.CallElasticsearch( - PipelineObject, - Data, - (int)OpCodeValue.Callvirt, - MdToken, - (long)GuidPtr); - } - - [Benchmark] - public int CallElasticsearchAsync() - { - var task = (Task)ElasticsearchNet6Integration.CallElasticsearchAsync( - PipelineObject, - Data, - CancellationToken.None, - (int)OpCodeValue.Callvirt, - MdToken, - (long)GuidPtr); - - return task.GetAwaiter().GetResult(); } [Benchmark] - public unsafe object CallTargetCallElasticsearch() + public unsafe object CallElasticsearch() { return CallTarget.Run(Pipeline, Data, &GetData); @@ -86,7 +44,7 @@ public unsafe object CallTargetCallElasticsearch() [Benchmark] - public unsafe int CallTargetCallElasticsearchAsync() + public unsafe int CallElasticsearchAsync() { return CallTarget.Run> (Pipeline, Data, CancellationToken.None, &GetData).GetAwaiter().GetResult(); diff --git a/test/benchmarks/Benchmarks.Trace/GraphQLBenchmark.cs b/test/benchmarks/Benchmarks.Trace/GraphQLBenchmark.cs index db9f6ca46c..05dd02b3d0 100644 --- a/test/benchmarks/Benchmarks.Trace/GraphQLBenchmark.cs +++ b/test/benchmarks/Benchmarks.Trace/GraphQLBenchmark.cs @@ -1,11 +1,7 @@ -using System; using System.Collections.Generic; -using System.Runtime.InteropServices; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Datadog.Trace; -using Datadog.Trace.ClrProfiler.Emit; -using Datadog.Trace.ClrProfiler.Integrations; using Datadog.Trace.Configuration; using GraphQL; using GraphQL.Execution; @@ -16,8 +12,6 @@ namespace Benchmarks.Trace public class GraphQLBenchmark { private static readonly Task Result = Task.FromResult(new ExecutionResult { Value = 42 }); - private static readonly int MdToken; - private static readonly IntPtr GuidPtr; private static readonly GraphQLClient Client = new GraphQLClient(); private static readonly ExecutionContext Context = new ExecutionContext(); @@ -30,29 +24,11 @@ static GraphQLBenchmark() Tracer.Instance = new Tracer(settings, null, new DummyAgentWriter(), null, null, null); - var methodInfo = typeof(GraphQLClient).GetMethod("ExecuteAsync", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); - - MdToken = methodInfo.MetadataToken; - var guid = typeof(GraphQLClient).Module.ModuleVersionId; - - GuidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(guid)); - - Marshal.StructureToPtr(guid, GuidPtr, false); - new GraphQLBenchmark().ExecuteAsync(); - - } - - [Benchmark] - public int ExecuteAsync() - { - var task = (Task)GraphQLIntegration.ExecuteAsync(Client, Context, (int)OpCodeValue.Callvirt, MdToken, (long)GuidPtr); - - return task.GetAwaiter().GetResult().Value; } [Benchmark] - public unsafe int CallTargetExecuteAsync() + public unsafe int ExecuteAsync() { var task = CallTarget.Run>( Client, diff --git a/test/benchmarks/Benchmarks.Trace/HttpClientBenchmark.cs b/test/benchmarks/Benchmarks.Trace/HttpClientBenchmark.cs index 7a381bf185..f593094ee0 100644 --- a/test/benchmarks/Benchmarks.Trace/HttpClientBenchmark.cs +++ b/test/benchmarks/Benchmarks.Trace/HttpClientBenchmark.cs @@ -1,13 +1,10 @@ using System; using System.Net.Http; -using System.Runtime.InteropServices; using System.Threading; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Datadog.Trace; using Datadog.Trace.ClrProfiler.AutoInstrumentation.Http.HttpClient.HttpClientHandler; -using Datadog.Trace.ClrProfiler.Emit; -using Datadog.Trace.ClrProfiler.Integrations; using Datadog.Trace.Configuration; namespace Benchmarks.Trace @@ -16,11 +13,6 @@ namespace Benchmarks.Trace public class HttpClientBenchmark { private static readonly HttpRequestMessage HttpRequest = new HttpRequestMessage { RequestUri = new Uri("http://datadoghq.com") }; - private static readonly HttpMessageHandler Handler = new CustomHttpClientHandler(); - - private static readonly object BoxedCancellationToken = new CancellationToken(); - private static readonly int MdToken; - private static readonly IntPtr GuidPtr; private static readonly Task CachedResult = Task.FromResult(new HttpResponseMessage()); @@ -33,49 +25,12 @@ static HttpClientBenchmark() Tracer.Instance = new Tracer(settings, null, new DummyAgentWriter(), null, null, null); - var methodInfo = typeof(HttpMessageHandler).GetMethod("SendAsync", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); - - MdToken = methodInfo.MetadataToken; - var guid = typeof(HttpMessageHandler).Module.ModuleVersionId; - - GuidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(guid)); - - Marshal.StructureToPtr(guid, GuidPtr, false); - var bench = new HttpClientBenchmark(); bench.SendAsync(); - bench.CallTargetSendAsync(); - } - - internal class CustomHttpClientHandler : HttpClientHandler - { - private static readonly Task CachedResult = Task.FromResult(new HttpResponseMessage()); - - internal static HttpClientHandler Create() => new HttpClientHandler(); - - protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) - { - return CachedResult; - } - } - - [Benchmark] - public string SendAsync() - { - var task = (Task)HttpMessageHandlerIntegration.HttpMessageHandler_SendAsync( - Handler, - HttpRequest, - BoxedCancellationToken, - (int)OpCodeValue.Callvirt, - MdToken, - (long)GuidPtr); - - task.GetAwaiter().GetResult(); - return "OK"; } [Benchmark] - public unsafe string CallTargetSendAsync() + public unsafe string SendAsync() { CallTarget.Run> (this, HttpRequest, CancellationToken.None, &GetResult).GetAwaiter().GetResult(); diff --git a/test/benchmarks/Benchmarks.Trace/RedisBenchmark.cs b/test/benchmarks/Benchmarks.Trace/RedisBenchmark.cs index 3911c5914f..ee552e42b6 100644 --- a/test/benchmarks/Benchmarks.Trace/RedisBenchmark.cs +++ b/test/benchmarks/Benchmarks.Trace/RedisBenchmark.cs @@ -1,12 +1,9 @@ using System; using System.Linq; -using System.Runtime.InteropServices; using System.Text; using BenchmarkDotNet.Attributes; using Datadog.Trace; using Datadog.Trace.ClrProfiler.AutoInstrumentation.Redis.ServiceStack; -using Datadog.Trace.ClrProfiler.Emit; -using Datadog.Trace.ClrProfiler.Integrations; using Datadog.Trace.Configuration; using ServiceStack.Redis; @@ -15,9 +12,6 @@ namespace Benchmarks.Trace [MemoryDiagnoser] public class RedisBenchmark { - private static readonly int MdToken; - private static readonly IntPtr GuidPtr; - private static readonly object ClientObject = new RedisNativeClient(); private static readonly RedisNativeClient Client = new RedisNativeClient(); private static readonly Func Fn = () => 42; private static readonly Action> CompletePipelineFn = _ => { }; @@ -32,38 +26,13 @@ static RedisBenchmark() Tracer.Instance = new Tracer(settings, null, new DummyAgentWriter(), null, null, null); - var methodInfo = typeof(RedisNativeClient).GetMethod("SendReceive", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); - - MdToken = methodInfo.MetadataToken; - var guid = typeof(RedisNativeClient).Module.ModuleVersionId; - - GuidPtr = Marshal.AllocHGlobal(Marshal.SizeOf(guid)); - - Marshal.StructureToPtr(guid, GuidPtr, false); - RawCommands = new[] {"Command", "arg1", "arg2"} .Select(Encoding.UTF8.GetBytes) .ToArray(); - - // new RedisBenchmark().ExecuteNonQuery(); - } - - [Benchmark] - public int SendReceive() - { - return ServiceStackRedisIntegration.SendReceive( - ClientObject, - RawCommands, - Fn, - CompletePipelineFn, - true, - (int)OpCodeValue.Callvirt, - MdToken, - (long)GuidPtr); } [Benchmark] - public unsafe int CallTargetSendReceive() + public unsafe int SendReceive() { return CallTarget.Run, Action>, bool, int> (Client, RawCommands, Fn, CompletePipelineFn, true, &SendReceive); diff --git a/test/test-applications/aspnet/Samples.WebForms/Samples.WebForms.csproj b/test/test-applications/aspnet/Samples.WebForms/Samples.WebForms.csproj index 9b9f5212b4..6f74eb8fab 100644 --- a/test/test-applications/aspnet/Samples.WebForms/Samples.WebForms.csproj +++ b/test/test-applications/aspnet/Samples.WebForms/Samples.WebForms.csproj @@ -45,6 +45,44 @@ prompt 4 + + true + bin\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + + + true + bin\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + + + true + bin\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + true + bin\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + ..\..\..\..\packages\Elasticsearch.Net.6.1.0\lib\net45\Elasticsearch.Net.dll diff --git a/test/test-applications/integrations/Samples.Kafka/Consumer.cs b/test/test-applications/integrations/Samples.Kafka/Consumer.cs index b3464132c4..b1d835414e 100644 --- a/test/test-applications/integrations/Samples.Kafka/Consumer.cs +++ b/test/test-applications/integrations/Samples.Kafka/Consumer.cs @@ -24,34 +24,48 @@ private Consumer(ConsumerConfig config, string topic, string consumerName) } - public void Consume(int retries, int timeoutMilliSeconds) + public bool Consume(int retries, int timeoutMilliSeconds) { try { for (int i = 0; i < retries; i++) { - // will block until a message is available - var consumeResult = _consumer.Consume(timeoutMilliSeconds); - if (consumeResult is null) + try { - Console.WriteLine($"{_consumerName}: Null consume result"); - continue; - } + // will block until a message is available + // on 1.5.3 this will throw if the topic doesn't exist + var consumeResult = _consumer.Consume(timeoutMilliSeconds); + if (consumeResult is null) + { + Console.WriteLine($"{_consumerName}: Null consume result"); + return true; + } - if (consumeResult.IsPartitionEOF) - { - Console.WriteLine($"{_consumerName}: Reached EOF"); + if (consumeResult.IsPartitionEOF) + { + Console.WriteLine($"{_consumerName}: Reached EOF"); + return true; + } + else + { + HandleMessage(consumeResult); + return true; + } } - else + catch (ConsumeException ex) { - HandleMessage(consumeResult); + Console.WriteLine($"Consume Exception in manual consume: {ex}"); } + + Task.Delay(500); } } catch (TaskCanceledException) { Console.WriteLine($"{_consumerName}: Cancellation requested, exiting."); } + + return false; } public void Consume(CancellationToken cancellationToken = default) diff --git a/test/test-applications/integrations/Samples.Kafka/Program.cs b/test/test-applications/integrations/Samples.Kafka/Program.cs index 11c1bd9399..33aba4201f 100644 --- a/test/test-applications/integrations/Samples.Kafka/Program.cs +++ b/test/test-applications/integrations/Samples.Kafka/Program.cs @@ -19,17 +19,37 @@ static async Task Main(string[] args) await TopicHelpers.TryDeleteTopic(topic, config); - await TopicHelpers.TryCreateTopic( - topic, - numPartitions: 3, - replicationFactor: 1, - config); + await ConsumeAgainstNonExistentTopic(topic, config); await ConsumeAndProduceMessages(topic, config); Console.WriteLine($"Shut down complete"); } + private static async Task ConsumeAgainstNonExistentTopic(string topic, ClientConfig config) + { + using var consumer = Consumer.Create(enableAutoCommit: true, topic, consumerName: "FailingConsumer 1"); + + Console.WriteLine($"Manually consuming non-existent topic..."); + + // On Kafka.Confluent 1.5.3 this will throw, so success will be false + // That creates an exception Span + // On other versions, this _won't_ throw, and _won't_ create a span + var success = consumer.Consume(retries: 1, timeoutMilliSeconds: 300); + Console.WriteLine($"Manual consume complete, success {success}"); + + // Create the topic and try again + await TopicHelpers.TryCreateTopic(topic, numPartitions: 3, replicationFactor: 1, config); + + Console.WriteLine($"Manually consuming topic..."); + + // manually try and consume. Should _not_ generate any spans, as nothing to consume + // but on 1.5.3 this may generate some error spans + success = consumer.Consume(retries: 5, timeoutMilliSeconds: 300); + + Console.WriteLine($"Manual consume finished, success {success}"); + } + private static async Task ConsumeAndProduceMessages(string topic, ClientConfig config) { var commitPeriod = 3; @@ -39,12 +59,13 @@ private static async Task ConsumeAndProduceMessages(string topic, ClientConfig c using var consumer1 = Consumer.Create(enableAutoCommit: true, topic, consumerName: "AutoCommitConsumer1"); using var consumer2 = Consumer.Create(enableAutoCommit: false, topic, consumerName: "ManualCommitConsumer2"); - // manually try and consume. Should _not_ generate any spans, as nothing to consume - consumer1.Consume(retries: 3, timeoutMilliSeconds: 300); + Console.WriteLine("Starting consumers..."); var consumeTask1 = Task.Run(() => consumer1.Consume(cts.Token)); var consumeTask2 = Task.Run(() => consumer2.ConsumeWithExplicitCommit(commitEveryXMessages: commitPeriod, cts.Token)); + Console.WriteLine($"Producing messages"); + var messagesProduced = await ProduceMessages(topic, config); // Wait for all messages to be consumed diff --git a/test/test-applications/integrations/Samples.Kafka/TopicHelpers.cs b/test/test-applications/integrations/Samples.Kafka/TopicHelpers.cs index 378691cece..eae44da1bd 100644 --- a/test/test-applications/integrations/Samples.Kafka/TopicHelpers.cs +++ b/test/test-applications/integrations/Samples.Kafka/TopicHelpers.cs @@ -32,6 +32,8 @@ await adminClient.CreateTopicsAsync(new List { ReplicationFactor = replicationFactor } }); + + Console.WriteLine($"Topic created"); return true; } catch (CreateTopicsException e) diff --git a/test/test-applications/integrations/Samples.RuntimeMetrics/Program.cs b/test/test-applications/integrations/Samples.RuntimeMetrics/Program.cs index 54a643d7b8..5ca7cb4692 100644 --- a/test/test-applications/integrations/Samples.RuntimeMetrics/Program.cs +++ b/test/test-applications/integrations/Samples.RuntimeMetrics/Program.cs @@ -6,17 +6,21 @@ namespace Samples.RuntimeMetrics { internal static class Program { + private static readonly object SyncRoot = new object(); + private static void Main() { // Force the tracer to be loaded _ = WebRequest.CreateHttp("http://localhost/"); - new Thread(ThrowExceptions) { IsBackground = true }.Start(); + Monitor.Enter(SyncRoot); + + new Thread(GenerateEvents) { IsBackground = true }.Start(); - Thread.Sleep(20000); + Thread.Sleep(30000); } - private static void ThrowExceptions() + private static void GenerateEvents() { while (true) { @@ -28,7 +32,8 @@ private static void ThrowExceptions() { } - Thread.Sleep(500); + // Sleep for 500ms while creating contention + Monitor.TryEnter(SyncRoot, 500); } } } diff --git a/test/test-applications/regression/AspNetMvcCorePerformance/AspNetMvcCorePerformance.csproj b/test/test-applications/regression/AspNetMvcCorePerformance/AspNetMvcCorePerformance.csproj index bae557b576..0464769f30 100644 --- a/test/test-applications/regression/AspNetMvcCorePerformance/AspNetMvcCorePerformance.csproj +++ b/test/test-applications/regression/AspNetMvcCorePerformance/AspNetMvcCorePerformance.csproj @@ -7,6 +7,9 @@ $(Platform) false false + + + false diff --git a/tools/Datadog.Core.Tools/ConcurrencyHelper.cs b/tools/Datadog.Core.Tools/ConcurrencyHelper.cs deleted file mode 100644 index d492110db1..0000000000 --- a/tools/Datadog.Core.Tools/ConcurrencyHelper.cs +++ /dev/null @@ -1,157 +0,0 @@ -// -// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. -// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. -// - -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace Datadog.Core.Tools -{ - public class ConcurrencyHelper - { - private readonly ManualResetEventSlim _initiateLevelsEvent = new ManualResetEventSlim(initialState: false); // Start blocked - private readonly ManualResetEventSlim _testFinishedEvent = new ManualResetEventSlim(initialState: false); // Start blocked - private int _remainingLevels; - - public enum HelperStatus - { - AwaitingConfig, - Ready, - Running, - Errored, - Finished - } - - public List Levels { get; set; } = new List(); - - public HelperStatus Status { get; private set; } = HelperStatus.AwaitingConfig; - - public DateTime Started { get; private set; } - - public DateTime Finished { get; private set; } - - public void RegisterLevel(Action action, int iterations, string friendlyName = null, int numberOfRegisters = 1) - { - for (var i = 0; i < numberOfRegisters; i++) - { - Levels.Add(new Level() - { - Status = HelperStatus.Ready, - Action = action, - Name = friendlyName, - Iterations = iterations, - }); - } - - Status = HelperStatus.Ready; - } - - public async Task Start() - { - Status = HelperStatus.Running; - - var registry = new ConcurrentQueue(); - - Started = DateTime.Now; - - var workers = - Levels - .Select(level => new Thread( - thread => - { - Interlocked.Increment(ref _remainingLevels); - _initiateLevelsEvent.Wait(); - level.Started = DateTime.Now; - level.Status = HelperStatus.Running; - - try - { - for (var i = 0; i < level.Iterations; i++) - { - try - { - level.Action(); - } - catch (Exception ex) - { - level.Exceptions.Add(ex); - } - } - } - finally - { - level.Finished = DateTime.Now; - level.Status = HelperStatus.Finished; - Interlocked.Decrement(ref _remainingLevels); - - if (_remainingLevels == 0) - { - // The run is finished - _testFinishedEvent.Set(); - } - } - })); - - foreach (var worker in workers) - { - registry.Enqueue(worker); - worker.Start(); - } - - // Run everything - _initiateLevelsEvent.Set(); - - // Wait for everything to finish - _testFinishedEvent.Wait(); - - Finished = DateTime.Now; - Status = HelperStatus.Finished; - - // Pause for the next run if this class is reused - _initiateLevelsEvent.Reset(); - - await Task.FromResult(0); - } - - public IReadOnlyDictionary GetExceptionSummary() - { - return Levels.SelectMany(l => l.Exceptions).GroupBy(ex => ex.Message).ToDictionary(group => group.Key, group => group.Count()); - } - - public double GetTotalRuntime() - { - return Levels.Sum(l => l.TotalMilliseconds); - } - - public double GetAverageActionRuntime() - { - return Levels.Average(l => l.AverageCallMilliseconds); - } - - public class Level - { - public string Name { get; set; } - - public Action Action { get; set; } - - public int Iterations { get; set; } - - public ConcurrentBag Exceptions { get; set; } = new ConcurrentBag(); - - public DateTime Started { get; set; } - - public DateTime Finished { get; set; } - - public double TotalMilliseconds => (Finished - Started).TotalMilliseconds; - - public double AverageCallMilliseconds => TotalMilliseconds / Iterations; - - public HelperStatus Status { get; set; } - } - } -} diff --git a/tools/Datadog.Core.Tools/EnvironmentTools.cs b/tools/Datadog.Core.Tools/EnvironmentTools.cs index 840859f5b4..d8bff274db 100644 --- a/tools/Datadog.Core.Tools/EnvironmentTools.cs +++ b/tools/Datadog.Core.Tools/EnvironmentTools.cs @@ -6,9 +6,7 @@ using System; using System.IO; using System.Linq; -using System.Reflection; using System.Runtime.InteropServices; -using System.Runtime.Versioning; namespace Datadog.Core.Tools { @@ -58,13 +56,6 @@ public static string GetSolutionDirectory() return _solutionDirectory; } - public static string GetTracerVersion() - { - // ReSharper disable once ConditionIsAlwaysTrueOrFalse - // ReSharper disable once UnreachableCode - return $"{TracerVersion.Major}.{TracerVersion.Minor}.{TracerVersion.Patch}{(TracerVersion.IsPreRelease ? "-prerelease" : string.Empty)}"; - } - public static string GetOS() { return IsWindows() ? "win" : @@ -91,43 +82,5 @@ public static string GetBuildConfiguration() return "Release"; #endif } - - public static bool IsConfiguredToProfile(Type anchorType) - { - var anchorAssembly = Assembly.GetAssembly(anchorType); - var targetFramework = anchorAssembly.GetCustomAttribute(); - - var parts = targetFramework.FrameworkName.Split(','); - var runtime = parts[0]; - var isCoreClr = runtime.Equals(CoreFramework); - - var environmentVariables = Environment.GetEnvironmentVariables(); - - var prefix = "COR"; - - if (isCoreClr) - { - prefix = "CORECLR"; - } - - if ((string)environmentVariables[$"{prefix}_ENABLE_PROFILING"] != "1") - { - return false; - } - - if ((string)environmentVariables[$"{prefix}_PROFILER"] != ProfilerClsId) - { - return false; - } - - var profilerPath = (string)environmentVariables[$"{prefix}_PROFILER_PATH"]; - - if (!File.Exists(profilerPath)) - { - return false; - } - - return true; - } } } diff --git a/tools/Datadog.Core.Tools/TracerVersion.cs b/tools/Datadog.Core.Tools/TracerVersion.cs deleted file mode 100644 index c83b74bedc..0000000000 --- a/tools/Datadog.Core.Tools/TracerVersion.cs +++ /dev/null @@ -1,33 +0,0 @@ -// -// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. -// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. -// - -namespace Datadog.Core.Tools -{ - /// - /// The canonical version for the dd-trace-dotnet libraries and tools. - /// - public class TracerVersion - { - /// - /// The major portion of the current version. - /// - public const int Major = 0; - - /// - /// The minor portion of the current version. - /// - public const int Minor = 0; - - /// - /// The patch portion of the current version. - /// - public const int Patch = 1; - - /// - /// Whether the current release is a pre-release - /// - public const bool IsPreRelease = false; - } -} diff --git a/tools/UpdateVendors/Program.cs b/tools/UpdateVendors/Program.cs index 88f139f92c..7108b1d578 100644 --- a/tools/UpdateVendors/Program.cs +++ b/tools/UpdateVendors/Program.cs @@ -9,7 +9,7 @@ using System.IO.Compression; using System.Linq; using System.Net; -using Datadog.Trace.TestHelpers; +using Datadog.Core.Tools; namespace UpdateVendors { @@ -35,7 +35,7 @@ public static void Main() var honeypotProjTemplate = GetHoneyPotProjTemplate(); honeypotProjTemplate = honeypotProjTemplate.Replace("##PACKAGE_REFS##", fakeRefs); - var projLocation = Path.Combine(EnvironmentHelper.GetSolutionDirectory(), "honeypot", "Datadog.Dependabot.Honeypot.csproj"); + var projLocation = Path.Combine(EnvironmentTools.GetSolutionDirectory(), "honeypot", "Datadog.Dependabot.Honeypot.csproj"); File.WriteAllText(projLocation, honeypotProjTemplate); } diff --git a/tools/UpdateVendors/UpdateVendors.csproj b/tools/UpdateVendors/UpdateVendors.csproj index 59727fbf0b..922d8218ad 100644 --- a/tools/UpdateVendors/UpdateVendors.csproj +++ b/tools/UpdateVendors/UpdateVendors.csproj @@ -6,7 +6,7 @@ - +