Merge ~jacekn/prometheus-charm:lp1610928 into prometheus-charm:master

Proposed by Jacek Nykis
Status: Merged
Merged at revision: dad7c8bd9f3742d56e35b339d2a6b06ec616b7e9
Proposed branch: ~jacekn/prometheus-charm:lp1610928
Merge into: prometheus-charm:master
Diff against target: 49 lines (+5/-5)
1 file modified
reactive/prometheus.py (+5/-5)
Reviewer Review Type Date Requested Status
David Lawson (community) Approve
Review via email: mp+302941@code.launchpad.net

Description of the change

Stop unnecessary prometheus restarts. Fixes LP1610928
Switch prometheus_registration_listen stanzas to safer config.get method, this also fixes tests

To post a comment you must log in.
Revision history for this message
David Lawson (deej) wrote :

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/reactive/prometheus.py b/reactive/prometheus.py
2index 558bafc..4dfb9cc 100644
3--- a/reactive/prometheus.py
4+++ b/reactive/prometheus.py
5@@ -60,7 +60,7 @@ def install_packages():
6 fetch.apt_update()
7 fetch.apt_install(PKGNAMES)
8 config = hookenv.config()
9- if config['prometheus_registration_listen']:
10+ if config.get('prometheus_registration_listen', False):
11 fetch.apt_install('promreg')
12 remove_state('prometheus.do-install')
13
14@@ -101,7 +101,7 @@ def write_prometheus_config_yml():
15 'evaluation_interval': config['evaluation-interval'],
16 'static_targets': static_targets,
17 'private_address': hookenv.unit_get('private-address'),
18- 'promreg': config['prometheus_registration_listen'] != '',
19+ 'promreg': config.get('prometheus_registration_listen', False),
20 'monitor_name': config.get('monitor_name', default_monitor_name),
21 'jobs': target_jobs,
22 'federate': federate_config,
23@@ -122,7 +122,7 @@ def write_prometheus_config_yml():
24 )
25 validate_config()
26
27- if config['prometheus_registration_listen']:
28+ if config.get('prometheus_registration_listen', False):
29 render(source='promreg.yaml.j2',
30 target='/etc/prometheus/promreg.yaml',
31 context=config,
32@@ -259,7 +259,7 @@ def update_prometheus_no_targets():
33 def update_prometheus_targets(target):
34 services = target.services()
35 related_targets = []
36- for service in services:
37+ for service in sorted(services, key=lambda k: k['service_name']):
38 targets = []
39 for unit in service['hosts']:
40 hookenv.log('{} has a unit {}:{}'.format(
41@@ -268,7 +268,7 @@ def update_prometheus_targets(target):
42 unit['port']), level='debug')
43 targets.append('{hostname}:{port}'.format(**unit))
44 related_targets.append({'job_name': service['service_name'],
45- 'targets': targets})
46+ 'targets': sorted(targets)})
47
48 unitdata.kv().set('target_jobs', related_targets)
49 set_state('prometheus.do-check-reconfig')

Subscribers

People subscribed via source and target branches