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

Feature: add retries to ICMP prober #896

Merged
merged 1 commit into from
Sep 19, 2024
Merged

Feature: add retries to ICMP prober #896

merged 1 commit into from
Sep 19, 2024

Conversation

mem
Copy link
Contributor

@mem mem commented Sep 19, 2024

Add a retry mechanism to the ICMP prober. If the packet count is not set, use 3 packets instead of 1, and require that at least 1 of them gets a response. This should cover most reasonable scenarios where retries are needed.

Note that this will send out 3 packets regardless of whether 1 is already received, so this has an impact on the probe_duration_seconds metric (because the probe takes longer to run).

If the time for an individual packet is important, use sum(probe_icmp_duration_seconds) instead. That metric is split by phases, and the rtt phase is the average round-trip-time for all the received packets. The other two phases, setup and resolve only run once.

The resolve part of this also retries, in the event that the DNS server fails to produce a response and there's an indication that the request should be retried (e.g. if the response is "not found", that is not retried).

Add a retry mechanism to the ICMP prober. If the packet count is not
set, use 3 packets instead of 1, and require that at least 1 of them
gets a response. This should cover most reasonable scenarios where
retries are needed.

Note that this will send out 3 packets regardless of whether 1 is
already received, so this has an impact on the probe_duration_seconds
metric (because the probe takes longer to run).

If the time for an individual packet is important, use
`sum(probe_icmp_duration_seconds)` instead. That metric is split by
phases, and the `rtt` phase is the average round-trip-time for all the
received packets. The other two phases, `setup` and `resolve` only run
once.

The resolve part of this also retries, in the event that the DNS server
fails to produce a response and there's an indication that the request
should be retried (e.g. if the response is "not found", that is not
retried).

Signed-off-by: Marcelo E. Magallon <[email protected]>
@mem mem requested a review from a team as a code owner September 19, 2024 03:04
@mem mem merged commit 49cd928 into main Sep 19, 2024
2 checks passed
@mem mem deleted the mem/add-icmp-retries branch September 19, 2024 18:16
mem added a commit that referenced this pull request Sep 19, 2024
* Feature: add retries to ICMP prober (#896)
* Fix: allow probers to provide a duration value (#898)

Signed-off-by: Marcelo E. Magallon <[email protected]>
@mem mem mentioned this pull request Sep 19, 2024
mem added a commit that referenced this pull request Sep 19, 2024
* Feature: add retries to ICMP prober (#896)
* Fix: allow probers to provide a duration value (#898)

Signed-off-by: Marcelo E. Magallon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant