Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[v3] Change manual instrumentation approach to not use reverse duck-typing #5214

Merged
merged 21 commits into from
Mar 4, 2024

Commits on Mar 4, 2024

  1. Configuration menu
    Copy the full SHA
    4de7a6a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dcfd28c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5514a9d View commit details
    Browse the repository at this point in the history
  4. Fix OpenTracing helpers

    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    8207160 View commit details
    Browse the repository at this point in the history
  5. Revert the changes to benchmark stat types

    Seeing as we're not reverse duck-typing any more, we don't need to do this
    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    e6eb70d View commit details
    Browse the repository at this point in the history
  6. Update manual Ci Visibility to not rely on reverse duck-typing

    This is made rather irritating by the fact we _can't_ ducktype Test as an ITest. That, coupled with the APIs that connect module + suite + test together means we need to duplicate the interfaces in their entirety.
    
    It seems to work though 🎉
    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    3fb9429 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    4327791 View commit details
    Browse the repository at this point in the history
  8. Use instrumentation of DuckType.DuckCast<T> in Datadog.Trace.Manual.c…

    …sproj
    
    Means we can avoid having to include the whole DuckTyping library inside Datadog.Trace.Manual
    The downside is that it's hard to test in unit tests. as everything requires auto instrumentation
    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    6332e28 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    605b79a View commit details
    Browse the repository at this point in the history
  10. Simplify the implementation

    Instead of having wrapper ManualScope implementations etc, we can just use duck typing instead directly. This reduces one level of indirection and reduces the allocations
    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    5a1ff03 View commit details
    Browse the repository at this point in the history
  11. Redesign approach with CI Visibility

    - Use the standard duck typing approach instead of reverse duck typing
    - Remove the ManualTest etc
    - Move methods that we _can't_ duck type to be extension methods that we instrument
    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    c754cb9 View commit details
    Browse the repository at this point in the history
  12. Update generated code

    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    67d650b View commit details
    Browse the repository at this point in the history
  13. Apply suggestions from code review

    Co-authored-by: Kevin Gosse <kevin.gosse@datadoghq.com>
    andrewlock and kevingosse committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    798d6fa View commit details
    Browse the repository at this point in the history
  14. PR feedback

    - Fix previous PR feedback suggestions ;)
    - Add [Instrumented] to Tracer.ctor
    - Fix merge conflict in IntegrationIdExtensions
    - Add missing telemetry integration
    - Move TracerSettingsPopulateDictionaryIntegration into correct folder, and rename to PopulateDictionaryIntegration
    - Add a unit test for SetTag
    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    9f2f6eb View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    aac31c9 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    d69e59b View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    41d7f6e View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    399dd55 View commit details
    Browse the repository at this point in the history
  19. Fix bug introduced

    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    21ac0f7 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    6a89e3c View commit details
    Browse the repository at this point in the history
  21. Fix merge conflict

    andrewlock committed Mar 4, 2024
    Configuration menu
    Copy the full SHA
    850bf8f View commit details
    Browse the repository at this point in the history