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

cmd: add roachprod-microbench command #91184

Merged
merged 1 commit into from
Feb 10, 2023

Conversation

herkolategan
Copy link
Collaborator

@herkolategan herkolategan commented Nov 3, 2022

cmd: add roachprod-microbench command

Add command roachprod-microbench to the cmd package. This command depends on the
portable test binaries outputted from the dev test-binaries command.

In order to run multiple microbenchmark iterations with an acceptable overall
duration the roachprod-microbench command distributes microbenchmark executions
at a per microbenchmark function level to a roachprod cluster.

The command also handles the orchestration of copying and extracting the
portable binaries to the cluster. Failures and results are logged for each
microbenchmark. On completion a report is generated for further analysis.
Results from microbenchmarks are also sanitized to remove any noise in the log
output.

Additionally, comparisons to previous runs can be made. Google cloud storage can
be used to store the results of previous runs. The internal Go tooling is used
to do the comparison and output a Google Sheet to Google Drive for further
inspection.

Resolves: #90958
See also: #90837

Epic: CRDB-20903

Release note: None

@herkolategan herkolategan requested review from a team, srosenberg and renatolabs and removed request for a team November 3, 2022 12:29
@cockroach-teamcity
Copy link
Member

This change is Reviewable

@herkolategan herkolategan force-pushed the hbl/cmd-roachprod-bench branch 2 times, most recently from e9b9e39 to 4b3137e Compare November 3, 2022 14:49
@herkolategan herkolategan requested review from smg260 and removed request for srosenberg November 7, 2022 20:04
@herkolategan herkolategan force-pushed the hbl/cmd-roachprod-bench branch from 4b3137e to b2992bb Compare November 28, 2022 12:08
@herkolategan herkolategan deleted the hbl/cmd-roachprod-bench branch November 28, 2022 12:23
@herkolategan herkolategan restored the hbl/cmd-roachprod-bench branch November 28, 2022 12:40
@herkolategan herkolategan reopened this Nov 28, 2022
@herkolategan herkolategan force-pushed the hbl/cmd-roachprod-bench branch 16 times, most recently from b09da92 to d9d1158 Compare November 30, 2022 11:16
@herkolategan herkolategan force-pushed the hbl/cmd-roachprod-bench branch from 48878d8 to 93281c8 Compare February 9, 2023 10:59
Add command roachprod-microbench to the cmd package. This command depends on the
portable test binaries outputted from the dev test-binaries command.

In order to run multiple microbenchmark iterations with an acceptable overall
duration the roachprod-microbench command distributes microbenchmark executions
at a per microbenchmark function level to a roachprod cluster.

The command also handles the orchestration of copying and extracting the
portable binaries to the cluster. Failures and results are logged for each
microbenchmark. On completion a report is generated for further analysis.
Results from microbenchmarks are also sanitized to remove any noise in the log
output.

Additionally, comparisons to previous runs can be made. Google cloud storage can
be used to store the results of previous runs. The internal Go tooling is used
to do the comparison and output a Google Sheet to Google Drive for further
inspection.

Resolves: cockroachdb#90958
See also: cockroachdb#90837

Epic: CRDB-20903

Release note: None
@herkolategan herkolategan force-pushed the hbl/cmd-roachprod-bench branch from 93281c8 to 989a48c Compare February 9, 2023 13:26
@herkolategan
Copy link
Collaborator Author

bors r=renatolabs

@craig
Copy link
Contributor

craig bot commented Feb 10, 2023

Build succeeded:

@craig craig bot merged commit 9da3001 into cockroachdb:master Feb 10, 2023
herkolategan added a commit to herkolategan/cockroach that referenced this pull request Apr 19, 2023
Add a new weekly teamcity build script that utilises the `dev test-binaries`
and the `roachprod-microbench` command. The script can be used to store a
microbenchmarks checkpoint for a given `git` revision to a bucket in gcs, by
specifying a publish path. A `roachprod` cluster is created by the script, as
specified by environment variables. The clean-up is managed by TeamCity.

Alternatively two binaries can be compared by supplying the related comparison
binaries environment variables. The compare directory should be omitted in this
case. The script requires a gcs path to download the comparison binaries from.
The running time will be considerably longer, but there will be less variance in
the results.

Subsequent runs can then be made with the same script to compare against a
previous checkpoint, by supplying a compare path. The script takes numerous
environment variables to configure the microbenchmarks cluster and arguments.
These can be tweaked to configure different run variations and packages to
target.

Resolves: cockroachdb#93893
See also: cockroachdb#90837, cockroachdb#91184

Epic: CRDB-20903

Release note: None
herkolategan added a commit to herkolategan/cockroach that referenced this pull request May 9, 2023
Add a new weekly teamcity build script that utilises the `dev test-binaries`
and the `roachprod-microbench` command. The script can be used to store a
microbenchmarks checkpoint for a given `git` revision to a bucket in gcs, by
specifying a publish path. A `roachprod` cluster is created by the script, as
specified by environment variables. The clean-up is managed by TeamCity.

Alternatively two binaries can be compared by supplying the related comparison
binaries environment variables. The compare directory should be omitted in this
case. The script requires a gcs path to download the comparison binaries from.
The running time will be considerably longer, but there will be less variance in
the results.

Subsequent runs can then be made with the same script to compare against a
previous checkpoint, by supplying a compare path. The script takes numerous
environment variables to configure the microbenchmarks cluster and arguments.
These can be tweaked to configure different run variations and packages to
target.

Resolves: cockroachdb#93893
See also: cockroachdb#90837, cockroachdb#91184

Epic: CRDB-20903

Release note: None
herkolategan added a commit to herkolategan/cockroach that referenced this pull request May 9, 2023
Add a new weekly teamcity build script that utilises the `dev test-binaries`
and the `roachprod-microbench` command. The script can be used to store a
microbenchmarks checkpoint for a given `git` revision to a bucket in gcs, by
specifying a publish path. A `roachprod` cluster is created by the script, as
specified by environment variables. The clean-up is managed by TeamCity.

Alternatively two binaries can be compared by supplying the related comparison
binaries environment variables. The compare directory should be omitted in this
case. The script requires a gcs path to download the comparison binaries from.
The running time will be considerably longer, but there will be less variance in
the results.

Subsequent runs can then be made with the same script to compare against a
previous checkpoint, by supplying a compare path. The script takes numerous
environment variables to configure the microbenchmarks cluster and arguments.
These can be tweaked to configure different run variations and packages to
target.

Resolves: cockroachdb#93893
See also: cockroachdb#90837, cockroachdb#91184

Epic: CRDB-20903

Release note: None
herkolategan added a commit to herkolategan/cockroach that referenced this pull request May 9, 2023
Add a new weekly teamcity build script that utilises the `dev test-binaries`
and the `roachprod-microbench` command. The script can be used to store a
microbenchmarks checkpoint for a given `git` revision to a bucket in gcs, by
specifying a publish path. A `roachprod` cluster is created by the script, as
specified by environment variables. The clean-up is managed by TeamCity.

Alternatively two binaries can be compared by supplying the related comparison
binaries environment variables. The compare directory should be omitted in this
case. The script requires a gcs path to download the comparison binaries from.
The running time will be considerably longer, but there will be less variance in
the results.

Subsequent runs can then be made with the same script to compare against a
previous checkpoint, by supplying a compare path. The script takes numerous
environment variables to configure the microbenchmarks cluster and arguments.
These can be tweaked to configure different run variations and packages to
target.

Resolves: cockroachdb#93893
See also: cockroachdb#90837, cockroachdb#91184

Epic: CRDB-20903

Release note: None
herkolategan added a commit to herkolategan/cockroach that referenced this pull request May 9, 2023
Add a new weekly teamcity build script that utilises the `dev test-binaries`
and the `roachprod-microbench` command. The script can be used to store a
microbenchmarks checkpoint for a given `git` revision to a bucket in gcs, by
specifying a publish path. A `roachprod` cluster is created by the script, as
specified by environment variables. The clean-up is managed by TeamCity.

Alternatively two binaries can be compared by supplying the related comparison
binaries environment variables. The compare directory should be omitted in this
case. The script requires a gcs path to download the comparison binaries from.
The running time will be considerably longer, but there will be less variance in
the results.

Subsequent runs can then be made with the same script to compare against a
previous checkpoint, by supplying a compare path. The script takes numerous
environment variables to configure the microbenchmarks cluster and arguments.
These can be tweaked to configure different run variations and packages to
target.

Resolves: cockroachdb#93893
See also: cockroachdb#90837, cockroachdb#91184

Epic: CRDB-20903

Release note: None
herkolategan added a commit to herkolategan/cockroach that referenced this pull request May 9, 2023
Add a new weekly teamcity build script that utilises the `dev test-binaries`
and the `roachprod-microbench` command. The script can be used to store a
microbenchmarks checkpoint for a given `git` revision to a bucket in gcs, by
specifying a publish path. A `roachprod` cluster is created by the script, as
specified by environment variables. The clean-up is managed by TeamCity.

Alternatively two binaries can be compared by supplying the related comparison
binaries environment variables. The compare directory should be omitted in this
case. The script requires a gcs path to download the comparison binaries from.
The running time will be considerably longer, but there will be less variance in
the results.

Subsequent runs can then be made with the same script to compare against a
previous checkpoint, by supplying a compare path. The script takes numerous
environment variables to configure the microbenchmarks cluster and arguments.
These can be tweaked to configure different run variations and packages to
target.

Resolves: cockroachdb#93893
See also: cockroachdb#90837, cockroachdb#91184

Epic: CRDB-20903

Release note: None
craig bot pushed a commit that referenced this pull request May 11, 2023
96723: build: add microbenchmark script for roachprod-microbench r=srosenberg a=herkolategan

Add a new nightlies teamcity build script that utilises the `dev test-binaries` and the `roachprod-microbench` command. The script can be used to store a microbenchmarks checkpoint for a given `git` revision to a bucket in gcs, by specifying a publish path. A `roachprod` cluster is created by the script, as specified by environment variables. The clean-up is managed by TeamCity.

Alternatively two binaries can be compared by supplying the related comparison binaries environment variables. This compare directory should be omitted in this case. The script requires a gcs path to download the comparison binaries from. The running time will be considerably longer, but there will be less variance in the results.

Subsequent runs can then be made with the same script to compare against a previous checkpoint, by supplying a compare path. The script takes numerous environment variables to configure the microbenchmarks cluster and arguments. These can be tweaked to configure different run variations and packages to target.

Resolves: #93893
See also: #90837, #91184

Epic: CRDB-20903

Release note: None

Co-authored-by: Herko Lategan <[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.

cmd: add roachprod-microbench
4 participants