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

chore(crashtracking): enable wait_for_receiver field to be configured via env var [backport 2.11] #10380

Merged
merged 1 commit into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ddtrace/internal/core/crashtracking.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ def start() -> bool:
crashtracker.set_runtime_id(get_runtime_id())
crashtracker.set_library_version(version.get_version())
crashtracker.set_alt_stack(bool(crashtracker_config.alt_stack))
crashtracker.set_wait_for_receiver(bool(crashtracker_config.wait_for_receiver))
if crashtracker_config.stacktrace_resolver == "fast":
crashtracker.set_resolve_frames_fast()
elif crashtracker_config.stacktrace_resolver == "full":
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ def set_library_version(profiler_version: StringType) -> None: ...
def set_stdout_filename(filename: StringType) -> None: ...
def set_stderr_filename(filename: StringType) -> None: ...
def set_alt_stack(alt_stack: bool) -> None: ...
def set_wait_for_receiver(wait: bool) -> None: ...
def set_resolve_frames_disable() -> None: ...
def set_resolve_frames_fast() -> None: ...
def set_resolve_frames_full() -> None: ...
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ cdef extern from "crashtracker_interface.hpp":
void crashtracker_set_stdout_filename(string_view filename)
void crashtracker_set_stderr_filename(string_view filename)
void crashtracker_set_alt_stack(bint alt_stack)
void crashtracker_set_wait_for_receiver(bint wait)
void crashtracker_set_resolve_frames_disable()
void crashtracker_set_resolve_frames_fast()
void crashtracker_set_resolve_frames_full()
Expand Down Expand Up @@ -98,6 +99,10 @@ def set_alt_stack(alt_stack: bool) -> None:
crashtracker_set_alt_stack(alt_stack)


def set_wait_for_receiver(wait: bool) -> None:
crashtracker_set_wait_for_receiver(wait)


def set_resolve_frames_disable() -> None:
crashtracker_set_resolve_frames_disable()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class Crashtracker
{
private:
bool create_alt_stack = false;
bool wait_for_receiver = true;
std::optional<std::string> stderr_filename{ std::nullopt };
std::optional<std::string> stdout_filename{ std::nullopt };
std::string path_to_receiver_binary;
Expand Down Expand Up @@ -69,6 +70,7 @@ class Crashtracker
void set_library_version(std::string_view _library_version);
void set_url(std::string_view _url);
void set_tag(std::string_view _key, std::string_view _value);
void set_wait_for_receiver(bool _wait);

void set_create_alt_stack(bool _create_alt_stack);
void set_stderr_filename(std::string_view _stderr_filename);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ extern "C"
void crashtracker_set_stdout_filename(std::string_view filename);
void crashtracker_set_stderr_filename(std::string_view filename);
void crashtracker_set_alt_stack(bool alt_stack);
void crashtracker_set_wait_for_receiver(bool wait);
void crashtracker_set_resolve_frames_disable();
void crashtracker_set_resolve_frames_fast();
void crashtracker_set_resolve_frames_full();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ Datadog::Crashtracker::set_create_alt_stack(bool _create_alt_stack)
create_alt_stack = _create_alt_stack;
}

void
Datadog::Crashtracker::set_wait_for_receiver(bool _wait)
{
wait_for_receiver = _wait;
}

void
Datadog::Crashtracker::set_env(std::string_view _env)
{
Expand Down Expand Up @@ -122,7 +128,7 @@ Datadog::Crashtracker::get_config()
config.endpoint = ddog_prof_Endpoint_agent(to_slice(url));
config.resolve_frames = resolve_frames;
config.timeout_secs = timeout_secs;

config.wait_for_receiver = wait_for_receiver;
return config;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,12 @@ crashtracker_set_alt_stack(bool alt_stack) // cppcheck-suppress unusedFunction
crashtracker.set_create_alt_stack(alt_stack);
}

void
crashtracker_set_wait_for_receiver(bool wait) // cppcheck-suppress unusedFunction
{
crashtracker.set_wait_for_receiver(wait);
}

void
crashtracker_set_resolve_frames_disable() // cppcheck-suppress unusedFunction
{
Expand Down
8 changes: 8 additions & 0 deletions ddtrace/settings/crashtracker.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,5 +101,13 @@ class CrashtrackingConfig(En):
"This is generally useful only for dd-trace-py development.",
)

wait_for_receiver = En.v(
bool,
"wait_for_receiver",
default=True,
help_type="Boolean",
help="Whether to wait for the crashtracking receiver",
)


config = CrashtrackingConfig()
Loading