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

[PROF-7440] Report status of timeline feature as internal metadata #3040

Merged
merged 5 commits into from
Aug 15, 2023

Commits on Aug 10, 2023

  1. Refactor Flush to receive internal_metadata without knowing what'…

    …s in it
    
    During review of #2927, @marcotc did point out that getting the
    internal metadata information from the `Datadog::Profiling::Component`
    to the `Flush` object was quite a lot of changes.
    
    As I'm preparing to add a second entry to `internal_metadata`, I'm
    refactoring this code to try to change it so that fewer components
    need to be touched when we want to add more stuff.
    ivoanjo committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    7acf4ea View commit details
    Browse the repository at this point in the history
  2. Store profiling internal_metadata inside Exporter as hash

    This is a refactor in preparation for adding more internal metadata
    entries, but hopefully do so in a way that avoids needing to touch
    a lot of internal classes each time.
    ivoanjo committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    74c6b59 View commit details
    Browse the repository at this point in the history
  3. Pass internal_metadata into Exporter as a hash

    This is one more step in a refactor in preparation for adding more
    internal metadata. By having the `Exporter` receive the
    `internal_metadata` as a opaque hash it cares nothing about, we can
    easily add more entries directly in the `Profiling::Component` without
    needing to touch a lot of classes.
    ivoanjo committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    a4022b4 View commit details
    Browse the repository at this point in the history
  4. Pass internal_metadata into build_profiler_exporter

    This is the last step of the refactor in preparation for adding more
    internal metadata.
    
    By having the `build_profiler_exporter` receive the `internal_metadata`
    hash directly, we now only need to modify the creation of the
    `internal_metadata` hash to be able to propagate more information.
    ivoanjo committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    13451a8 View commit details
    Browse the repository at this point in the history
  5. [PROF-7440] Report status of timeline feature as internal metadata

    **What does this PR do?**:
    
    This PR adds support for reporting the status of the timeline feature
    together with profiles, via the internal metadata field.
    
    I ended up doing a bunch of refactoring to make it easier to adds new
    reported fields as internal metadata; it may be easier to review this
    PR commit-by-commit.
    
    **Motivation**:
    
    While this feature is off-by-default, having this internal metadata
    makes it easier to spot profiles that have/don't have this data
    without actually opening them up in the UX.
    
    **Additional Notes**:
    
    N/A
    
    **How to test the change?**:
    
    This change includes test coverage. It's possible internally at
    Datadog to see this information in profile listings (ping me if you'd
    like to know more).
    ivoanjo committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    c4a52f0 View commit details
    Browse the repository at this point in the history