-
Notifications
You must be signed in to change notification settings - Fork 2k
Add Pyrra as (optional) component #1667
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
Conversation
Seems like the nested approach I took might not work. In that case we'll probably have to use a |
Awesome Matthias, thanks a lot for opening this PR! Yeah, since you've added Pyrra to By directly putting Pyrra under
I did that and tried running
|
Not using this nested object approach would make the code more aligned with what we have on other components... not sure how relevant that is 🤔 |
240ad43
to
825f3f0
Compare
PTAL @ArthurSens 😊 |
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.
Nice, just tested locally and got it running in no time 🙂
I'm fine with merging as is since you've added it as an addon, just some questions about what needs to be done to improve the experience of using kube-prometheus with Pyrra.
I've noticed that we now have SLO-based alerts for kubernetes coming from both kubernetes-mixin and also from Pyrra, I believe we could extend the addon to drop the alerts coming from kubernetes-mixin, is that correct? We could create an issue for this and improve in another PR of course....
Did you find any other issues when running kube-prometheus and Pyrra at the same cluster/environment?
@paulfantom @philipgough, any other comments are also welcome :)
Yeah, you're right. They somewhat conflict. I'm happy to follow up with another PR that filters out the kubernetes-mixin alert. At the same time, it might not even be too bad to have both alerts for a while and see how they compare in user experience for users? Personally, I would have said let's keep both and have people try out Pyrra and the given SLOs. Hopefully we can figure out if it works good enough for people and what to adjust for the SLOs. Eventually, and that's my dream, we would throw out all "old" alerts and continue with just the SLOs. Obviously that's a bigger discussion to have. |
I'm just concerned at people using different targets between the mixin and pyrra and getting confused by getting alerts for one but not the other |
// 'slo-apiserver-read-resource-latency': { | ||
// apiVersion: 'pyrra.dev/v1alpha1', | ||
// kind: 'ServiceLevelObjective', |
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.
Letting this snippet in comments was intended? 🤔
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.
Good catch. It conflicted with the name. I think it was a copy-paste mistake. I need to fix it. 👍
Yes. Totally get that. Let's get this in and then I'll work on filtering out some alerts if the Pyrra addon is enabled. |
Updated the PR to not include the commented SLO that turned out to simply be a copy-paste-mistake |
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.
LGTM
Description
As per discussion in one of our last Office Hours here is a Pull Request to add Pyrra as component to kube-prometheus.
I've added a new component that imports the CustomResourceDefinition via jsonnet-bundler and commented out the usage of Pyrra in the
example.jsonnet
so only users who explicitly want Pyrra can enable it.Type of change
What type of changes does your code introduce to the kube-prometheus? Put an
x
in the box that apply.CHANGE
(fix or feature that would cause existing functionality to not work as expected)FEATURE
(non-breaking change which adds functionality)BUGFIX
(non-breaking change which fixes an issue)ENHANCEMENT
(non-breaking change which improves existing functionality)NONE
(if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)Changelog entry