-
Notifications
You must be signed in to change notification settings - Fork 9
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
Add parametric tests for crashtracking #2884
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
@@ -469,6 +469,7 @@ def dotnet_library_factory(): | |||
ENV CORECLR_ENABLE_PROFILING=0 | |||
ENV CORECLR_PROFILER={{846F5F1C-F9AE-4B07-969E-05C26BC060D8}} | |||
ENV CORECLR_PROFILER_PATH=/opt/datadog/Datadog.Trace.ClrProfiler.Native.so | |||
ENV LD_PRELOAD=/opt/datadog/continuousprofiler/Datadog.Linux.ApiWrapper.x64.so |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it ok to add this to all .NET parametric tests, or should we add it to the new tests only?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's better to add it to all tests. My reasoning is that it shouldn't impact the other tests, so that's a good way to make sure it doesn't.
{ | ||
var thread = new Thread(() => | ||
{ | ||
throw new BadImageFormatException("Expected"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious, why throw the exception from another thread?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I throw it from the current thread, aspnetcore will catch it and it won't crash the app
event = test_agent.wait_for_telemetry_event("logs", wait_loops=400) | ||
assert self.is_crash_report(event) | ||
|
||
@missing_feature(context.library == "dotnet", reason="Not implemented") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not implemented?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently .NET uses the wrong environment variable, there is a pending PR to fix that
…ed via env var (#10233) ### Change Overview This PR enables the `wait_for_receiver` field to be set via `DD_CRASHTRACKING_WAIT_FOR_RECEIVER` environment variable. If unset, the default is `true`. ### Motivation [System-tests for crashtracking](DataDog/system-tests#2884) exposed that the Python crashtracker needs the `wait_for_receiver` field to be set to `true` to capture crashes and reliably send telemetry events to the agent. While set to `false`, telemetry events for crashes would work very rarely. When set to `true`, this would become reliably consistent. The value for `wait_for_receiver` is [unset in `libdatadog`](https://github.com/DataDog/libdatadog/blob/16528ffee456f7af5fe9ad80a6294fb5dcd38918/crashtracker/src/shared/configuration.rs#L28), which means it is set to `false` by default. This default needs to be updated on the `libdatadog` end. However, in order to unblock crashtracking functionality for `dd-trace-py`, we are also enabling this to be configured on the `dd-trace-py` side as well. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
…ed via env var (#10233) ### Change Overview This PR enables the `wait_for_receiver` field to be set via `DD_CRASHTRACKING_WAIT_FOR_RECEIVER` environment variable. If unset, the default is `true`. ### Motivation [System-tests for crashtracking](DataDog/system-tests#2884) exposed that the Python crashtracker needs the `wait_for_receiver` field to be set to `true` to capture crashes and reliably send telemetry events to the agent. While set to `false`, telemetry events for crashes would work very rarely. When set to `true`, this would become reliably consistent. The value for `wait_for_receiver` is [unset in `libdatadog`](https://github.com/DataDog/libdatadog/blob/16528ffee456f7af5fe9ad80a6294fb5dcd38918/crashtracker/src/shared/configuration.rs#L28), which means it is set to `false` by default. This default needs to be updated on the `libdatadog` end. However, in order to unblock crashtracking functionality for `dd-trace-py`, we are also enabling this to be configured on the `dd-trace-py` side as well. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) (cherry picked from commit bb82a8e)
…ed via env var (#10233) ### Change Overview This PR enables the `wait_for_receiver` field to be set via `DD_CRASHTRACKING_WAIT_FOR_RECEIVER` environment variable. If unset, the default is `true`. ### Motivation [System-tests for crashtracking](DataDog/system-tests#2884) exposed that the Python crashtracker needs the `wait_for_receiver` field to be set to `true` to capture crashes and reliably send telemetry events to the agent. While set to `false`, telemetry events for crashes would work very rarely. When set to `true`, this would become reliably consistent. The value for `wait_for_receiver` is [unset in `libdatadog`](https://github.com/DataDog/libdatadog/blob/16528ffee456f7af5fe9ad80a6294fb5dcd38918/crashtracker/src/shared/configuration.rs#L28), which means it is set to `false` by default. This default needs to be updated on the `libdatadog` end. However, in order to unblock crashtracking functionality for `dd-trace-py`, we are also enabling this to be configured on the `dd-trace-py` side as well. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) (cherry picked from commit bb82a8e)
…ed via env var [backport 2.11] (#10380) Backport bb82a8e from #10233 to 2.11. ### Change Overview This PR enables the `wait_for_receiver` field to be set via `DD_CRASHTRACKING_WAIT_FOR_RECEIVER` environment variable. If unset, the default is `true`. ### Motivation [System-tests for crashtracking](DataDog/system-tests#2884) exposed that the Python crashtracker needs the `wait_for_receiver` field to be set to `true` to capture crashes and reliably send telemetry events to the agent. While set to `false`, telemetry events for crashes would work very rarely. When set to `true`, this would become reliably consistent. The value for `wait_for_receiver` is [unset in `libdatadog`](https://github.com/DataDog/libdatadog/blob/16528ffee456f7af5fe9ad80a6294fb5dcd38918/crashtracker/src/shared/configuration.rs#L28), which means it is set to `false` by default. This default needs to be updated on the `libdatadog` end. However, in order to unblock crashtracking functionality for `dd-trace-py`, we are also enabling this to be configured on the `dd-trace-py` side as well. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) Co-authored-by: erikayasuda <153395705+erikayasuda@users.noreply.github.com>
…ed via env var [backport 2.12] (#10381) Backport bb82a8e from #10233 to 2.12. ### Change Overview This PR enables the `wait_for_receiver` field to be set via `DD_CRASHTRACKING_WAIT_FOR_RECEIVER` environment variable. If unset, the default is `true`. ### Motivation [System-tests for crashtracking](DataDog/system-tests#2884) exposed that the Python crashtracker needs the `wait_for_receiver` field to be set to `true` to capture crashes and reliably send telemetry events to the agent. While set to `false`, telemetry events for crashes would work very rarely. When set to `true`, this would become reliably consistent. The value for `wait_for_receiver` is [unset in `libdatadog`](https://github.com/DataDog/libdatadog/blob/16528ffee456f7af5fe9ad80a6294fb5dcd38918/crashtracker/src/shared/configuration.rs#L28), which means it is set to `false` by default. This default needs to be updated on the `libdatadog` end. However, in order to unblock crashtracking functionality for `dd-trace-py`, we are also enabling this to be configured on the `dd-trace-py` side as well. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) Co-authored-by: erikayasuda <153395705+erikayasuda@users.noreply.github.com>
Motivation
Validates the behavior of crashtracking across tracers.
Changes
test_agent
to trigger a crash. It does so by calling the/trace/crash
HTTP endpoint (needs to be implemented for each language)Workflow
codeowners
file quickly.🚀 Once your PR is reviewed, you can merge it!
🛟 #apm-shared-testing 🛟
Reviewer checklist
[<language>]
, double-check that only<language>
is impacted by the changebuild-XXX-image
label is present