some grafana
This commit is contained in:
parent
88e80f4107
commit
3b257aadab
6 changed files with 61 additions and 104 deletions
|
@ -101,11 +101,11 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1):
|
|||
dashboard['title'] = monitored_node.name
|
||||
dashboard['uid'] = monitored_node.metadata.get('id')
|
||||
panel_id = count(start=1)
|
||||
|
||||
|
||||
for row_id, row_name in enumerate(sorted(monitored_node.metadata.get('grafana_rows')), start=1):
|
||||
with open(repo.path.join([f'data/grafana/rows/{row_name}.py'])) as file:
|
||||
row = eval(file.read())
|
||||
|
||||
|
||||
for panel_in_row, (panel_name, panel_config) in enumerate(row.items()):
|
||||
panel = deepcopy(panel_template)
|
||||
panel['id'] = next(panel_id)
|
||||
|
@ -113,7 +113,7 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1):
|
|||
panel['gridPos']['w'] = 24 // len(row)
|
||||
panel['gridPos']['x'] = (24 // len(row)) * panel_in_row
|
||||
panel['gridPos']['y'] = (row_id - 1) * panel['gridPos']['h']
|
||||
|
||||
|
||||
if 'display_name' in panel_config:
|
||||
panel['fieldConfig']['defaults']['displayName'] = '${'+panel_config['display_name']+'}'
|
||||
|
||||
|
@ -127,13 +127,17 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1):
|
|||
panel['fieldConfig']['defaults']['min'] = panel_config['min']
|
||||
if 'max' in panel_config:
|
||||
panel['fieldConfig']['defaults']['max'] = panel_config['max']
|
||||
if 'soft_max' in panel_config:
|
||||
panel['fieldConfig']['defaults']['custom']['axisSoftMax'] = panel_config['soft_max']
|
||||
|
||||
if 'legend' in panel_config:
|
||||
panel['options']['legend'].update(panel_config['legend'])
|
||||
|
||||
if 'tooltip' in panel_config:
|
||||
panel['options']['tooltip']['mode'] = panel_config['tooltip']
|
||||
|
||||
if panel_config['tooltip'] == 'multi':
|
||||
panel['options']['tooltip']['sort'] = 'desc'
|
||||
|
||||
for query_name, query_config in panel_config['queries'].items():
|
||||
panel['targets'].append({
|
||||
'refId': query_name,
|
||||
|
@ -150,13 +154,13 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1):
|
|||
function=query_config.get('function', None),
|
||||
).strip()
|
||||
})
|
||||
|
||||
|
||||
dashboard['panels'].append(panel)
|
||||
|
||||
|
||||
files[f'/var/lib/grafana/dashboards/{monitored_node.name}.json'] = {
|
||||
'content': json.dumps(dashboard, indent=4),
|
||||
'triggers': [
|
||||
'svc_systemd:grafana-server:restart',
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -80,7 +80,6 @@ defaults = {
|
|||
'proc_cpu',
|
||||
'proc_ram',
|
||||
'proc_io',
|
||||
'pressure_stall',
|
||||
},
|
||||
'sudoers': {
|
||||
'telegraf': {'/usr/local/share/telegraf/procio'},
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
'usage': {
|
||||
'stacked': False,
|
||||
'stacked': True,
|
||||
'queries': {
|
||||
'usage': {
|
||||
'filters': {
|
||||
|
@ -22,7 +22,12 @@
|
|||
},
|
||||
},
|
||||
'min': 0,
|
||||
'max': 100,
|
||||
'soft_max': 3,
|
||||
'unit': 'percent',
|
||||
'tooltip': 'multi',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
'load': {
|
||||
'stacked': False,
|
||||
|
@ -39,5 +44,40 @@
|
|||
'function': 'mean',
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
'soft_max': 3,
|
||||
'unit': 'percent',
|
||||
'tooltip': 'multi',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
'pressure_stall': {
|
||||
'queries': {
|
||||
'pressure_stall': {
|
||||
'filters': {
|
||||
'_measurement': 'pressure_stall',
|
||||
'resource': [
|
||||
'cpu',
|
||||
'io',
|
||||
'memory',
|
||||
],
|
||||
'type': [
|
||||
'some',
|
||||
],
|
||||
'_field': [
|
||||
'avg10',
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
'min': 0,
|
||||
'soft_max': 3,
|
||||
'display_name': '__field.labels.resource',
|
||||
'unit': 'percent',
|
||||
'tooltip': 'multi',
|
||||
'legend': {
|
||||
'displayMode': 'hidden',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -13,7 +13,8 @@
|
|||
},
|
||||
},
|
||||
'unit': 'decbytes',
|
||||
'display_name': '__field.labels.name'
|
||||
'display_name': '__field.labels.name',
|
||||
'tooltip': 'multi',
|
||||
},
|
||||
'write': {
|
||||
'stacked': True,
|
||||
|
@ -29,6 +30,7 @@
|
|||
},
|
||||
},
|
||||
'unit': 'decbytes',
|
||||
'display_name': '__field.labels.name'
|
||||
'display_name': '__field.labels.name',
|
||||
'tooltip': 'multi',
|
||||
},
|
||||
}
|
||||
|
|
|
@ -13,7 +13,8 @@
|
|||
},
|
||||
},
|
||||
'unit': 'decbytes',
|
||||
'display_name': '__field.labels.interface'
|
||||
'display_name': '__field.labels.interface',
|
||||
'tooltip': 'multi',
|
||||
},
|
||||
'out': {
|
||||
'stacked': True,
|
||||
|
@ -29,6 +30,7 @@
|
|||
},
|
||||
},
|
||||
'unit': 'decbytes',
|
||||
'display_name': '__field.labels.interface'
|
||||
'display_name': '__field.labels.interface',
|
||||
'tooltip': 'multi',
|
||||
},
|
||||
}
|
||||
|
|
|
@ -1,90 +0,0 @@
|
|||
{
|
||||
'cpu': {
|
||||
'queries': {
|
||||
'seome': {
|
||||
'filters': {
|
||||
'_measurement': 'pressure_stall',
|
||||
'resource': [
|
||||
'cpu',
|
||||
],
|
||||
'type': [
|
||||
'some',
|
||||
],
|
||||
'_field': [
|
||||
'avg10',
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
'display_name': '__field.labels.type',
|
||||
'unit': 'percent',
|
||||
},
|
||||
'memory': {
|
||||
'queries': {
|
||||
'some': {
|
||||
'filters': {
|
||||
'_measurement': 'pressure_stall',
|
||||
'resource': [
|
||||
'memory',
|
||||
],
|
||||
'type': [
|
||||
'some',
|
||||
],
|
||||
'_field': [
|
||||
'avg10',
|
||||
],
|
||||
},
|
||||
},
|
||||
'full': {
|
||||
'filters': {
|
||||
'_measurement': 'pressure_stall',
|
||||
'resource': [
|
||||
'memory',
|
||||
],
|
||||
'type': [
|
||||
'full',
|
||||
],
|
||||
'_field': [
|
||||
'avg10',
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
'display_name': '__field.labels.type',
|
||||
'unit': 'percent',
|
||||
},
|
||||
'io': {
|
||||
'queries': {
|
||||
'some': {
|
||||
'filters': {
|
||||
'_measurement': 'pressure_stall',
|
||||
'resource': [
|
||||
'io',
|
||||
],
|
||||
'type': [
|
||||
'some',
|
||||
],
|
||||
'_field': [
|
||||
'avg10',
|
||||
],
|
||||
},
|
||||
},
|
||||
'full': {
|
||||
'filters': {
|
||||
'_measurement': 'pressure_stall',
|
||||
'resource': [
|
||||
'io',
|
||||
],
|
||||
'type': [
|
||||
'full',
|
||||
],
|
||||
'_field': [
|
||||
'avg10',
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
'display_name': '__field.labels.type',
|
||||
'unit': 'percent',
|
||||
},
|
||||
}
|
Loading…
Reference in a new issue