wip
This commit is contained in:
parent
9ed91592f8
commit
7eff2aa76e
9 changed files with 58 additions and 20 deletions
|
@ -112,10 +112,17 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1):
|
||||||
if 'display_name' in panel_config:
|
if 'display_name' in panel_config:
|
||||||
panel['fieldConfig']['defaults']['displayName'] = '${'+panel_config['display_name']+'}'
|
panel['fieldConfig']['defaults']['displayName'] = '${'+panel_config['display_name']+'}'
|
||||||
|
|
||||||
if panel_config.get('stacked', False):
|
if panel_config.get('stacked'):
|
||||||
panel['fieldConfig']['defaults']['custom']['stacking']['mode'] = 'normal'
|
panel['fieldConfig']['defaults']['custom']['stacking']['mode'] = 'normal'
|
||||||
else:
|
|
||||||
panel['fieldConfig']['defaults']['custom']['stacking']['mode'] = 'none'
|
if 'unit' in panel_config:
|
||||||
|
panel['fieldConfig']['defaults']['unit'] = panel_config['unit']
|
||||||
|
|
||||||
|
if 'min' in panel_config:
|
||||||
|
panel['fieldConfig']['defaults']['min'] = panel_config['min']
|
||||||
|
if 'max' in panel_config:
|
||||||
|
panel['fieldConfig']['defaults']['max'] = panel_config['max']
|
||||||
|
|
||||||
|
|
||||||
for query_name, query_config in panel_config['queries'].items():
|
for query_name, query_config in panel_config['queries'].items():
|
||||||
panel['targets'].append({
|
panel['targets'].append({
|
||||||
|
@ -123,6 +130,7 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1):
|
||||||
'query': flux_template.render(
|
'query': flux_template.render(
|
||||||
bucket=bucket,
|
bucket=bucket,
|
||||||
host=monitored_node.name,
|
host=monitored_node.name,
|
||||||
|
negative=query_config.get('negative', False),
|
||||||
filters={
|
filters={
|
||||||
'host': monitored_node.name,
|
'host': monitored_node.name,
|
||||||
**query_config['filters'],
|
**query_config['filters'],
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from tomlkit import dumps
|
from tomlkit import dumps
|
||||||
|
|
||||||
files['/etc/telegraf/telegraf.conf'] = {
|
files['/etc/telegraf/telegraf.conf'] = {
|
||||||
'content': dumps(node.metadata.get('telegraf/config')),
|
'content': dumps(node.metadata.get('telegraf/config'), sort_keys=True),
|
||||||
'triggers': [
|
'triggers': [
|
||||||
'svc_systemd:telegraf:restart',
|
'svc_systemd:telegraf:restart',
|
||||||
],
|
],
|
||||||
|
|
|
@ -44,12 +44,14 @@ defaults = {
|
||||||
'processes': [{}],
|
'processes': [{}],
|
||||||
'swap': [{}],
|
'swap': [{}],
|
||||||
'system': [{}],
|
'system': [{}],
|
||||||
|
'net': [{}],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'grafana_rows': [
|
'grafana_rows': [
|
||||||
'cpu',
|
'cpu',
|
||||||
'disk_io',
|
'disk_io',
|
||||||
|
'net_io',
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,5 +8,8 @@ from(bucket: "${bucket}")
|
||||||
|> derivative()
|
|> derivative()
|
||||||
% else:
|
% else:
|
||||||
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|
||||||
|
% endif
|
||||||
|
% if negative:
|
||||||
|
|> map(fn: (r) => ({r with _value: r._value * - 1.0}))
|
||||||
% endif
|
% endif
|
||||||
|> yield(name: "mean")
|
|> yield(name: "mean")
|
||||||
|
|
|
@ -23,10 +23,9 @@
|
||||||
'showPoints': 'never',
|
'showPoints': 'never',
|
||||||
'pointSize': 5,
|
'pointSize': 5,
|
||||||
'stacking': {
|
'stacking': {
|
||||||
'mode': 'normal',
|
'mode': 'none',
|
||||||
'group': 'A'
|
'group': 'A'
|
||||||
},
|
},
|
||||||
# 'axisPlacement': 'hidden',
|
|
||||||
'axisLabel': '',
|
'axisLabel': '',
|
||||||
'scaleDistribution': {
|
'scaleDistribution': {
|
||||||
'type': 'linear'
|
'type': 'linear'
|
||||||
|
@ -46,22 +45,8 @@
|
||||||
'color': {
|
'color': {
|
||||||
'mode': 'palette-classic',
|
'mode': 'palette-classic',
|
||||||
},
|
},
|
||||||
'thresholds': {
|
|
||||||
'mode': 'percentage',
|
|
||||||
'steps': [
|
|
||||||
{
|
|
||||||
'color': 'green',
|
|
||||||
'value': None,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'color': 'dark-red',
|
|
||||||
'value': 80,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
'mappings': [],
|
'mappings': [],
|
||||||
'displayName': '${__field.name}',
|
'displayName': '${__field.name}',
|
||||||
'unit': 'percent',
|
|
||||||
},
|
},
|
||||||
'overrides': [],
|
'overrides': [],
|
||||||
},
|
},
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
'function': 'mean',
|
'function': 'mean',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
'min': 0,
|
||||||
|
'max': 100,
|
||||||
},
|
},
|
||||||
'load': {
|
'load': {
|
||||||
'stacked': False,
|
'stacked': False,
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
'function': 'derivative',
|
'function': 'derivative',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
'unit': 'decbytes',
|
||||||
'display_name': '__field.labels.name'
|
'display_name': '__field.labels.name'
|
||||||
},
|
},
|
||||||
'write': {
|
'write': {
|
||||||
|
@ -27,6 +28,7 @@
|
||||||
'function': 'derivative',
|
'function': 'derivative',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
'unit': 'decbytes',
|
||||||
'display_name': '__field.labels.name'
|
'display_name': '__field.labels.name'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
34
data/grafana/rows/net_io.py
Normal file
34
data/grafana/rows/net_io.py
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
'in': {
|
||||||
|
'stacked': True,
|
||||||
|
'queries': {
|
||||||
|
'in': {
|
||||||
|
'filters': {
|
||||||
|
'_measurement': 'net',
|
||||||
|
'_field': [
|
||||||
|
'bytes_recv',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
'function': 'derivative',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'unit': 'decbytes',
|
||||||
|
'display_name': '__field.labels.interface'
|
||||||
|
},
|
||||||
|
'out': {
|
||||||
|
'stacked': True,
|
||||||
|
'queries': {
|
||||||
|
'out': {
|
||||||
|
'filters': {
|
||||||
|
'_measurement': 'net',
|
||||||
|
'_field': [
|
||||||
|
'bytes_sent',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
'function': 'derivative',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'unit': 'decbytes',
|
||||||
|
'display_name': '__field.labels.interface'
|
||||||
|
},
|
||||||
|
}
|
|
@ -1,3 +1,5 @@
|
||||||
|
from ipaddress import ip_interface
|
||||||
|
|
||||||
def get_a_records(metadata):
|
def get_a_records(metadata):
|
||||||
return {
|
return {
|
||||||
'A': [
|
'A': [
|
||||||
|
|
Loading…
Reference in a new issue