-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Update controllermanager metrics #32037
Merged
MichaelKatsoulis
merged 13 commits into
elastic:main
from
MichaelKatsoulis:revisit-controllermanager-metrics
Jun 28, 2022
Merged
Update controllermanager metrics #32037
MichaelKatsoulis
merged 13 commits into
elastic:main
from
MichaelKatsoulis:revisit-controllermanager-metrics
Jun 28, 2022
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MichaelKatsoulis
added
the
Team:Cloudnative-Monitoring
Label for the Cloud Native Monitoring team
label
Jun 22, 2022
botelastic
bot
added
needs_team
Indicates that the issue/PR needs a Team:* label
and removed
needs_team
Indicates that the issue/PR needs a Team:* label
labels
Jun 22, 2022
Collaborator
tetianakravchenko
approved these changes
Jun 24, 2022
gizas
approved these changes
Jun 27, 2022
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.
Only if you have the official link with the list of updated metrics that new kubernetes controlmanager supports add it to the description
6 tasks
chrisberkhout
pushed a commit
that referenced
this pull request
Jun 1, 2023
* Update controllermanager metrics * Update dashboard for controllermanager
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR do?
This PR updates the metrics that Kubernetes
controllermamager
metricset collects.Also the OOTB dashboard is updated.
Why is it important?
controllermamager
metricset currently collects metrics from kubernetes controllermanager prometheus endpoint that have been deprecated in latest versions of kubernetes. Currently we support k8s versions starting from 1.21.x.As a result values from those fields are always nil and some of the dashboard visualisations show no values.
Those deprecated prometheus fields are
http_request_duration_microseconds
can instead be collected fromrest_client_request_duration_seconds
For the rest of them, there are no more, related metrics.
Also metrics like
process_max_fds
,workqueue_work_duration_seconds
are interesting and were added.As part of this PR the following elasticsearch fields where dropped (their values were always nil in k8s versions we support)
kubernetes.controllermanager.http.request.duration.us.percentile.*
kubernetes.controllermanager.http.request.duration.us.sum
kubernetes.controllermanager.http.request.duration.us.count
kubernetes.controllermanager.http.request.size.bytes.percentile.*
kubernetes.controllermanager.http.request.size.bytes.sum
kubernetes.controllermanager.http.request.size.bytes.count
kubernetes.controllermanager.http.responsesize.bytes.percentile.*
kubernetes.controllermanager.http.response.size.bytes.sum
kubernetes.controllermanager.http.response.size.bytes.count
kubernetes.controllermanager.http.request.count
kubernetes.controllermanager.handler
and the following fields added:
kubernetes.controllermanager.url
kubernetes.controllermanager.verb
kubernetes.controllermanager.fds.max.count
kubernetes.controllermanager.client.request.duration.sec.sum
kubernetes.controllermanager.client.request.duration.sec.count
kubernetes.controllermanager.client.request.duration.sec.bucket.*
kubernetes.controllermanager.workqueue.work.duration.sec.sum
kubernetes.controllermanager.workqueue.work.duration.sec.count
kubernetes.controllermanager.workqueue.work.duration.sec.bucket.*
Checklist
CHANGELOG.next.asciidoc
orCHANGELOG-developer.next.asciidoc
.How to test this PR locally
Deploy Metricbeat from this PR branch with controllermanager metricset enabled.
Prefer Kind or Minikube in order for metricbeat to have access to controllermanager endpoint.
Check for the new fields and setup the new dashboards
./metricbeat setup --dashboards -E setup.dashboards.directory=./module/kubernetes/_meta/kibana/ -E setup.kibana.host=http://elastic:changeme@localhost:5601 -E ssl.verification_mode=none -e -d "*"
Related issues
Use cases
Screenshots
New dashboard
Logs