171 lines
8.4 KiB
Python
Executable File
171 lines
8.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Adjusts the testnet monitor dashboard for the specified release channel
|
|
#
|
|
|
|
import sys
|
|
import json
|
|
|
|
if len(sys.argv) != 3:
|
|
print('Error: Dashboard or Channel not specified')
|
|
sys.exit(1)
|
|
|
|
dashboard_json = sys.argv[1]
|
|
channel = sys.argv[2]
|
|
|
|
if channel not in ['edge', 'beta', 'stable', 'local']:
|
|
print('Error: Unknown channel:', channel)
|
|
sys.exit(2)
|
|
|
|
with open(dashboard_json, 'r') as read_file:
|
|
data = json.load(read_file)
|
|
|
|
if channel == 'local':
|
|
data['title'] = 'Local Cluster Monitor'
|
|
data['uid'] = 'local'
|
|
data['links'] = []
|
|
data['templating']['list'] = [{'current': {'text': '$datasource',
|
|
'value': '$datasource'},
|
|
'hide': 1,
|
|
'label': 'Data Source',
|
|
'name': 'datasource',
|
|
'options': [],
|
|
'query': 'influxdb',
|
|
'refresh': 1,
|
|
'regex': '',
|
|
'type': 'datasource'},
|
|
{'allValue': None,
|
|
'current': {'text': 'testnet',
|
|
'value': 'testnet'},
|
|
'hide': 1,
|
|
'includeAll': False,
|
|
'label': 'Testnet',
|
|
'multi': False,
|
|
'name': 'testnet',
|
|
'options': [{'selected': True,
|
|
'text': 'testnet',
|
|
'value': 'testnet'}],
|
|
'query': 'testnet',
|
|
'type': 'custom'},
|
|
{'allValue': ".*",
|
|
'datasource': '$datasource',
|
|
'hide': 0,
|
|
'includeAll': True,
|
|
'label': 'HostID',
|
|
'multi': False,
|
|
'name': 'hostid',
|
|
'options': [],
|
|
'query': 'SELECT DISTINCT(\"id\") FROM \"$testnet\".\"autogen\".\"validator-new\" ',
|
|
'refresh': 2,
|
|
'regex': '',
|
|
'sort': 1,
|
|
'tagValuesQuery': '',
|
|
'tags': [],
|
|
'tagsQuery': '',
|
|
'type': 'query',
|
|
'useTags': False}]
|
|
|
|
elif channel == 'stable':
|
|
# Stable dashboard only allows the user to select between public clusters
|
|
data['title'] = 'Cluster Telemetry'
|
|
data['uid'] = 'monitor'
|
|
data['templating']['list'] = [{'current': {'text': '$datasource',
|
|
'value': '$datasource'},
|
|
'hide': 1,
|
|
'label': 'Data Source',
|
|
'name': 'datasource',
|
|
'options': [],
|
|
'query': 'influxdb',
|
|
'refresh': 1,
|
|
'regex': '',
|
|
'type': 'datasource'},
|
|
{'allValue': None,
|
|
'current': {'text': 'Mainnet Beta',
|
|
'value': 'mainnet-beta'},
|
|
'hide': 1,
|
|
'includeAll': False,
|
|
'label': 'Testnet',
|
|
'multi': False,
|
|
'name': 'testnet',
|
|
'options': [{'selected': True,
|
|
'text': 'Devnet',
|
|
'value': 'devnet'},
|
|
{'selected': False,
|
|
'text': 'Mainnet Beta',
|
|
'value': 'mainnet-beta'},
|
|
{'selected': False,
|
|
'text': 'Testnet',
|
|
'value': 'tds'}],
|
|
'query': 'devnet,mainnet-beta,tds',
|
|
'type': 'custom'},
|
|
{'allValue': ".*",
|
|
'datasource': '$datasource',
|
|
'hide': 0,
|
|
'includeAll': True,
|
|
'label': 'HostID',
|
|
'multi': False,
|
|
'name': 'hostid',
|
|
'options': [],
|
|
'query': 'SELECT DISTINCT(\"id\") FROM \"$testnet\".\"autogen\".\"validator-new\" ',
|
|
'refresh': 2,
|
|
'regex': '',
|
|
'sort': 1,
|
|
'tagValuesQuery': '',
|
|
'tags': [],
|
|
'tagsQuery': '',
|
|
'type': 'query',
|
|
'useTags': False}]
|
|
else:
|
|
# Non-stable dashboard includes all the dev clusters
|
|
data['title'] = 'Cluster Telemetry ({})'.format(channel)
|
|
data['uid'] = 'monitor-' + channel
|
|
data['templating']['list'] = [{'current': {'text': '$datasource',
|
|
'value': '$datasource'},
|
|
'hide': 1,
|
|
'label': 'Data Source',
|
|
'name': 'datasource',
|
|
'options': [],
|
|
'query': 'influxdb',
|
|
'refresh': 1,
|
|
'regex': '',
|
|
'type': 'datasource'},
|
|
{'allValue': ".*",
|
|
'current': {'text': 'Developer Testnet',
|
|
'value': 'devnet'},
|
|
'datasource': '$datasource',
|
|
'hide': 1,
|
|
'includeAll': False,
|
|
'label': 'Testnet',
|
|
'multi': False,
|
|
'name': 'testnet',
|
|
'options': [],
|
|
'query': 'show databases',
|
|
'refresh': 1,
|
|
'regex': '(devnet|tds|mainnet-beta|testnet.*)',
|
|
'sort': 1,
|
|
'tagValuesQuery': '',
|
|
'tags': [],
|
|
'tagsQuery': '',
|
|
'type': 'query',
|
|
'useTags': False},
|
|
{'allValue': ".*",
|
|
'datasource': '$datasource',
|
|
'hide': 0,
|
|
'includeAll': True,
|
|
'label': 'HostID',
|
|
'multi': False,
|
|
'name': 'hostid',
|
|
'options': [],
|
|
'query': 'SELECT DISTINCT(\"id\") FROM \"$testnet\".\"autogen\".\"validator-new\" ',
|
|
'refresh': 2,
|
|
'regex': '',
|
|
'sort': 1,
|
|
'tagValuesQuery': '',
|
|
'tags': [],
|
|
'tagsQuery': '',
|
|
'type': 'query',
|
|
'useTags': False}]
|
|
|
|
with open(dashboard_json, 'w') as write_file:
|
|
json.dump(data, write_file, indent=2)
|