Skip to content

Add CronJobs for running broker-imc regularly#1969

Merged
knative-prow-robot merged 3 commits into
knative:masterfrom
grantr:perf-config-variants-3
Sep 27, 2019
Merged

Add CronJobs for running broker-imc regularly#1969
knative-prow-robot merged 3 commits into
knative:masterfrom
grantr:perf-config-variants-3

Conversation

@grantr
Copy link
Copy Markdown
Contributor

@grantr grantr commented Sep 26, 2019

Redo of #1863. This PR drops the single variant, leaving that config in the parent of continuous.

Run ko apply -f test/performance/broker-imc/continuous/ to create CronJobs that will run the broker-imc test every 15 minutes.

We expect CI to run one benchmark per cluster and have access to mako credentials, so the continuous config runs in default namespace and uses the real mako sidecar instead of the stub.

Fixes #1700.

Proposed Changes

  • Add continuous config for the broker-imc performance test.
  • The perf cluster creation tools now expect performance testing directories to have a continuous directory containing the yaml config to apply to the perf cluster.

/area performance
/project Perf/Measurement To do

ko apply -f continuous/ to create CronJobs that will run the
broker-imc test every 15 minutes.

The continuous config runs in default namespace because we expect prod
to run one benchmark per cluster.
@knative-prow-robot knative-prow-robot added area/performance size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Sep 26, 2019
@googlebot googlebot added the cla: yes Indicates the PR's author has signed the CLA. label Sep 26, 2019
@knative-prow-robot knative-prow-robot added the area/test-and-release Test infrastructure, tests or release label Sep 26, 2019
@knative-prow-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: grantr

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@knative-prow-robot knative-prow-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 26, 2019
@grantr
Copy link
Copy Markdown
Contributor Author

grantr commented Sep 26, 2019

Caveat: we can only use this to run the broker-imc perf test right now. mako.Setup only allows us to use one mako config in the performance image, and for now that's the "Broker Latency and Throughput" config. We need to do some refactoring of either mako.Setup or the shared performance image to fix that.

The 3000rps pacer takes slightly longer than 9 minutes
@@ -0,0 +1,182 @@
# Copyright 2019 The Knative Authors
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this setup file the same as the existing one under broker-imc?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here, @grantr why did you duplicated configs?

@chizhg
Copy link
Copy Markdown
Contributor

chizhg commented Sep 27, 2019

Caveat: we can only use this to run the broker-imc perf test right now. mako.Setup only allows us to use one mako config in the performance image, and for now that's the "Broker Latency and Throughput" config. We need to do some refactoring of either mako.Setup or the shared performance image to fix that.

Hmm, it seems I missed something, why are the mako config files under the shared test image, instead of the benchmark folder?

@slinkydeveloper
Copy link
Copy Markdown
Contributor

Caveat: we can only use this to run the broker-imc perf test right now. mako.Setup only allows us to use one mako config in the performance image, and for now that's the "Broker Latency and Throughput" config. We need to do some refactoring of either mako.Setup or the shared performance image to fix that.

This could be solved by splitting the aggregator and sender-receiver in two different images?

kind: Broker
metadata:
name: imc
namespace: default
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chizhg @slinkydeveloper well, it DIFFs in name/namespace.

But I agree, it's good to potentially reuse "common" setup yaml files...

ref:
apiVersion: v1
kind: Service
name: broker-imc-receiver
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

export TEST_ROOT_PATH="$GOPATH/src/knative.dev/eventing/test/performance"
export KO_DOCKER_REPO="gcr.io/knative-eventing-performance"
export TEST_CONFIG_VARIANT="continuous"
export TEST_NAMESPACE="default"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how about perf-eventing ?

@matzew
Copy link
Copy Markdown
Member

matzew commented Sep 27, 2019

/hold

perhaps let's see to not duplicate configs?

@knative-prow-robot knative-prow-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 27, 2019
@grantr
Copy link
Copy Markdown
Contributor Author

grantr commented Sep 27, 2019

Hmm, it seems I missed something, why are the mako config files under the shared test image, instead of the benchmark folder?

Currently there is no benchmark-specific main. All the benchmark execution code is in the shared test image. Due to the way mako.Setup works, the mako config files must be in the kodata for that image. This is a known issue that will require either mako.Setup to change or the eventing test image(s) to change (knative/pkg#721). @grac3gao is actively looking into this.

For now, this PR puts config files under the shared test image to allow Mako to run one test instead of zero tests.

@grantr
Copy link
Copy Markdown
Contributor Author

grantr commented Sep 27, 2019

perhaps let's see to not duplicate configs?

I'm fine with making continuous/broker-imc-setup.yaml a symlink to ./broker-imc-setup.yaml.

We should consider this: continuous/broker-imc.yaml is tightly coupled to continuous/broker-imc-setup.yaml, but ./broker-imc.yaml file has different content than continuous/broker-imc.yaml. If we have a shared setup file, and someone makes a change to that shared file and ./broker-imc.yaml, we need to make sure they also update continuous/broker-imc.yaml. So the developer must understand the coupling between the configurations and update the continuous config on every change to the shared setup config.

@matzew
Copy link
Copy Markdown
Member

matzew commented Sep 27, 2019 via email

@knative-prow-robot knative-prow-robot added the lgtm Indicates that a PR is ready to be merged. label Sep 27, 2019
@grantr
Copy link
Copy Markdown
Contributor Author

grantr commented Sep 27, 2019

Thanks @matzew! I expect all of this to be refactored several times before we're happy with it, but this PR at least makes some progress.

/hold cancel

@knative-prow-robot knative-prow-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 27, 2019
@grantr
Copy link
Copy Markdown
Contributor Author

grantr commented Sep 27, 2019

@knative-prow-robot knative-prow-robot merged commit 95edd04 into knative:master Sep 27, 2019
@grantr grantr deleted the perf-config-variants-3 branch September 27, 2019 23:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/performance area/test-and-release Test infrastructure, tests or release cla: yes Indicates the PR's author has signed the CLA. lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Set up continuous perf testing environment

7 participants