Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: DataDog/dd-trace-dotnet
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.18.0
Choose a base ref
...
head repository: DataDog/dd-trace-dotnet
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.18.2
Choose a head ref
  • 19 commits
  • 70 files changed
  • 3 contributors

Commits on Jun 25, 2020

  1. Read SmokeTest process output asynchronously (#768)

    This should resolve the following exception for all SmokeTests except for SecurityGrantFileNotFoundExceptionSmokeTest: "System.TimeoutException : The smoke test is running for too long or was lost."
    zacharycmontoya authored Jun 25, 2020
    Configuration menu
    Copy the full SHA
    14537a2 View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2020

  1. Optimizations for ObjectExtensions (#759)

    - Make MemberResult a struct
    - Add a custom key type for the cache to avoid building a string every time
    - Use the custom key to prevent closure allocation in the Concurrent.GetOrAdd callbacks
    - Make the PropertyFetcher generic to prevent boxing when fetching a value type
    - Add a Fetch overload to provide the type when it's already known
    - Use expressions to fetch the property value
    kevingosse authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    a68e324 View commit details
    Browse the repository at this point in the history
  2. MethodBuilder optimizations (#760)

    - Use a cached empty array
    - Add generic overloads and eagerly fetch type to reduce boxing
    - Remove boxing in key comparer
    - Remove string allocations from key
    - Embed the MethodBuilder in the key
    - Add a WithParameters overload with 4 parameters
    kevingosse authored Jun 26, 2020
    Configuration menu
    Copy the full SHA
    388fa1c View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2020

  1. Remove instance of DateTimeOffset in Span.Finish (#763)

    It looks like creating a DateTimeOffset because of the number of internal checks. We only need the Timespan in that codepath.
    kevingosse authored Jun 30, 2020
    Configuration menu
    Copy the full SHA
    22a32db View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2020

  1. Add diagnostic logs at startup (#769)

    * Add diagnostic logs at startup
    * Write the diagnostic message the first time the Tracer ctor is called
    * Add an API to check the status of the agent and call it in the startup log
    kevingosse authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    95611d4 View commit details
    Browse the repository at this point in the history
  2. Suppress heap allocations in TracerSettings.IsIntegrationEnabled (#772)

    * Suppress heap allocations in TracerSettings.IsIntegrationEnabled
    * Cache value in a static field + add unit test
    kevingosse authored Jul 1, 2020
    Configuration menu
    Copy the full SHA
    0078656 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ac08da6 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2020

  1. [ClrProfiler] Guarantee that startup hook only runs at one callsite i…

    …n IIS applications (#775)
    
    Modify the profiler so that, when running IIS or IIS Express on .NET Framework, the startup hook is only inserted in the `System.Web.Compilation.BuildManager.InvokePreStartInitMethods`. This has the following effects:
    
    1. This removes the guess-and-check nature of valid callsites for the startup logic when running IIS. Before, `System.Web.Compilation.BuildManager.InvokePreStartInitMethods` was called out as a valid callsite, but it was possible for other modules to be loaded and methods to be called before this, causing the startup logic to run in the incorrect place.
    2. This leaves ASP.NET Core apps hosted on IIS and IIS Express unchanged as they will still load at the earliest possible time in the setup of the ASP.NET Core application.
    3. For ASP.NET (.NET Framework) applications, additional AppDomains that are not the main AppDomain won't be automatically instrumented. This trade-off should be acceptable as any automatic tracing there would be disconnected from the original request anyways since it is separated by the AppDomain boundary.
    zacharycmontoya authored Jul 2, 2020
    Configuration menu
    Copy the full SHA
    6a1abe0 View commit details
    Browse the repository at this point in the history
  2. Cache tags from DbCommand (#774)

    * Cache the tags extracted from connection strings
    * Disable the cache if too many different connection strings are used
    kevingosse authored Jul 2, 2020
    Configuration menu
    Copy the full SHA
    382ea15 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b706db9 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2020

  1. Configuration menu
    Copy the full SHA
    d571a1f View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2020

  1. Improvement in ToBoolean StringExtensions (#789)

    * Improvement  in ToBoolean StringExtensions
    * Use Equals instead Compare
    tonyredondo authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    46701a4 View commit details
    Browse the repository at this point in the history
  2. Make RateLimiter tests more consistent (#787)

    - Reuse the same workers for each burst
    - Remove the initialization/warmup time from the "elapsed" computation
    - Simplify synchronization by using Barrier
    kevingosse authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    7f3529c View commit details
    Browse the repository at this point in the history
  3. Reduce heap allocations in AspNetCoreDiagnosticObserver (#779)

    * Reduce heap allocations in AspNetCoreDiagnosticObserver
    
    - Use a wrapper on top of IHeaderDictionary instead of duplicating the headers
    - Make all methods that expect a IHeadersCollection generic, to avoid boxing the wrapper
    - Cache the SamplingPriority values to avoid the costly enum conversion
    - Remove the ToList when accessing the header values
    kevingosse authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    6d72a76 View commit details
    Browse the repository at this point in the history
  4. Optimize UriHelper.GetRelativeUrl (#783)

    Reduce the number of intermediate strings.
    kevingosse authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    3c2e450 View commit details
    Browse the repository at this point in the history
  5. Improve de-duplication logic for automatic instrumentation of outboun…

    …d HTTP calls (#780)
    
    This PR improves the `Datadog.Trace.ClrProfiler.ScopeFactory.CreateOutboundHttpScope` helper method, used by both the `WebRequest` integration and the `HttpMessageHandler` integration, in the following ways:
    1. Removes several possible locations for a `NullReferenceException` to occur in the method
    2. Adds a more robust check on the parent span so that the HTTP span de-duplication logic (e.g. automatic instrumentation from nested `HttpMessageHandler` objects) will only consider spans created by automatic instrumentation, not custom spans
    zacharycmontoya authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    11e721b View commit details
    Browse the repository at this point in the history
  6. Increase time allotted to smoke tests (#788)

    * Double the execution time of smoke tests
    kevingosse authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    87a0066 View commit details
    Browse the repository at this point in the history
  7. Adds support for 'x-datadog-origin' http header (#781)

    * Adds support for 'x-datadog-origin' http header
    - Enable Extractor to parse the header and store it in the span context.
    - Enable Injector to inject the span context origin property to propagate the value.
    - Sets the '_dd.origin' tag to a new span if the span context has the origin value and if is the root span of a trace.
    - New constant values for the http header and the span tag.
    - Unit tests for Extract, Inject and setting the tag in the root span.
    
    * Changes based on the review
    - Changing the SpanContext Origin property to internal.
    - Moving the Origin set tag block to the DecorateRootSpan method.
    - Removing the ToList() and the double enumeration from the SpanContextPropagator.
    
    * Changes based on the review:
    - Adds the Origin header logic to SpanContextPropagatorHelpers.
    - Changed the unit tests for SpanContextPropagatorHelpers to consider the new origin header.
    - Fixes the OriginHeader_InjectFromChildSpan test.
    
    * Restore previous ctor to avoid a binary breaking change and introducing a new internal ctor for the origin header.
    tonyredondo authored Jul 8, 2020
    Configuration menu
    Copy the full SHA
    5c059e1 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2020

  1. Configuration menu
    Copy the full SHA
    1764b03 View commit details
    Browse the repository at this point in the history
Loading