35 lines
861 B
Python
35 lines
861 B
Python
import os
|
|
import yaml
|
|
import sys
|
|
|
|
|
|
def parse_targets(targets_str):
|
|
if not targets_str: return None
|
|
|
|
output = []
|
|
targets = targets_str.split(',')
|
|
for target in targets:
|
|
alias, host = target.split('/')
|
|
addr, port = host.split(':')
|
|
|
|
output.append({
|
|
'targets': ['%s:%s' % (addr, port)],
|
|
'labels': {
|
|
'alias': alias,
|
|
'type': 'cardano-node'
|
|
}
|
|
})
|
|
return output
|
|
|
|
in_file = sys.argv[1]
|
|
out_file = sys.argv[2]
|
|
targets = parse_targets(os.environ.get('TARGETS'))
|
|
if targets:
|
|
with open(in_file) as file:
|
|
config = yaml.full_load(file)
|
|
print(config)
|
|
print(targets)
|
|
config['scrape_configs'][0]['static_configs'] = targets
|
|
|
|
with open(out_file, 'w') as _file:
|
|
documents = yaml.dump(config, _file) |