-
Notifications
You must be signed in to change notification settings - Fork 542
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
watch-list: define a job type for the perf-dashboard #2276
watch-list: define a job type for the perf-dashboard #2276
Conversation
perfdash/config.go
Outdated
watchListDescriptions = TestDescriptions{ | ||
"E2E": { | ||
"LoadResources": []TestDescription{{ | ||
Name: "load", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be watch-list
I think? Based on file in artifacts ResourceUsageSummary_watch-list_2023-05-24T08:35:20Z.json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh, okay, thx
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would also add something that would allow me to show latencies
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
perhaps
"LoadResponsiveness": []TestDescription{{
Name: "watch-list",
OutputFilePrefix: "APIResponsiveness",
Parser: parsePerfData,
}},
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
or
"LoadResponsiveness_PrometheusSimple": []TestDescription{{
Name: "watch-list",
OutputFilePrefix: "APIResponsivenessPrometheus_simple",
Parser: parsePerfData,
}},
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you want to you can run perfdash locally to play with and find all the metrics that you need. To do that modify perfdash/Makefile by replacing githubConfigDir with https://api.github.com/repos/kubernetes/test-infra/contents/config/jobs/kubernetes/sig-scalability
and replace builds with some reasonable number like 2 so you don't have to wait minutes for perdash to scrape all the data. After that just run make run
from perfdash directory and you should have perfdash hosted at localhost:8080
@@ -623,13 +623,24 @@ var ( | |||
}, | |||
} | |||
|
|||
watchListDescriptions = TestDescriptions{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we even need to introduce this? Why can't we use the existing performance?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
honesty i don't understand why it doesn't work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the tests use the performance
type - https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-scalability/sig-scalability-experimental-periodic-jobs.yaml#L198 atm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I started a slack thread if you want to chime in - https://kubernetes.slack.com/archives/C09QZTRH7/p1684911329191689
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It doesn't work due to the fact that perfdash has predefined file names here: https://github.com/kubernetes/perf-tests/pull/2276/files#diff-17340b391bfccaca6d6cf3409b032676038adfa8dead9fb15f65557a99bd098eR82
and watch-list/config.yaml
has test name watch-list
and not load
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is... weird.
Can we then instead parametrized the map and reuse it? (i.e. make load/watch-list a parameter of function returning this map)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we want to keep the new type then I don't see value in making the map reusable. IMO it would make the code less readable.
I would appreciate if the whole mechanism could be more generic. Ideally if add a new job would not require defining new types.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would appreciate if the whole mechanism could be more generic. Ideally if add a new job would not require defining new types.
I would like that too, but I don't want to overinvest in perfdash...
a separate job type will allow to display metrics collected during watchlist per tests like https://perf-dash.k8s.io/#/?jobname=gce-100Nodes-master&metriccategoryname=E2E&metricname=LoadResources&PodName=kube-apiserver-e2e-big-master%2Fkube-apiserver&Resource=memory
3b4ec43
to
7fbbde3
Compare
/lgtm |
OK, let's merge it to unblock stuff. And we can improve in a follow up. /lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Argh4k, p0lyn0mial, wojtek-t The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
thanks, i have also opened kubernetes/test-infra#29604 |
What type of PR is this?
a separate job type will allow to display metrics
collected during watchlist per tests like
https://perf-dash.k8s.io/#/?jobname=gce-100Nodes-master&metriccategoryname=E2E&metricname=LoadResources&PodName=kube-apiserver-e2e-big-master%2Fkube-apiserver&Resource=memory
What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer: