-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
cockpit: Implement PCP metrics channel in the Python bridge #20049
Conversation
ed025f6
to
11c3806
Compare
2821ebd
to
920768d
Compare
920768d
to
cd74f24
Compare
cd74f24
to
a20264b
Compare
a20264b
to
b4e0993
Compare
Tox is meh :( There is no pcp wheel so need to build it and the PyPi version is outdated 5.0 😞 |
2f49acb
to
e303bd2
Compare
ccb5c34
to
1515e07
Compare
1515e07
to
8c9c57b
Compare
877b872
to
34af402
Compare
Looking again at the fetchGroup API, this looks useful but it is so freaking broken, for some reason it returns no instances for the first metric.. (why!)
Maybe something for a follow up, it seems nice
|
31985ad
to
55322ca
Compare
@martinpitt @mvollmer an initial review would be appreciated, I am not super fond of the spaghetti soup, combining direct and archived metrics together kinda makes it messy This is also the reason we can't easily combine the internalmetrics and the PCP metrics, the archive metrics are too different. Plus we have no Sampler() class |
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.
Thanks @jelly , great work! I have a lot of little things, but honestly I'm not too worried about the code structure -- there is a lot of bit shifting, data type conversion, and plumbing, and I trust that all of this is necessary. But the overall structure is relatively easy to follow.
I'm really looking forward to landing this!
fdf20b7
to
8d26edc
Compare
This seems to go green! @martinpitt I re-added the manifest as the JS code uses this to detect if PCP is available and if it's missing all PCP tests simply fail. A follow up PR will take care of that. |
@jelly ack wrt. putting back the manifest. I think we agreed to let this land after tomorrow's release, then we have two weeks to do the follow-up cleanups. Can you please take a look at the remaining open review comments such as this one? They are collapsed by default unfortunately (GitHub could really be more clever with resolved comments..) |
@jelly FTR, the remaining threads are mostly questions, or little cleanups. They are ok for follow-ups. |
8d26edc
to
8b54c46
Compare
I hopefully handled them all and updated the PR, it wasn't too much 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.
Thanks! There was one outstanding issue about commenting the "unsupported metric" (string) case, but not important. It's here for archaeology. 😁
I retried some tests which looked like flakes. Thanks!
(Let's please land this after tomorrow's release)
The Python bridge still used the separate `cockpit-pcp` bridge for metrics gathering. For us to remove the full C bridge implementation the separate PCP bridge also has to be rewritten. This rewrite is a more or less Python copy of the C implementation using the Python PCP module. Even though the Python PCP module offers a "higher level" fetchGroup API but preliminary testing has found this has some issues with changing multi instance values and instances can not be omitted with a fetch group (but this can be done in our own code) Co-Authored-By: Allison Karlitskaya <allison.karlitskaya@redhat.com> Co-Authored-By: Tomas Matus <tomatus777@gmail.com>
8b54c46
to
5e5f3f2
Compare
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.
🚀
Added, let's not add new technical debt :)
\o/ |
Current ToDo's
exception
test/image-prepare -q debian-testing
it fails on pytest.Follow ups, I'd suggest tackling:
pcp python3-pcp
instead of cockpit-pcpcockpit-pcp
(release-blocker)