[MediaWiki-commits] [Gerrit] operations/puppet[production]: prometheus: optionally print labs targets according to format()
Filippo Giunchedi has submitted this change and it was merged. Change subject: prometheus: optionally print labs targets according to format() .. prometheus: optionally print labs targets according to format() Useful to preview what will be scraped by Prometheus, with e.g. --print-format "http://{name}:{port}/metrics; Change-Id: I43751b3d37be3572e7390e936a7480b6917cdde8 --- M modules/prometheus/files/usr/local/bin/prometheus-labs-targets 1 file changed, 25 insertions(+), 2 deletions(-) Approvals: Filippo Giunchedi: Looks good to me, approved jenkins-bot: Verified diff --git a/modules/prometheus/files/usr/local/bin/prometheus-labs-targets b/modules/prometheus/files/usr/local/bin/prometheus-labs-targets index a158382..6b56e85 100755 --- a/modules/prometheus/files/usr/local/bin/prometheus-labs-targets +++ b/modules/prometheus/files/usr/local/bin/prometheus-labs-targets @@ -12,6 +12,16 @@ import yaml +HELP_EPILOG = """ + +The --print-format option accepts .format()-style strings, some examples +can be found at https://docs.python.org/3/library/string.html#format-examples + +For example list all default scraping URLs: + --print-format "http://{name}:{port}/metrics; +""" + + def project_instances(project): req = urllib.request.urlopen( 'https://wikitech.wikimedia.org/w/api.php?' + @@ -31,9 +41,12 @@ def main(): -parser = argparse.ArgumentParser() +parser = argparse.ArgumentParser(epilog=HELP_EPILOG, +formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('--project', dest='project') parser.add_argument('--port', dest='port', default='9100') +parser.add_argument('--print-format', dest='print_format', default=None, +metavar='FMT', help='Print each host according to FMT') parser.add_argument( '--prefix', help='Only output targets for instances that match this prefix', @@ -50,13 +63,23 @@ return 1 scrape_configs = [] +format_lines = [] targets = {'targets': []} for instance in project_instances(args.project): if instance['name'].startswith(args.prefix): targets['targets'].append("%s:%s" % (instance['name'], args.port)) +if args.print_format: +print_args = {'hostname': instance['name'], + 'port': args.port, + 'project': args.project} +format_lines.append(args.print_format.format(**print_args)) targets['targets'] = sorted(targets['targets']) scrape_configs.append(targets) -print(yaml.dump(scrape_configs, default_flow_style=False)) + +if args.print_format: +print('\n'.join(format_lines)) +else: +print(yaml.dump(scrape_configs, default_flow_style=False)) if __name__ == '__main__': -- To view, visit https://gerrit.wikimedia.org/r/311099 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I43751b3d37be3572e7390e936a7480b6917cdde8 Gerrit-PatchSet: 2 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Filippo GiunchediGerrit-Reviewer: Filippo Giunchedi Gerrit-Reviewer: jenkins-bot <> ___ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
[MediaWiki-commits] [Gerrit] operations/puppet[production]: prometheus: optionally print labs targets according to format()
Filippo Giunchedi has uploaded a new change for review. https://gerrit.wikimedia.org/r/311099 Change subject: prometheus: optionally print labs targets according to format() .. prometheus: optionally print labs targets according to format() Useful to preview what will be scraped by Prometheus, with e.g. --print-format "http://{name}:{port}/metrics; Change-Id: I43751b3d37be3572e7390e936a7480b6917cdde8 --- M modules/prometheus/files/usr/local/bin/prometheus-labs-targets 1 file changed, 25 insertions(+), 2 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/99/311099/1 diff --git a/modules/prometheus/files/usr/local/bin/prometheus-labs-targets b/modules/prometheus/files/usr/local/bin/prometheus-labs-targets index a158382..6b56e85 100755 --- a/modules/prometheus/files/usr/local/bin/prometheus-labs-targets +++ b/modules/prometheus/files/usr/local/bin/prometheus-labs-targets @@ -12,6 +12,16 @@ import yaml +HELP_EPILOG = """ + +The --print-format option accepts .format()-style strings, some examples +can be found at https://docs.python.org/3/library/string.html#format-examples + +For example list all default scraping URLs: + --print-format "http://{name}:{port}/metrics; +""" + + def project_instances(project): req = urllib.request.urlopen( 'https://wikitech.wikimedia.org/w/api.php?' + @@ -31,9 +41,12 @@ def main(): -parser = argparse.ArgumentParser() +parser = argparse.ArgumentParser(epilog=HELP_EPILOG, +formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('--project', dest='project') parser.add_argument('--port', dest='port', default='9100') +parser.add_argument('--print-format', dest='print_format', default=None, +metavar='FMT', help='Print each host according to FMT') parser.add_argument( '--prefix', help='Only output targets for instances that match this prefix', @@ -50,13 +63,23 @@ return 1 scrape_configs = [] +format_lines = [] targets = {'targets': []} for instance in project_instances(args.project): if instance['name'].startswith(args.prefix): targets['targets'].append("%s:%s" % (instance['name'], args.port)) +if args.print_format: +print_args = {'hostname': instance['name'], + 'port': args.port, + 'project': args.project} +format_lines.append(args.print_format.format(**print_args)) targets['targets'] = sorted(targets['targets']) scrape_configs.append(targets) -print(yaml.dump(scrape_configs, default_flow_style=False)) + +if args.print_format: +print('\n'.join(format_lines)) +else: +print(yaml.dump(scrape_configs, default_flow_style=False)) if __name__ == '__main__': -- To view, visit https://gerrit.wikimedia.org/r/311099 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I43751b3d37be3572e7390e936a7480b6917cdde8 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Filippo Giunchedi___ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits