From f35f0a409188eda0a4eca0b859593212ba48c28e Mon Sep 17 00:00:00 2001 From: Henning Jacobs Date: Fri, 16 Dec 2016 09:48:21 +0100 Subject: [PATCH] some more info to debug cluster --- app.py | 12 +++++++++++- templates/index.html | 30 ++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/app.py b/app.py index a86cd39..ea31945 100755 --- a/app.py +++ b/app.py @@ -20,7 +20,8 @@ def index(): def get_clusters(): - response = session.get('http://localhost:8001/api/v1/nodes', timeout=5) + api_server_url = 'http://localhost:8001/' + response = session.get('{}/api/v1/nodes'.format(api_server_url), timeout=5) response.raise_for_status() nodes = [] nodes_by_name = {} @@ -33,6 +34,15 @@ def get_clusters(): for pod in response.json()['items']: if 'nodeName' in pod['spec']: nodes_by_name[pod['spec']['nodeName']]['pods'].append(pod) + + try: + response = session.get('{}/api/v1/namespaces/kube-system/services/heapster/proxy/apis/metrics/v1alpha1/nodes'.format(api_server_url), timeout=5) + response.raise_for_status() + for metrics in response.json()['items']: + nodes_by_name[metrics['metadata']['name']]['usage'] = metrics['usage'] + except: + logging.exception('Failed to get metrics') + return {'kubernetes_clusters': [{'nodes': nodes}]} diff --git a/templates/index.html b/templates/index.html index 2453aae..185480b 100644 --- a/templates/index.html +++ b/templates/index.html @@ -72,18 +72,25 @@ class Node extends PIXI.Graphics { getResourceUsage() { const resources = {} for (let key of Object.keys(this.node.status.capacity)) { - resources[key] = {'capacity': parseResource(this.node.status.capacity[key]), 'used': 0} + resources[key] = {'capacity': parseResource(this.node.status.capacity[key]), + 'requested': 0, + 'used': 0} + } + if (this.node.usage) { + for (let key of Object.keys(this.node.usage)) { + resources[key]['used'] = parseResource(this.node.usage[key]) + } } for (let pod of this.node.pods) { for (let container of pod.spec.containers) { if (container.resources && container.resources.requests) { for (let key of Object.keys(container.resources.requests)) { - resources[key].used += parseResource(container.resources.requests[key]) + resources[key].requested += parseResource(container.resources.requests[key]) } } } } - resources['pods'].used = this.node.pods.length + resources['pods'].requested = this.node.pods.length return resources } draw () { @@ -123,17 +130,22 @@ class Node extends PIXI.Graphics { nodeBox.tooltip.visible = false }) const resources = this.getResourceUsage() - for (var i=0; i