Git Product home page Git Product logo

kptop's People

Contributors

eslam-gomaa avatar eugenelisevich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

kptop's Issues

automate / allow using a tunnel or port-forward for prometheus endpoint

Hi,

neat tool;)
Have you thought about automating and allowing to use a port-forward or tunnel to the (not-exposed) prometheus-service?

That would ease multi-cluster usage. Allowing to do sth. like export KPTOP_PROMETHEUS_SERVER="http://127.0.0.1:8080 once and just use the current kubectl-context to create the tunnel etc without any more manual steps?

regards,
strowi

Add kubernetes to the dependencies

After installation, it doesn't work due to missing module 'kubernetes', should be added to the dependencies

Traceback (most recent call last):
  File "/Users/khaled-abushqear/Library/Python/3.11/bin/kptop", line 5, in <module>
    from kptop_tool import run
  File "/Users/khaled-abushqear/Library/Python/3.11/lib/python/site-packages/kptop_tool.py", line 6, in <module>
    run()
  File "/Users/khaled-abushqear/Library/Python/3.11/lib/python/site-packages/kptop_tool.py", line 3, in run
    from kubePtop.cli import Cli
  File "/Users/khaled-abushqear/Library/Python/3.11/lib/python/site-packages/kubePtop/cli.py", line 6, in <module>
    from kubePtop.session import PrometheusAPI
  File "/Users/khaled-abushqear/Library/Python/3.11/lib/python/site-packages/kubePtop/session.py", line 19, in <module>
    from kubernetes import config
ModuleNotFoundError: No module named 'kubernetes'

I can't find the kptop command after installing kptop. Is there any step I am missing?

[root@llody-dev ]#pip3 install kptop --upgrade
Collecting kptop
Downloading kptop-0.0.7-py3-none-any.whl (47 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.9/47.9 kB 148.3 kB/s eta 0:00:00
Collecting tabulate==0.9.0
Downloading tabulate-0.9.0-py3-none-any.whl (35 kB)
Collecting rich==13.3.1
Downloading rich-13.3.1-py3-none-any.whl (239 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 239.0/239.0 kB 18.7 kB/s eta 0:00:00
Requirement already satisfied: requests==2.28.2 in /usr/local/bin/python3/lib/python3.7/site-packages (from kptop) (2.28.2)
Collecting asciichartpy==1.5.25
Downloading asciichartpy-1.5.25-py2.py3-none-any.whl (7.2 kB)
Collecting argparse
Downloading argparse-1.4.0-py2.py3-none-any.whl (23 kB)
Requirement already satisfied: setuptools in /usr/local/bin/python3/lib/python3.7/site-packages (from asciichartpy==1.5.25->kptop) (67.8.0)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/bin/python3/lib/python3.7/site-packages (from requests==2.28.2->kptop) (3.4)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/bin/python3/lib/python3.7/site-packages (from requests==2.28.2->kptop) (3.1.0)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/bin/python3/lib/python3.7/site-packages (from requests==2.28.2->kptop) (2022.12.7)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/bin/python3/lib/python3.7/site-packages (from requests==2.28.2->kptop) (1.26.15)
Collecting markdown-it-py<3.0.0,>=2.1.0
Downloading markdown_it_py-2.2.0-py3-none-any.whl (84 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.5/84.5 kB 18.1 kB/s eta 0:00:00
Requirement already satisfied: pygments<3.0.0,>=2.14.0 in /usr/local/bin/python3/lib/python3.7/site-packages (from rich==13.3.1->kptop) (2.15.1)
Requirement already satisfied: typing-extensions<5.0,>=4.0.0 in /usr/local/bin/python3/lib/python3.7/site-packages (from rich==13.3.1->kptop) (4.5.0)
Collecting mdurl
=0.1
Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Installing collected packages: argparse, tabulate, mdurl, asciichartpy, markdown-it-py, rich, kptop
Attempting uninstall: rich
Found existing installation: rich 11.0.0
Uninstalling rich-11.0.0:
Successfully uninstalled rich-11.0.0
Successfully installed argparse-1.4.0 asciichartpy-1.5.25 kptop-0.0.7 markdown-it-py-2.2.0 mdurl-0.1.2 rich-13.3.1 tabulate-0.9.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip is available: 23.0.1 -> 23.2.1
[notice] To update, run: /usr/local/bin/python3/bin/python3.7 -m pip install --upgrade pip
[root@llody-dev ~]#kpa
kpartx kpasswd
[root@llody-dev ~]#pip3 list | grep kptop
kptop 0.0.7

[notice] A new release of pip is available: 23.0.1 -> 23.2.1
[notice] To update, run: /usr/local/bin/python3/bin/python3.7 -m pip install --upgrade pip
[root@llody-dev ~]#export KPTOP_PROMETHEUS_SERVER="http://192.168.1.227:32456/"
[root@llody-dev ~]#kptop nodes
-bash: kptop: command not found

Workload metrics

Instead of just containers, pods and nodes, it would be nice to also have views for deployments, daemonsets, statefulsets, etc...

Getting application errors when executing kptop command

I have installed kptop and added env variable for KPTOP_PROMETHEUS_SERVER with prometheus endpoint on AKs cluster, and getting below errors can u please help out here.

File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kptop_tool.py", line 6, in
run()
File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kptop_tool.py", line 3, in run
from kubePtop.cli import Cli
File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kubePtop\cli.py", line 184, in
cli = Cli()
File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kubePtop\cli.py", line 77, in init
pod_metrics.topPodTable(namespace=ns,sort_by_mem_usage=self.sort_by_mem_usage)
File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kubePtop\pod_metrics.py", line 1052, in topPodTable
pods_json = self.topPod(namespace=namespace, sort_by_mem_usage=sort_by_mem_usage)
File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kubePtop\pod_metrics.py", line 967, in topPod
memory_limit = self.run_query(memory_limit_query)
File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kubePtop\session.py", line 120, in run_query
return json.loads(req.text)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\json_init_.py", line 346, in loads
return _default_decoder.decode(s)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)


PS C:\Users\Mounika.Akurathi> kptop --verify-prometheus

Verifying Prometheus connection: Connected
{
"connected": true,
"status_code": 200,
run()
File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kptop_tool.py", line 3, in run
verify_node_exporter = self.verifyNodeExporter()
File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kubePtop\session.py", line 148, in verifyNodeExporter
File "C:\Users\Mounika.Akurathi\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\kubePtop\session.py", line 120, in run_query
return json.loads(req.text)
return _default_decoder.decode(s)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

[feature request] Allow setting up dashboards as yaml files

It would be awesome to be able to allow creating dashboards with a config file defining the layout and queries to run.

Maybe a dashboard command that would take the file as an argument or if the files are stored under some specific folder, they would show as sub-commands.

`--verify-prometheus` should check metrics availability

In the cluster I'm trying kptop with, we are filtering which cadvisor metrics we scrape. To get kptop working correctly, I need to run kptop's commands, see what graphs populate and don't populate, check the source code to see which metrics the graphs are looking at, then update the list of scraped metrics.

I would love if --verify-prometheus returned a list of metrics that were missing, so I could more-easily update the allowlist in my scrape config.

It was easy to determine that I needed machine_cpu_cores, since kptop nodes fails noisily:

# kptop nodes
No nodes found
Query did not return any data: machine_cpu_cores

However, for the dashboards, I need to dig through the logfile. It would be nice if all the failing queries were presented at once.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.