What is Murre?
Murre is an on-demand, scaleable source of container resource metrics for K8s.
Murre fetchs CPU & memory resource metrics directly from the kubelet on each K8s Node. Murre also enriches the resources with the relevant K8s requests and limits from each PodSpec.
Why Murre?
Murre is a simple, stateless and minimilistic approach to K8s resource monitoring that works at any scale. Murre is free of any third-party dependencies, requiring nothing to be installed on the cluster.
Installing Murre
go install github.com/groundcover-com/murre@latest
Using Murre
- Detect pods and containers with high CPU or memory utilization
murre --sortby-cpu-util
- Find out how much of CPU and memory does a specific pod consumes
murre --pod kong-51xst
- Focus on the resource consumption metrics in a specific namespace
murre --namespace production
[sc-5572] - added sort table by pod name functionality
What this PR does / why we need it: Added sort by pod name functionality to murre, usage:
Which issue(s) this PR fixes: #17
Special notes for your reviewer:
Error when auth-provider is oidc
hi,
when trying to use
murre
with a KUBECONFIG where the user has anauth-provider
with nameoidc
i getmy KUBECONFIG looks like this:
502 Bad Gateway
Describe the bug A clear and concise description of what the bug is.
Error during setup
To Reproduce Steps to reproduce the behavior:
Desktop (please complete the following information):
Linux version 6.0.11-300.fc37.x86_64 ([email protected]) (gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4), GNU ld version 2.38-25.fc37) #1 SMP PREEMPT_DYNAMIC Fri Dec 2 20:47:45 UTC 2022 Fedora release 37 (Thirty Seven)
[sc-4559] - release action bugfix
What this PR does / why we need it: go releaser command was:
release --rm-dist .
the.
is redundant and caused failure on build, this pr removes it.Which issue(s) this PR fixes:
Special notes for your reviewer:
[sc-5598] - updated project structure
What this PR does / why we need it: In this PR we've changed the murre repo to use idiomatic golang package structure so users can run/import package for usage. We've also added cobra framework for more modern go cli.
Special notes for your reviewer:
[sc-5375] - add gorelease and workflows
What this PR does / why we need it: In this PR we've added github workflows for:
Which issue(s) this PR fixes: #9
Special notes for your reviewer:
Maxlevin/sc 5314/remove unwanted output when using murre help
What this PR does / why we need it: In
pflag
pkg, when user uses--help
but there is nohelp
flag defined the library returnspflag.ErrHelp
error and exits.Output before the change:
Output after the change:
Which issue(s) this PR fixes:
Special notes for your reviewer:
[sc-5307] - add support to all auth providers in k8s clientset
What this PR does / why we need it: oidc auth provider support was missing when creating k8s clientset, so in this pr we've added:
which imports all auth providers plugins, so we will now support:
Which issue(s) this PR fixes: #11
Special notes for your reviewer:
[sc-5313] - Added pr template
What this PR does / why we need it: This PR adds this PR template to all new PRs starting now
Which issue(s) this PR fixes:
Special notes for your reviewer:
[sc-5305] - added kubeconfig env support
What this PR does / why we need it: This PR adds
$KUBECONFIG
env support, we will override the default~/.kube/config
Which issue(s) this PR fixes: #5
Special notes for your reviewer:
Sort by pod name
Is your feature request related to a problem? Please describe. It looks that by default sorting is done by one of the default already existing sorting flag by utilization that changes the order of the displayed list. If I wish to just get a feel of the scope of pods I am looking at I prefer them in alphabetical order.
Describe the solution you'd like Please add sort by pod name option. Flag ie: --sortby-name
Please close if such sorting already exists and my apologies for making noise. Many thanks,
fix isse #24 - Show errors on pgm startup
What this PR does / why we need it:
It shows the error when
murre
command throws an exception.Which issue(s) this PR fixes:
Fix isse #24
Special notes for your reviewer:
Show errors on pgm startup
Describe the bug Show the errors and not the command help if the arguments are missing or correct and the runtime throws.
To Reproduce Steps to reproduce the behavior:
Expected behavior The actual exception should be reported to the output: showing the command arguments help is misleading when there is no usage error in the command line itself!
Fix empty screen issue #5 for multi-container pods
What this PR does / why we need it:
Extract metrics multi-container pods
Which issue(s) this PR fixes:
Please, follow all my comments under this issue.
Special notes for your reviewer: Any other tree traversal method would work better than the current silent skipping.
Improve the install method of `murre`
It feels somewhat "let me contribute to
murre
"/"this is for developers" like ... when one have to usego install ...
to installmurre
on ones system. It would be great if it was possible to installmurre
itself with e.g. brew < which should work across Linux and MacOS at least. And then potentiallychocolately
onWindows
.Especially it can be time consuming and cumbersome for newbies and first timers as
go
is a needed prerequisite in thego install ...
>> to getmurre
flow.Plz think about it and thank you.
FEATURE REQUEST: `workload/Pod` side-by-side comparison to `node` sage
Reading the initial release blog post on
murre
( Murre - the lightweight K8s metrics monitoring tool ) it seems to me thatmurre
is already getting the needed metrics relative to each individual node on theKubernetes
cluster being monitored. Making it possible to potentially get....:The following great feature:
Pod
resource usage on e.g. let's say the left side ofmurre
and on the right side then have anodes
view.murre
to make the view focused in on/be relative to a specificPod/workload
=> so one can see how much of the total resources the specificPod/workload
is using relative to thenode
it's running on.Pods
on a specificnode
. Make it possible to view the resource consumption of the cardinal set ofPods
running on anode
/eachnode
. So how many resources do thenode
have left for morePods
.The goal is to be able to get a level of understanding on resource scarcity/overall consumption currently taking place on a cluster.
I hope I'm making sense in the above and thank you for a great tool.
😄