https://github.com/awslabs/eks-node-viewer

EKS Node Viewer

https://github.com/awslabs/eks-node-viewer

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 19 committers (5.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary

Keywords from Contributors

interactive archival projection generic sequences observability autograding hacking shellcodes modular
Last synced: 10 months ago · JSON representation

Repository

EKS Node Viewer

Basic Info
  • Host: GitHub
  • Owner: awslabs
  • License: apache-2.0
  • Language: Go
  • Default Branch: main
  • Homepage:
  • Size: 22.5 MB
Statistics
  • Stars: 1,483
  • Watchers: 15
  • Forks: 137
  • Open Issues: 22
  • Releases: 16
Created over 3 years ago · Last pushed 11 months ago
Metadata Files
Readme Contributing License Code of conduct Codeowners

README.md

GitHub License contributions welcome Go code tests

Usage

eks-node-viewer is a tool for visualizing dynamic node usage within a cluster. It was originally developed as an internal tool at AWS for demonstrating consolidation with Karpenter. It displays the scheduled pod resource requests vs the allocatable capacity on the node. It does not look at the actual pod resource usage.

Talks Using eks-node-viewer

Installation

Homebrew

bash brew tap aws/tap brew install eks-node-viewer

Manual

Please either fetch the latest release or install manually using: shell go install github.com/awslabs/eks-node-viewer/cmd/eks-node-viewer@latest

Note: This will install it to your GOBIN directory, typically ~/go/bin if it is unconfigured.

Usage

shell Usage of ./eks-node-viewer: -attribution Show the Open Source Attribution -context string Name of the kubernetes context to use -disable-pricing Disable pricing lookups -extra-labels string A comma separated set of extra node labels to display -kubeconfig string Absolute path to the kubeconfig file (default "~/.kube/config") -node-selector string Node label selector used to filter nodes, if empty all nodes are selected -node-sort string Sort order for the nodes, either 'creation' or a label name. The sort order can be controlled by appending =asc or =dsc to the value. (default "creation") -resources string List of comma separated resources to monitor (default "cpu") -style string Three color to use for styling 'good','ok' and 'bad' values. These are also used in the gradients displayed from bad -> good. (default "#04B575,#FFFF00,#FF0000") -v Display eks-node-viewer version -version Display eks-node-viewer version

Examples

```shell

Standard usage

eks-node-viewer

Karpenter nodes only

eks-node-viewer --node-selector karpenter.sh/nodepool

Display both CPU and Memory Usage

eks-node-viewer --resources cpu,memory

Display extra labels, i.e. AZ

eks-node-viewer --extra-labels topology.kubernetes.io/zone

Sort by CPU usage in descending order

eks-node-viewer --node-sort=eks-node-viewer/node-cpu-usage=dsc

Specify a particular AWS profile and region

AWSPROFILE=myprofile AWSREGION=us-west-2 ```

Computed Labels

eks-node-viewer supports some custom label names that can be passed to the --extra-labels to display additional node information.

  • eks-node-viewer/node-age - Age of the node
  • eks-node-viewer/node-cpu-usage - CPU usage (requests)
  • eks-node-viewer/node-memory-usage - Memory usage (requests)
  • eks-node-viewer/node-pods-usage - Pod usage (requests)
  • eks-node-viewer/node-ephemeral-storage-usage - Ephemeral Storage usage (requests)

Default Options

You can supply default options to eks-node-viewer by creating a file named .eks-node-viewer in your home directory and specifying options there. The format is option-name=value where the option names are the command line flags: ```text

select only Karpenter managed nodes

node-selector=karpenter.sh/nodepool

display both CPU and memory

resources=cpu,memory

show the zone and nodepool name by default

extra-labels=topology.kubernetes.io/zone,karpenter.sh/nodepool

sort so that the newest nodes are first

node-sort=creation=asc

change default color style

style=#2E91D2,#ffff00,#D55E00 ```

Troubleshooting

NoCredentialProviders: no valid providers in chain. Deprecated.

This CLI relies on AWS credentials to access pricing data if you don't use the --disable-pricing option. You must have credentials configured via ~/aws/credentials, ~/.aws/config, environment variables, or some other credential provider chain.

See credential provider documentation for more.

I get an error of creating client, exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"

Updating your AWS cli to the latest version and updating your kubeconfig should resolve this issue.

Development

Building

shell $ make build

Or local execution of GoReleaser build: shell $ make goreleaser

Owner

  • Name: Amazon Web Services - Labs
  • Login: awslabs
  • Kind: organization
  • Location: Seattle, WA

AWS Labs

GitHub Events

Total
  • Create event: 88
  • Release event: 4
  • Issues event: 8
  • Watch event: 292
  • Delete event: 94
  • Issue comment event: 54
  • Push event: 95
  • Pull request review comment event: 6
  • Pull request review event: 68
  • Pull request event: 198
  • Fork event: 37
Last Year
  • Create event: 88
  • Release event: 4
  • Issues event: 8
  • Watch event: 292
  • Delete event: 94
  • Issue comment event: 54
  • Push event: 95
  • Pull request review comment event: 6
  • Pull request review event: 68
  • Pull request event: 198
  • Fork event: 37

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 249
  • Total Committers: 19
  • Avg Commits per committer: 13.105
  • Development Distribution Score (DDS): 0.498
Past Year
  • Commits: 79
  • Committers: 7
  • Avg Commits per committer: 11.286
  • Development Distribution Score (DDS): 0.291
Top Committers
Name Email Commits
dependabot[bot] 4****] 125
Todd Neal t****t@a****m 80
Brandon w****m@a****m 11
Marko Bevc m****o@s****m 11
Jonathan Innis j****s@a****m 4
Ryo Nakamine r****0@g****m 3
Abhinav Dahiya a****a@l****m 2
pete911 p****r@g****m 2
Steve Mason s****m@b****m 1
nezz7 o****n@w****m 1
Alex Koepke a****e 1
Ellis Tarn e****n@g****m 1
Justin Garrison j****n@g****m 1
Nick Tran 1****n 1
Omar kamoun 3****7 1
Rob R****d 1
Serge Logvinov s****v@s****v 1
T00mm 3****m 1
punkwalker p****e@m****u 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 60
  • Total pull requests: 412
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 10 days
  • Total issue authors: 50
  • Total pull request authors: 24
  • Average comments per issue: 2.13
  • Average comments per pull request: 0.59
  • Merged pull requests: 221
  • Bot issues: 0
  • Bot pull requests: 329
Past Year
  • Issues: 8
  • Pull requests: 186
  • Average time to close issues: 3 months
  • Average time to close pull requests: 5 days
  • Issue authors: 8
  • Pull request authors: 13
  • Average comments per issue: 0.63
  • Average comments per pull request: 0.41
  • Merged pull requests: 100
  • Bot issues: 0
  • Bot pull requests: 160
Top Authors
Issue Authors
  • runningman84 (5)
  • mbevc1 (4)
  • dependabot[bot] (3)
  • FernandoMiguel (3)
  • flavono123 (2)
  • rothgar (2)
  • mudasirmirza (1)
  • momenthana (1)
  • dcpc007 (1)
  • phsmiths (1)
  • itselavia (1)
  • yashtandon019 (1)
  • poussa (1)
  • sidewinder12s (1)
  • nthienan (1)
Pull Request Authors
  • dependabot[bot] (421)
  • tzneal (44)
  • mbevc1 (9)
  • bwagner5 (6)
  • abhinavdahiya (4)
  • rnakamine (3)
  • nickdallavalentina (2)
  • punkwalker (2)
  • kj187 (2)
  • Nezz7 (2)
  • MaximeMRF (2)
  • adelinag08 (2)
  • sergelogvinov (1)
  • rodrigorfk (1)
  • thiru85 (1)
Top Labels
Issue Labels
enhancement (6) dependencies (3)
Pull Request Labels
dependencies (421) go (88)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 24
proxy.golang.org: github.com/awslabs/eks-node-viewer
  • Versions: 24
  • Dependent Packages: 1
  • Dependent Repositories: 1
Rankings
Stargazers count: 2.6%
Forks count: 3.8%
Dependent repos count: 4.7%
Average: 5.2%
Dependent packages count: 9.6%
Last synced: 11 months ago

Dependencies

go.mod go
  • cloud.google.com/go v0.97.0
  • github.com/Azure/go-autorest v14.2.0+incompatible
  • github.com/Azure/go-autorest/autorest v0.11.27
  • github.com/Azure/go-autorest/autorest/adal v0.9.20
  • github.com/Azure/go-autorest/autorest/date v0.3.0
  • github.com/Azure/go-autorest/logger v0.2.1
  • github.com/Azure/go-autorest/tracing v0.6.0
  • github.com/PuerkitoBio/purell v1.1.1
  • github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
  • github.com/aws/aws-sdk-go v1.44.131
  • github.com/charmbracelet/bubbles v0.13.0
  • github.com/charmbracelet/bubbletea v0.22.1
  • github.com/charmbracelet/harmonica v0.2.0
  • github.com/charmbracelet/lipgloss v0.5.0
  • github.com/containerd/console v1.0.3
  • github.com/davecgh/go-spew v1.1.1
  • github.com/emicklei/go-restful/v3 v3.8.0
  • github.com/go-logr/logr v1.2.3
  • github.com/go-openapi/jsonpointer v0.19.5
  • github.com/go-openapi/jsonreference v0.19.5
  • github.com/go-openapi/swag v0.19.14
  • github.com/gogo/protobuf v1.3.2
  • github.com/golang-jwt/jwt/v4 v4.2.0
  • github.com/golang/protobuf v1.5.2
  • github.com/google/gnostic v0.5.7-v3refs
  • github.com/google/go-cmp v0.5.6
  • github.com/google/gofuzz v1.1.0
  • github.com/imdario/mergo v0.3.6
  • github.com/jmespath/go-jmespath v0.4.0
  • github.com/josharian/intern v1.0.0
  • github.com/json-iterator/go v1.1.12
  • github.com/lucasb-eyer/go-colorful v1.2.0
  • github.com/mailru/easyjson v0.7.6
  • github.com/mattn/go-isatty v0.0.16
  • github.com/mattn/go-localereader v0.0.1
  • github.com/mattn/go-runewidth v0.0.13
  • github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
  • github.com/modern-go/reflect2 v1.0.2
  • github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b
  • github.com/muesli/cancelreader v0.2.2
  • github.com/muesli/reflow v0.3.0
  • github.com/muesli/termenv v0.11.1-0.20220212125758-44cd13922739
  • github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
  • github.com/rivo/uniseg v0.2.0
  • github.com/samber/lo v1.33.0
  • github.com/spf13/pflag v1.0.5
  • go.uber.org/atomic v1.7.0
  • go.uber.org/multierr v1.8.0
  • golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd
  • golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17
  • golang.org/x/net v0.1.0
  • golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8
  • golang.org/x/sys v0.1.0
  • golang.org/x/term v0.1.0
  • golang.org/x/text v0.4.0
  • golang.org/x/time v0.0.0-20220210224613-90d013bbcef8
  • google.golang.org/appengine v1.6.7
  • google.golang.org/protobuf v1.28.0
  • gopkg.in/inf.v0 v0.9.1
  • gopkg.in/yaml.v2 v2.4.0
  • gopkg.in/yaml.v3 v3.0.1
  • k8s.io/api v0.25.0
  • k8s.io/apimachinery v0.25.0
  • k8s.io/client-go v0.25.0
  • k8s.io/klog/v2 v2.70.1
  • k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1
  • k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed
  • sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2
  • sigs.k8s.io/structured-merge-diff/v4 v4.2.3
  • sigs.k8s.io/yaml v1.2.0
go.sum go
  • 663 dependencies
.github/workflows/release.yaml actions
  • actions/checkout v3 composite
  • actions/setup-go v3 composite
  • goreleaser/goreleaser-action v4 composite
.github/workflows/test.yaml actions
  • actions/checkout v3 composite
  • actions/setup-go v3 composite