Files
kube-prometheus/assets/grafana/pods.dashboard.py
2018-02-09 13:21:37 +01:00

256 lines
9.3 KiB
Python

from grafanalib.core import *
dashboard = Dashboard(
title='Pods',
version=1,
graphTooltip=1,
refresh=False,
editable=False,
schemaVersion=14,
time=Time(start='now-6h'),
timezone='browser',
inputs=[
{
'name': 'prometheus',
'label': 'prometheus',
'description': '',
'type': 'datasource',
'pluginId': 'prometheus',
'pluginName': 'Prometheus'
},
],
templating=Templating(list=[
{
'allValue': '.*',
'current': {},
'datasource': 'prometheus',
'hide': 0,
'includeAll': True,
'label': 'Namespace',
'multi': False,
'name': 'namespace',
'options': [],
'query': 'label_values(kube_pod_info, namespace)',
'refresh': 1,
'regex': '',
'sort': 0,
'tagValuesQuery': '',
'tags': [],
'tagsQuery': '',
'type': 'query',
'useTags': False,
},
{
'allValue': None,
'current': {},
'datasource': 'prometheus',
'hide': 0,
'includeAll': False,
'label': 'Pod',
'multi': False,
'name': 'pod',
'options': [],
'query': 'label_values(kube_pod_info{namespace=~"$namespace"}, '
'pod)',
'refresh': 1,
'regex': '',
'sort': 0,
'tagValuesQuery': '',
'tags': [],
'tagsQuery': '',
'type': 'query',
'useTags': False,
},
{
'allValue': '.*',
'current': {},
'datasource': 'prometheus',
'hide': 0,
'includeAll': True,
'label': 'Container',
'multi': False,
'name': 'container',
'options': [],
'query': 'label_values(kube_pod_container_info{namespace='
'"$namespace", pod="$pod"}, container)',
'refresh': 1,
'regex': '',
'sort': 0,
'tagValuesQuery': '',
'tags': [],
'tagsQuery': '',
'type': 'query',
'useTags': False,
},
]),
rows=[
Row(
height=250, title='Row', showTitle=False, editable=False,
titleSize='h6', panels=[
Graph(
title='Memory Usage',
dataSource='prometheus',
id=1,
isNew=False,
editable=False,
spaceLength=10,
span=12,
dashLength=10,
dashes=False,
tooltip=Tooltip(msResolution=True, valueType='cumulative'),
legend=Legend(
alignAsTable=True, avg=True, current=True,
rightSide=True, total=False, values=True,
),
yAxes=YAxes(
YAxis(
format='bytes', min=None,
),
YAxis(format='short', min=None),
),
targets=[
{
'expr': 'sum by(container_name) (container_'
'memory_usage_bytes{pod_name="$pod", '
'container_name=~"$container", '
'container_name!="POD"})',
'interval': '10s',
'intervalFactor': 1,
'legendFormat': 'Current: {{ container_name }}',
'metric': 'container_memory_usage_bytes',
'refId': 'A',
'step': 15,
},
{
'expr': 'kube_pod_container_resource_requests_'
'memory_bytes{pod="$pod", container=~'
'"$container"}',
'interval': '10s',
'intervalFactor': 2,
'legendFormat': 'Requested: {{ container }}',
'metric': 'kube_pod_container_resource_'
'requests_memory_bytes',
'refId': 'B',
'step': 20,
},
{
'expr': 'kube_pod_container_resource_limits_'
'memory_bytes{pod="$pod", container=~'
'"$container"}',
'interval': '10s',
'intervalFactor': 2,
'legendFormat': 'Limit: {{ container }}',
'metric': 'kube_pod_container_resource_'
'limits_memory_bytes',
'refId': 'C',
'step': 20,
},
],
),
],
),
Row(
height=250, title='Row', showTitle=False, editable=False,
titleSize='h6', panels=[
Graph(
title='CPU Usage',
dataSource='prometheus',
id=2,
isNew=False,
editable=False,
spaceLength=10,
span=12,
dashLength=10,
dashes=False,
legend=Legend(
alignAsTable=True, avg=True, current=True,
rightSide=True, total=False, values=True,
),
tooltip=Tooltip(msResolution=True, valueType='cumulative'),
yAxes=YAxes(
YAxis(
format='short', min=None,
),
YAxis(format='short', min=None),
),
targets=[
{
'expr': 'sum by (container_name)('
'rate(container_cpu_usage_seconds_total'
'{image!="",container_name!="POD",pod_name='
'"$pod"}[1m]))',
'intervalFactor': 2,
'legendFormat': '{{ container_name }}',
'refId': 'A',
'step': 30
},
{
'expr': 'kube_pod_container_resource_requests_'
'cpu_cores{pod="$pod", container=~'
'"$container"}',
'interval': '10s',
'intervalFactor': 2,
'legendFormat': 'Requested: {{ container }}',
'metric': 'kube_pod_container_resource_'
'requests_cpu_cores',
'refId': 'B',
'step': 20,
},
{
'expr': 'kube_pod_container_resource_limits_'
'cpu_cores{pod="$pod", container=~'
'"$container"}',
'interval': '10s',
'intervalFactor': 2,
'legendFormat': 'Limit: {{ container }}',
'metric': 'kube_pod_container_resource_'
'limits_memory_bytes',
'refId': 'C',
'step': 20,
},
],
),
],
),
Row(
height=250, title='New Row', showTitle=False, editable=False,
titleSize='h6', panels=[
Graph(
title='Network I/O',
dataSource='prometheus',
id=3,
isNew=False,
editable=False,
spaceLength=10,
span=12,
dashLength=10,
dashes=False,
legend=Legend(
alignAsTable=True, avg=True, current=True,
rightSide=True, total=False, values=True,
),
tooltip=Tooltip(msResolution=True, valueType='cumulative'),
yAxes=YAxes(
YAxis(
format='bytes', min=None,
),
YAxis(format='short', min=None),
),
targets=[
{
'expr': 'sort_desc(sum by (pod_name) (rate'
'(container_network_receive_bytes_total{'
'pod_name="$pod"}[1m])))',
'intervalFactor': 2,
'legendFormat': '{{ pod_name }}',
'refId': 'A',
'step': 30
},
],
),
],
),
],
)