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

dslx: introduce function to easily measure endpoints #2618

Closed
bassosimone opened this issue Oct 25, 2023 · 0 comments · Fixed by ooni/probe-cli#1388
Closed

dslx: introduce function to easily measure endpoints #2618

bassosimone opened this issue Oct 25, 2023 · 0 comments · Fixed by ooni/probe-cli#1388
Assignees
Labels
enhancement New feature request or improvement to existing functionality funder/drl2022-2024 interrupt ooni/probe-engine priority/medium Normal priority issue

Comments

@bassosimone
Copy link
Contributor

Measuring endpoints is still a bit difficult to do with dslx. Let us introduce a function to measure endpoints that allows us to write simple code to perform this task. Ideally, we would like to be able to "pipe" the results of the DNS lookup step(s) directly into such a function to obtain endpoint measurements.

The overall objective here is to cleanup and review dslx, then start using it in production and rewrite experiments using it. In turn, by doing that, we'll enable collecting better throttling metrics for experiments.

@bassosimone bassosimone self-assigned this Oct 25, 2023
@bassosimone bassosimone added enhancement New feature request or improvement to existing functionality priority/medium Normal priority issue interrupt ooni/probe-engine funder/drl2022-2024 labels Oct 25, 2023
@bassosimone bassosimone changed the title dslx: introduce function to measure endpoints dslx: introduce function to easily measure endpoints Oct 25, 2023
bassosimone added a commit to ooni/probe-cli that referenced this issue Oct 25, 2023
This diff introduces MeasureResolvedAddresses and other ancillary
functions that allow us to express measuring endpoints in a very simple
way and with less code than with previous dslx code.

As a result, we can deprecate a bunch of dslx functions (we will
actually clean them up at a later time).

While there, make StreamList simpler and more efficient: we can stream
w/o creating a goroutine. It suffices to create a sufficiently buffered
channel and fill it, and we can do all the work in the current
goroutine.

While there, fix a bug where QUICHandshake was mistakenly using the host
network rather than the measuring network to create UDP listening
sockets, which, well..., generated lots of confusion for me 😅 🤦.

While there, make sure the netemx.MustNewScenario function creates
HTTP/3 listeners for DNS servers. Previously, we did not create such
listeners, which however is necessary because we very often use DoH3.

While there, make sure we have issues for upcoming work.

Closes ooni/probe#2618.
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
This diff introduces MeasureResolvedAddresses and other ancillary
functions that allow us to express measuring endpoints in a very simple
way and with less code than with previous dslx code.

As a result, we can deprecate a bunch of dslx functions (we will
actually clean them up at a later time).

While there, make StreamList simpler and more efficient: we can stream
w/o creating a goroutine. It suffices to create a sufficiently buffered
channel and fill it, and we can do all the work in the current
goroutine.

While there, fix a bug where QUICHandshake was mistakenly using the host
network rather than the measuring network to create UDP listening
sockets, which, well..., generated lots of confusion for me 😅 🤦.

While there, make sure the netemx.MustNewScenario function creates
HTTP/3 listeners for DNS servers. Previously, we did not create such
listeners, which however is necessary because we very often use DoH3.

While there, make sure we have issues for upcoming work.

Closes ooni/probe#2618.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature request or improvement to existing functionality funder/drl2022-2024 interrupt ooni/probe-engine priority/medium Normal priority issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant