Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reimplement batching on top of dogstatsd (#989) Fix benchmarks project location in minimal solution (#994) dd-trace dotnet cli tool (#962) * Initial commit * Add the linux native image into the nuget package. * new folder structure and initial runner program file. * Changes * Update git ignore * fix build * New nuspec structure to improve nuget file size * Removal of System.CommandLine dependency * Refactoring and code improvements. * fixes ignore readme.txt in nuspec. * code cleaning. * Adds the tool runner to the set versions tools. * Changes based on comments. * Apply suggestions from code review Co-authored-by: Lucas Pimentel-Ordyna <[email protected]> * Changes from code review * Changes from code review * Adds a project to an standalone version. * Change the Console project to Standalone and remove the tool compilation to the standard managed job. * Fixes unit test pipeline * Adds a new pipeline to build both the tool and the standalone app. * fixes runner.yml * fixes runner.yml * debugging commit * Add multiple process check for docker * remove debugger step in runner.yml * Update src/Datadog.Trace.Tools.Runner/Options.cs Co-authored-by: Zach Montoya <[email protected]> * Fixes runner pipeline in azure. * forcing linux platform in docker image * Removed unused var * Removed Windows machine build condition on BuildCsharpProjects * Update solution and project for new directory structure. * Fixes SetAllVersions * Fixes runner.yml and linux native binary * fixes * Fix runner.yml * Adds artifact publish * fix * Exclude the runner from the CSharpProject group. Co-authored-by: Lucas Pimentel-Ordyna <[email protected]> Co-authored-by: Zach Montoya <[email protected]> Add error message when http response code is 5xx (#992) Fix tags serialization (#996) Add experimental integration for Microsoft.ServiceFabric.Services.Remoting.V2 (#972) Uniformize instrumentation tags (#980) * Hardcode const values into tags Some values, such as SpanKind, never change for a given tag type. Having readonly property for those allow to reduce the size of the class. Also, introduce a InstrumentationTags base class to reduce duplication. Add .NET 5 target to integration tests (#995) Edited the major version of integrations to target 5.x assemblies Added a job to run .NET 5 integration tests Added the .NET 5 SDK to all impacted pipelines Updated the framework detection logic in tests because the TFM does not contain "netcoreapp" Updated MySQL in Alpine because of weird failures with Alpine 3.12 (the .NET 5 image is not available for Alpine 3.10) Automatic Instrumentation: Load Datadog.Trace.dll into a separate AssemblyLoadContext on .NET Core (#999) Load Datadog.Trace.dll into a separate AssemblyLoadContext on .NET Core so it doesn't clash with the one provided by the NuGet package. This fixes the error `System.IO.FileLoadException: Could not load file or assembly 'Datadog.Trace, Version=1.X.X.X Culture=neutral, PublicKeyToken=def86d061d0d2eeb'` when combining manual instrumentation (Datadog.Trace NuGet package) and automatic instrumentation on .NET Core Remove dependency on Sigil 4.7.0 / Sigil-vNext 4.8.41 (updated) (#993) This PR removes usages of `Sigil 4.7.0` and `Sigil-vNext 4.8.41`, removing `Sigil.dll` dependency on all target frameworks. - Remove `Sigil` NuGet packages from `Datadog.Trace.ClrProfiler.Managed.csproj` and add direct NuGet package references to `System.Reflection.Emit` NuGet packages that were previously transitively referenced for the `netstandard2.0` build target - `Datadog.Trace.ClrProfiler.Emit.ObjectExtensions` - Replace all usages of `Sigil.Emit<T>` with `System.Reflection.Emit.ILGenerator` - Store static field `System.Reflection.Emit.ModuleBuilder Module` to hold single module in which `MethodBuilder` dynamic methods will be emitted - `Datadog.Trace.ClrProfiler.Emit.MethodBuilder` - Replace all usages of `Sigil.Emit<T>` with `System.Reflection.Emit.ILGenerator` - `Datadog.Trace.ClrProfiler.Emit.DynamicMethodBuilder'1` - Replace all usages of `Sigil.Emit<T>` with `System.Reflection.Emit.ILGenerator` - Fix `ExecuteReaderAsync` in the `SqlCommandIntegration` and `NpgsqlCommandIntegration` classes that began failing after removing Sigil. The return types were specified by the delegate to be `Task<DbDataReader>` even though the public interfaces were specified to return `Task<SqlDataReader>` and `Task<NpqgsqlDataReader>` Fix HttpModule precondition (#1010) Update .NET Tracer version to 1.20.0 (#1013) Update Serilog automatic logs injection to use the new message property names (#1009) - When using the Serilog logging library, change the message property names set by the automatic logs injection: - `dd.trace_id` => `dd_trace_id` - `dd.span_id` => `dd_span_id` - `dd.env` => `dd_env` - `dd.service` => `dd_service` - `dd.version` => `dd_version` Replaces the current profiler logger with spdlog. (#1005) * Replaces the logs with spdlog. * added missing files. * Remove unused import. Fix test project compilation. * formatting fixes. * Fixes the linux compilation. * Use CMake Mirror for download binaries. * Set curl to follow redirects. * Adds the fmt compilation on alpine. * Include licenses. Add support for token resolution in DumpIL (#1012) Vendor Tool Optimization (#1006) fix assembly names in NpgsqlCommand.ExecuteScalarAsync() integration (#997) Fixes ducktyping on non public structs targets (#1014) bump version to match latest Datadog.Trace; add net461 target (#1017) Modify our HttpModule to propagate the newly created span context through HTTP headers so the WCF pipeline can pick up the distributed trace context (#1018) When a WCF service is hosted in IIS, the WCF service is hosted [side-by-side](https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/wcf-services-and-aspnet) with the ASP.NET pipeline so it cannot retrieve the current Datadog scope that is created by the HttpModule. Once the HttpModule creates an `aspnet` span, the HttpModule will also inject the trace context into the HTTP request via the distributed tracing headers. Then, when the WCF pipeline is later invoked, the trace context of the `aspnet` span will be extracted from the HTTP headers of the request object (unchanged in this PR), which then connects the spans into one trace. This has been validated in the following scenarios when hosting a WCF service on IIS: 1. HTTP request from browser (no distributed tracing) 2. Distributed trace In both cases, the traces that were incorrectly created in parallel are now nested correctly. StatsdClient Upgrade (#1008) Avoid segfault in NetCoreAssemblyLoadFailureOlderNuGet regression test (#1022) Adds a delay for the netcoreapp2.1 version of the NetCoreAssemblyLoadFailureOlderNuGet regression test to avoid a segfault when the application exits. We do this for all other regression tests that exit quickly so we no longer get a Non-success exit code 139 when running the regression test. Fix application name. (#1024) Improve managed tracer logs (#1011) - Rename log files to dotnet-tracer-managed-*.log - Add Debug level logs to document how many traces we attempt to send to the Tracer and a confirmation of how many traces succeeded or failed to send - For exceptions when sending traces to trace agent, only log intermediate retry failures in Debug mode. Fix an exception when the ducktype chaining is used with a public struct (private structs works fine). (#1023) Optimize event matching in DiagnosticsObserver (#1020) * Optimize event matching in DiagnosticsObserver Creates a signed package using internal CI (#1019) Make additional managed + native logging improvements (#1025) Makes planned improvements to the managed and native tracer logging: - Both - Adds a new `DD_TRACE_LOG_DIRECTORY` environment variable to take precedence over `DD_TRACE_LOG_PATH` - Native - Renames output file from `dotnet-profiler.log` to `dotnet-tracer-native.log` - Adds `Windows`/`Linux` to the native log output - Change the default behavior to only print out the Datadog environment variables that are set. When set to debug mode, the native logs will write all Datadog environment variables, including empty ones - Managed - Adds unit tests for dynamically setting the managed tracer's log-level One additional fix is made: Do not use the `EnvironmentHelpers` utility class in the `EnvironmentConfigurationSource` class. This creates an indirect dependency from the configuration system to the logging system. Add robustness to manual instrumentation code paths on .NET Framework (#1001) Goal: Identify and mitigate issues that arise when the .NET Tracer manual instrumentation is used in a heavily restricted .NET Framework environment. This PR avoids the automatic instrumentation code paths. Improvements for restricted environment: - Create a new test application that manually creates Datadog spans while running in an AppDomain with only the `SecurityPermissionFlag.Execution` permission - Modify vendored Serilog code that produces code that may be unverifiable on .NET Framework. This throws a VerificationException when not run in full trust - Wrap several .NET Framework method calls in try/catch blocks so SecurityException's are caught. Additionally, wrap several callsites with helper methods so that .NET Framework types and methods that require full trust callers can be enclosed in try/catch blocks - Replace TracerConstants. with a constant string to be regenerated by the PrepareRelease tool, which avoids a SecurityException due to missing FileIOPermission when discovering the codebase of the Datadog.Trace assembly Unrelated improvements: - Fix possible NullReferenceException from calling GetEnvironmentVariables - Log unhandled exceptions in Tracer logs Add automatic instrumentation for apps/libraries referencing System.Data 2.0.0.0 (#1000) Fixes missing ADO.NET automatic instrumentation spans when running an application on .NET Framework 4.5 (or higher) and the application or a library was built against .NET Framework 2.0. When a .NET application or library is built for an older version of the .NET Framework it will have assembly references to that version of the framework assemblies (e.g. System.Data 2.0.0.0), but when it is run against a later version of the .NET Framework, the .NET Framework will automatically unify the framework assemblies to the current version. This means if a .NET Framework 2.0 application referenced System.Data 2.0.0.0 but it was run on .NET Framework 4.5, the runtime would actually load System.Data 4.0.0.0. In such a scenario, we should be performing automatic instrumentation because System.Data 4.0.0.0 is loaded. However, we currently do not instrument these call sites because our CallSite instrumentation can only see the version that the application/library referenced, which was System.Data 2.0.0.0, and our ADO.NET instrumentation has a set minimum AssemblyVersion of 4.0.0.0. The proposed change is to lower the minimum AssemblyVersion of ADO.NET integration methods from 4.0.0.0 to 2.0.0.0 for the synchronous methods. This will be valid because: 1. The `ExecuteXXX` API's are identical between 2.0 and 4.0 (used for method replacement) 2. The `IDbCommand` interface is identical between 2.0 and 4.0 (used to populate span information) 3. If automatic instrumentation is on, then the user must be running .NET Framework 4.5 and, by extension, using System.Data 4.0.0.0 at runtime. - Lower the minimum AssemblyVersion for `DbCommand`, `IDbCommand` and `SqlCommand` integration methods from `4.0.0.0` to `2.0.0.0` - Add a new Samples.SqlServer.NetFramework20 that uses a .NET Framework 2.0 library (compiled against System.Data 2.0.0.0) Update .NET Tracer version to 1.20.1-prerelease (#1032) Adds try/catch to the spdlog rotating_logger_mt (#1028) * Adds try/catch to the spdlog rotating_logger_mt * Tries to create directory tree if is missing on linux. * change based in comments. Adds PlatformTarget in the ServiceFabric project file (#1030) CleanUriSegment improvements. (#1027) * CleanUriSegment improvements. * Change the code and inline manually. * Update src/Datadog.Trace/Util/UriHelpers.cs Co-authored-by: Lucas Pimentel-Ordyna <[email protected]> * Change the algorithm to the best option according the Benchmarks: CleanUriSegmentNewNoTryParseNoDash Co-authored-by: Lucas Pimentel-Ordyna <[email protected]> Use the new statsd API (#1026) Use .NET 5.0 RTM in tests (#1036) Use local trace count for trace count header (#1045) Add Microsoft.Data.SqlClient.SqlCommand integration (#998) generate random trace ids for rules-based sampler tests (#1042) Removes the rotating file sink and replace it with a basic file sink. (#1044) CleanUriSegment optimization. (#1037) Changes the CleanUriSegment loop to a do/while (#1050) DuckTyping fixes (#1048) * DuckTyping fixes * Changes. Skip publishing the standalone CLI if the build is running inside VS (#1051) Update .NET Tracer version to 1.21.0 (#1053) Implement runtime metrics on netcoreapp3.1 (#1015) improvements to rules-based sampler tests, redux (#1052) * refactor SpanIdGenerator to make is an instance class and allow passing a seed * don't use the thread static id generator in test Fix CI links in Readme.md (#1058) Update of the semantic conventions. (#1056) AspNetCoreDiagnosticObserver optimizations. (#1038) * Adds DuckTyping support for the diagnostic observer. Adds ReferenceEquals optimization * Update src/Datadog.Trace/DiagnosticListeners/AspNetCoreDiagnosticObserver.cs Co-authored-by: Lucas Pimentel-Ordyna <[email protected]> * fix compilation issues Co-authored-by: Lucas Pimentel-Ordyna <[email protected]> Add internal setting for the size of the trace queue (#1033) don't use global tracer in rate limiter tests (#1047) Fix AspNetCoreDiagnosticObserver bug (#1061) * Fix AspNetCoreDiagnosticObserver bug. Adds a CompleteDiagnosticObserverTest based in the benchmark test logic. * Changes based in the review. * - Adds support for BindingFlags in the DuckTyping library. - Add a test for the UnhandledException branch - Adds IgnoreCase binding flags to the AspNetCoreDiagnosticObserver Ducktyping: DynamicMethod call through delegates. (#1054) * Removes the DynamicMethod calli and changed with a CustomDelegate approach. * Improves the performance of the DelegateCache class * Update readme to modify the behavior on DynamicMethod calls. * Fix delegate field name Ensures the managed loader is loaded only once. (#1055) * Adds an Interlocked.CompareExchange to the loader IL code to ensure the loader is loaded only once. * Fix docs * Adds a new Integration test for the multiloader bug. * Add Samples.NoMultiLoader to the build script. * Change based in the review. * Update src/Datadog.Trace.ClrProfiler.Native/cor_profiler.cpp Co-authored-by: Lucas Pimentel-Ordyna <[email protected]> Co-authored-by: Lucas Pimentel-Ordyna <[email protected]> Optimize IsIntegrationEnabled (#1016) Index integrations by id instead of name for faster lookup time. Add runtime metrics for .net framework (#1057) Add MacOS support (#1059) * Include osx versions of fmt and spdlog libraries * First CMakeLists.txt changes * Fixes compilation and linker errors for macos * Extract process name from PID in OSX * Keeping the WSTRINGSTREAM in non OSX platforms. * Update Azure Pipeline * Remove linux profiler build warnings * Removes unnecessary lib/fmt_x64-osx folder * Remove specific version of spdlog_x64-osx as is the same as the linux version * Enable unit tests on macOS Reset the GC mutex after resetting the mock (#1063) Buffer exception count before sending (#1065) Add runtime metric for CPU usage in percent (#1064) * Add runtime metric for CPU usage in percent * Detect cases when OnEventWritten is called before the constructor Allow users to add "_dd.measured" metric to spans (#1066) Try fixing race condition in GC test (#1071) Commenting the spdlogger error handler. (#1073) Temporarily disable runtime metrics (#1079) Limit test parallelism to CPU count (#1078) Test was running with 10 threads even though CI agent has 2 cores Disable parallelization on runtime metrics tests (#1077) Suppress warning NETSDK1138 (#1084) This warning is about using versions of the framework that are not supported anymore. Increase number of iterations for sampler tests (#1083) With seed 771467036 and 10k iterations, the test fails with a difference of 5.6% - Adds JobUrl for AzurePipelines (#1082) - Remove JobUrl for Jenkins - Populate the Tag property - Adds missing WorkspacePath property Log content of http response on failure (#1086) Fixes GetILCodes crash when the original string does not have the \0 char. (#1087) Add more information to the assertion (#1085) Trying to debug a flaky test Fix spurious InvalidOperationException in tests (#1091) AAS Tags Enhancements (#1090) Run statsd worker in a dedicated thread (#1095) Add automatic instrumentation for WebRequest.GetResponse() calls that reference System 2.0.0.0 (#1093) Similar to the recent System.Data v2.0.0.0 PR (#1000), we do not currently instrument calls to `WebRequest.GetResponse()` when libraries reference System 2.0.0.0, because we set the minimum version of calls to be 4.0.0.0. This lowers the minimum version allowed and adds an integration test to demonstrate the added instrumentation. Keep same syncronization context for continuations. (#1094) Add new configuration setting DD_TRACE_ADONET_EXCLUDED_TYPES to exclude instrumentation from specified AdoNet types (#1076) Replaces #1072 The ADO.NET instrumentation is one of the few integrations that (currently with CallSite instrumentation) may generate multiple spans because we instrument calls to the `IDbCommand` interface and `DbCommand` base class. Current configuration settings allow us to exclude entire integrations from creating spans, but we are missing a way to prevent a subset of Db classes from generating spans. This PR adds a `DD_TRACE_ADONET_EXCLUDED_TYPES` setting that will filter out spans that would be generated from the user-specified database types, such as `System.Data.SqlClient.SqlCommand` and `Microsoft.Data.SqlClient.SqlCommand`. Changes proposed in this pull request: - Add `DD_TRACE_ADONET_EXCLUDED_TYPES` configuration setting - Add unit tests for `DD_TRACE_ADONET_EXCLUDED_TYPES` in `Datadog.Trace.ClrProfiler.Managed.Tests` project - Add integration test for `DD_TRACE_ADONET_EXCLUDED_TYPES` in `HttpMessageHandlerTests` of the `Datadog.Trace.ClrProfiler.IntegrationTests` project Move DuckTyping library to Datadog.Trace assembly (#1098) * Merge Datadog.Trace.DuckTyping to Datadog.Trace and remove the dependency. * PrepareRelease msi Bump the .NET Tracer version to 1.21.1 (#1099) Activate C# 9 (#1089) Revert "Temporarily disable runtime metrics (#1079)" (#1101) This reverts commit a85d1fa. Updating packages pipeline to .NET Core SDK 5 (#1102) Collect metrics from aspnetcore eventcounters (#1074) Add automatic instrumentation for RabbitMQ.Client library (#1081) Adds automatic instrumentation for the `RabbitMQ.Client` library versions 3.6.9-6.2.1. The following spans are automatically generated when using the library: - `exchange` operations - `exchange.declare` - `queue` operations - `queue.declare` - `queue.bind` - `basic` operations - `basic.publish` - `basic.get` - `basic.deliver` Test Scenarios 1. Binding a queue to an exchange with a specified routing key, publishing a message to the same exchange with the same routing key, and directly getting a message 2. Creating a queue, publishing a message to the default exchange using the queue name as the routing key, and directly getting the message 3. Creating a queue, publishing a message to the default exchange using the queue name as the routing key, and setting up a consumer to pull incoming messages on that queue Isolate StringBuilderCache (#1103) Update .NET Tracer to 1.21.2-prerelease (#1104) Verbose Assert Message - DogStatsD Tests (#1105) Ensure we count the span of the right test run (#1097) Mock the clock in the RateLimiter tests (#1088) Attempt to fix integration-tests build failure "Cannot open Datadog.Trace.dll | Datadog.Trace.AspNet.dll" (#1107) Set `BuildInParallel=false` for the offending build step that is causing the following build errors: - `Cannot open 'D:\a\1\s\src\Datadog.Trace.AspNet\obj\Debug\net45\Datadog.Trace.dll'` - `Cannot open 'D:\a\1\s\src\Datadog.Trace.AspNet\obj\Debug\net45\Datadog.Trace.AspNet.dll'` Cache FrameworkDescription (#1092) Improve non-windows dev experience and toolchain update (#1096) * First test to improve CMake build * update unit-tests * Update CMakeLists.txt * update * Download dependencies from make * refactor libs * add missing spdlog lib * fix windows build * force clang * Update dockerfiles * adding DEBIAN_FRONTEND=noninteractive * update dockerfiles * Update CMakeLists.txt * Adds prerequisites detection. * Remove bitness message in the native logs. * Remove macOS temporal files Disable dogfooding temporarily (#1112) * Disables dogfooding temporarily * Disable MSBuild custom logger. Update the datadog agent container image. (#1111) Add integration tests for runtime metrics (#1108) Logs and Tracing Disable in AAS (#1109) CallTarget Instrumentation V1 (#1007) * Adds a basic rejit handler to retrieve all data needed for IL Rewrite * Changes and a new function to check if a method should be instrumented or not depending of the functionID (compatible with the inlining function) * Rejit changes with callback. * Adds initial modifications to support call target * Ensure we can parse the method signature before procesing. * CallTargetState and CallTargetReturn structure * Initial calltarget invoker handlers. * Adds exception logger * remove unused usings * Adds CallTargetInvokerException and logger. * Adds CallTargetTokens class and initial base EnsureCorLibTokens method. * EnsureBaseCalltargetTokens WIP * CallTargetTokens class WIP * CallTarget WIP * WIP * WIP * Fixes compilation error WIP * WIP * WIP * WIP * Finishing modifying the local vars signature and initializing variables. * add check for return ref methods. * BeginMethod fast path wip * BeginMethodWithArray implementation. * Fixes based in the test suite. * Added try/catch in the begin method and logexception method. * Fixes type_valueType default value. Enable DEBUG flag for the CallTargetInvoker. * Adds EndMethod and try catch clauses. * Fixes EndMethod return value implementation, and MethodImpl options to force Optimization and AggressiveInlining * Fixes ReJIT deadloack and add an option to enable inlining. * changes * formatting fixes. * Add inlining environment variable option. Add token resolution for DumpIL * Add UserString in DumpIL * Initial work for enabling support to NGEN images * Add two missing files to the CMakeLists * Adds the CallTargetNativeTest project. * changes the launchSettings * Fixes the integrations.json * Adds a check for ref arguments. * fixes native test suite. * Fixes some Cmake warnings. * Fixes remaining CMAKE warning. * Initial CallTargetInvoker BeginMethod handler implementation. * CallTargetInvoker handler WIP * Fix rebase from master * Fixes ducktyping call in calltargetinvokerhandler * CallTargetInvokerHandler WIP * CallTargetInvokerHandler EndMethod WIP * CallTargetInvokerHandler EndMethod WIP * EndMethod with return values and Noop5Integration WIP * Add missing Noop arguments. * Added CreateSlowBeginMethodDelegate implementation. * Adds OnAsyncMethodEnd to Noop integrations. Adds Async interfaces for ducktyping. Fixes DuckTyping chaining for struct types. * Adds a continuation helper for OnAsyncMethodEnd, and changes the signature of the method to match the signature of OnMethodEnd. * WIP * Async continuations WIP * Async continuations. * Remove unused types and refactor things. * HttpClient instrumentation test * Adds support for the new InstrumentMethodAttribute * Add an HttpClientBenchmark for CallTarget instrumentation * Complete refactoring of the CallTargetInvoker. * Refactor changes. * Fix compilation fail with spdlog * HttpClient integration refactor * Change HttpClient namespace to HttpClientHandler. Adds SocketsHttpHandler * WinHttpHandler integration * Adds comparison of the assembly name on the CallTarget_RequestRejitForModule * Change AspNetCoreDiagnosticObserver to use DuckTyping * Add EH clauses to the DumpIL, also remove two unnecessary instructions. * remove indent to avoid stackoverflow * Better documentation in the native files. * Remove NGEN flag * Revert PrepareRelease tool launch settings * Remove previous NGEN work, and save it for another PR * revert some Debug's * Change based in zach suggestion. * Fix enumerator iterator. * Revert AspNetCoreDiagnosticObserver, there's already a PR with this optimization. * Adds the IntegrationName property to the InstrumentMethodAttribute. * Fixes the HttpClientBenchmark using block * Small optimization when calculating the result type for Task<> and ValueTask<> * Refactoring the proxy type creation IL code. * Changes based in the review. * Renamig calltarget solution folder to instrumentation based in the review * Changes based in the review * Update src/Datadog.Trace.ClrProfiler.Native/clr_helpers.cpp Co-authored-by: Zach Montoya <[email protected]> * Changes and fixes based in the review * Fix integrations.json of the sample app. * Fixes and refactoring. * Adds a CallTargetEnabled environment variable in to the profiler to filter the integrations.json file and to enable or disable the calltarget mode. * Fixes native tests. * Fix IntegrationMapper.cs compile error after merging from master * Move NoOp integrations to the CallTargetNativeTest. * Restore the Disable NGEN images flag and improve the CallTargetEnabled message. * Adds CallTarget variant for HttpMessageHandlerTests * Changes from the review * Fix segmentation fault on linux/macos from an uninitialized pointer. * Fix Scope ExecutionContext in HttpIntegration * Fix comments typo. * Replace the anonymous method with a ContinuationAction static method. * Change HexStr with TokenStr when showing token hex values. * Prettier GetILCodes. * Changes based in the review * Apply suggestions from code review Co-authored-by: Kevin Gosse <[email protected]> * Fix merge from master * Changes based in the reviews. * Remove duplicates. * Update integrations.json Co-authored-by: Zach Montoya <[email protected]> Co-authored-by: Kevin Gosse <[email protected]> Fix crash caused by EventCounters test (#1113) Fix logging tests (#1115) * Fix logging tests * Disable parallelization on configuration tests Fix failures in RuntimeMetricsWriterTests.CleanupResources (#1121) The test could fail if an exception was thrown from another thread and that thread was still executing the FirstChanceException handler when unsubscribing Run MongoDB tests on 2.11.* (#1119) Removes the Logger::Shutdown method, and uses a guard to ensure the Shutdown() and ProfilerDetachSucceeded() are called after not modules are in process. (#1117) Reenable dogfooding by removing the breaking change (#1116) Removing warnings from the clang-tidy utility. (#1118) * Removing warnings from the clang-tidy utility. * increase integration tests timeout Catch all exceptions when closing HttpListener (#1122) Looks like there's no end to the kind of ways it can fail. Added configuration for span errors based on http status codes (#1123) * Added configurable options for errors based on status codes - Move ConvertStatusCodeToString to SpanExtensions - Introduce a IHasStatusCode interface for direct access to the strongly typed tags Co-authored-by: Maximo Bautista <[email protected]> Fix profiler shutdown race condition (#1125) * Fix shutdown race condition causing the stackoverflow exception + mutex error. * changes to make it compatible with clang. * change the .ctor Http Over Named Pipes (#1046) Fix SqlCommand.ExecuteNonQuery integration (#1120) Fix AgentWriterBenchmark (#1126) Fix path to benchmarks (#1127) Shutdown logger before profiler shutdown. (#1124) Fix dotnet 2.x shutdown bug affecting the profiler shutdown. (#1128) Remove Restriction for Pipe Request Content-Length (#1133) Bump .NET Tracer version to 1.22.0 (#1140) Add a prefix filter in the PrepareRelease tool to filter out other version numbers in CMakeLists.txt (#1141) Add VB tests for SQL server (#1137) Fix reading from standard input / Console.ReadLine on the runner. (#1135) XUnit CallTarget integration (#1130) * XUnit integration using CallTarget instrumentation. * integrations tool update * Add OnMethodEnd callback recover ExecutionContext workaround. * Change based in the review. * Change based in the review. * Update integrations.json * Fix CIApp compability by removing the Analyzed flag in the span. NUnit CallTarget integration (#1131) * CallTarget NUnit Integration * Changes based in the reviews. * Changes from reviews * Update integrations * Fix CIApp compability by removing the Analyzed flag in the span. * update integrations.json Add configuration for customising span service names (#1142) * Fix RabbitMQ not using correct servicename * Add DD_TRACE_SERVICE_MAPPING configuration key Used to rename a sub-service name based on configuration For most integrations, the key is the integration type For DbCommands, this is based on dbType. For HttpClient, we map all http-clients, regardless of destination * Add fastpath avoiding dictionary lookup when no service name mappings * Add integration test for service mapping * Wrap ServiceNameMappings dictionary to avoid direct external access Additional mappings can be added using the `SetServiceNameMappings` method The default path, where there are no mappings, avoids the dictionary lookup. If required, we can further optimise this later (e.g. handle small number of mappings, known integration service names etc) * Add support for null IDictionary in .ctor Avoids creating an unneccessary instance in TracerSettings * Use IsNullOrWhiteSpace when creating configuration key values * Update service mappings API to allow replacing whole configuration Update CiApp tags according the specs. (#1145) * Update CiApp tags according the specs. * changes from PR review Fix CIApp integrations by removing the Analyzed span tag. (#1144) Scope restore on CallTarget async integrations (#1134) * Add Scope restore support for CallTarget async integrations. * Change OnMethodBegin code * Fix XUnit and NUnit integration. * Renaming OldScope to PreviousScope Add Site Extension Version to Trace Tags (#1149) hide build warnings for EOL targets (#1152) Use the command as query in MongoDb (#1138) Packages pipeline fix (#1155) * add git to package.dockerfile * adds --fix-missing to the apt-get command SqlClient CallTarget integration (#1146) * SqlClient calltarget integration Scaffolding * SqlCommand calltarget integration. * Update Tests * Remove DEBUG flag * Update integration * Changes from the review * Add span null check. * Change constants class name * Add support for custom InstrumentMethodAttribute Fix Packages pipeline AWS cli installation (#1158) * test different installation of aws-cli * display installed aws cli version Reduce number of Skipped tests (#1004) Remove `TargetFrameworkVersionsFact` and `TargetFrameworkVersionsTheory` types so that we reduce the number of tests that are built and skipped. Instead, framework-dependent tests are only built and ran on the appropriate framework(s). Build and Test ARM64 automatic instrumentation in CI (#1114) * Add arm64 profiler build in unit-tests * adds managed unit-tests for arm64 linux. * Add integration tests for arm64 * Adds missing RabitMQ integration tests from ARM64 * Missing sample * Add missing Samples.RuntimeMetrics * Remove netcoreapp3.1. Is not compatible with ReJIT * Removes the timeoutInMinutes increase Remove reference to non-existent project (#1159) Removed in DataDog/dd-trace-dotnet@5c803ee09e85006 Fix ARM64 integration tests (#1166) * Adds ArmUnsupported test category Update dogstatsd client to v6.0.0 (#1143) Replace log messages using string.Format style with structured log style (#1163)
- Loading branch information