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

[single-machine-performance] file_to_blackhole: change optimization goal to egress throughput #15631

Conversation

goxberry
Copy link
Contributor

What does this PR do?

This pull request changes the optimization goal of the file_to_blackhole experiment to egress throughput by adding an experiment.yaml file to that experiment. In addition, this pull request updates the Regression Detection README to include information on how to set an optimization goal for each experiment.

Motivation

Measuring egress throughput for the file_to_blackhole experiment is of more interest than measuring ingress throughput; the latter is the current optimization goal for that experiment.

Additional Notes

These changes follow upon recent work on single-machine-performance to enables users to set a single optimization goal per experiment instead of a single optimization goal for all experiments. These changes also follow up on PR #14528.

For each experiment, an experiment.yaml file is optional. If that file is absent for an experiment, the optimization goal for that experiment defaults to ingress throughput. As illustrated in this pull request, the optimization goal for an experiment can be changed for an experiment by placing an experiment.yaml file at the root of the directory tree for that experiment, e.g., for the file_to_blackhole experiment, at test/regression/cases/file_to_blackhole/experiment.yaml.

The contents of an example experiment.yaml file are

optimization_goal: egress_throughput

The only other value of optimization_goal currently supported is ingress_throughput.

Backend changes required to support experiment.yaml files have already been deployed, so in theory, once this PR is merged, file_to_blackhole results for egress throughput should replace the ingress throughput results currently emitted.

Possible Drawbacks / Trade-offs

This pull request trades off additional complexity -- an optional additional file per experiment -- for flexibility in defining an optimization goal for each experiment, which supports more use cases.

Describe how to test/QA your changes

Changes have been dogfed using our dogfood project, so hopefully, this change will work without any disruptions. If it doesn't, reach out and we'd be glad to help.

Reviewer's Checklist

  • If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
  • Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
  • A release note has been added or the changelog/no-changelog label has been applied.
  • Changed code has automated tests for its functionality.
  • Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
  • At least one team/.. label has been applied, indicating the team(s) that should QA this change.
  • If applicable, docs team has been notified or an issue has been opened on the documentation repo.
  • If applicable, the need-change/operator and need-change/helm labels have been applied.
  • If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
  • If applicable, the config template has been updated.

This pull request intends to be a follow-up to PR #14528. Currently,
regression detector jobs for the `file_to_blackhole` experiment use
ingress throughput as an optimization goal. Recent work on
single-machine-performance now enables users to set a single
optimization goal per experiment instead of a single optimization goal
for all experiments.

This pull request changes the optimization goal of the
`file_to_blackhole` experiment to egress throughput, which is of more
interest than ingress throughput for that experiment. In addition,
this commit updates the Regression Detection README to include
information on how to set an optimization goal for each experiment.

If an `experiment.yaml` file is absent for an experiment, the
optimization goal for that experiment defaults to ingress
throughput. This value can be changed for an experiment by placing an
`experiment.yaml` file at the root of the directory tree for a given
experiment, e.g., for the `file_to_blackhole` experiment, at
`test/regression/cases/file_to_blackhole/experiment.yaml`.

The contents of an example `experiment.yaml` file are

```yaml
optimization_goal: egress_throughput
```

As the default, `ingress_throughput` is currently the only other
supported value of `optimization_goal`.

Signed-off-by: Geoffrey M. Oxberry <[email protected]>
@goxberry goxberry added changelog/no-changelog [deprecated] team/agent-platform [deprecated] qa/skip-qa - use other qa/ labels [DEPRECATED] Please use qa/done or qa/no-code-change to skip creating a QA card labels Feb 16, 2023
@goxberry goxberry added this to the Triage milestone Feb 16, 2023
@goxberry goxberry requested a review from a team as a code owner February 16, 2023 04:02
@bits-bot
Copy link
Collaborator

bits-bot commented Feb 16, 2023

CLA assistant check
All committers have signed the CLA.

To enable the `egress_throughput` change to `file_to_blackhole`, the
versions of `smp` and `lading` must be updated. Actually, another
`smp` release is needed and the `smp` version used by `datadog-agent`
must be updated to *that* version, but the version updates in this
commit are the most recent versions available at the moment.

Signed-off-by: Geoffrey M. Oxberry <[email protected]>
The `--target-inherit-environment` flag in `smp` has been removed
because targets now inherit environment variables by default, as of
`smp` 0.7.0. This commit removes that obsolete flag from `smp` calls
in the Agent CI configuration.

Signed-off-by: Geoffrey M. Oxberry <[email protected]>
To enable per-experiment optimization goal support, the version of
`smp` used by Agent must be version 0.7.1 or later. This commit
updates the `smp` version used by Agent's CI pipeline to version 0.7.1
from 0.7.0 for that support.

Signed-off-by: Geoffrey M. Oxberry <[email protected]>
@goxberry goxberry merged commit ef47fb8 into main Feb 17, 2023
@goxberry goxberry deleted the goxberry/set-file_to_blackhole-regression-optimization_goal-to-egress_throughput branch February 17, 2023 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog/no-changelog [deprecated] qa/skip-qa - use other qa/ labels [DEPRECATED] Please use qa/done or qa/no-code-change to skip creating a QA card [deprecated] team/agent-platform
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants