Merge lp:~jacekn/mojo/mojo-specs into lp:mojo/mojo-specs

Proposed by Jacek Nykis
Status: Merged
Approved by: Tom Haddon
Approved revision: no longer in the source branch.
Merged at revision: 108
Proposed branch: lp:~jacekn/mojo/mojo-specs
Merge into: lp:mojo/mojo-specs
Diff against target: 172 lines (+117/-17)
3 files modified
charm-testing/prometheus2/collect (+24/-4)
charm-testing/prometheus2/deploy (+79/-8)
charm-testing/prometheus2/post-deploy (+14/-5)
To merge this branch: bzr merge lp:~jacekn/mojo/mojo-specs
Reviewer Review Type Date Requested Status
Tom Haddon Approve
Review via email: mp+348674@code.launchpad.net

Commit message

Improve prometheus charm-testing spec so that it verifies relations

To post a comment you must log in.
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

This merge proposal is being monitored by mergebot. Change the status to Approved to merge.

Revision history for this message
Tom Haddon (mthaddon) wrote :

Per IRC, the charm testing directory needs to be named the same as the charm for the upgrade-charm stuff to automagically work (i.e. charm-testing/prometheus2).

Revision history for this message
Tom Haddon (mthaddon) wrote :

LGTM, thx

review: Approve
lp:~jacekn/mojo/mojo-specs updated
108. By Jacek Nykis

Improve prometheus charm-testing spec so that it verifies relations

Reviewed-on: https://code.launchpad.net/~jacekn/mojo/mojo-specs/+merge/348674
Reviewed-by: Tom Haddon <email address hidden>

Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

Change successfully merged at revision 108

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== renamed directory 'charm-testing/prometheus' => 'charm-testing/prometheus2'
2=== modified file 'charm-testing/prometheus2/collect'
3--- charm-testing/prometheus/collect 2018-01-23 00:08:06 +0000
4+++ charm-testing/prometheus2/collect 2018-06-28 13:56:55 +0000
5@@ -1,5 +1,25 @@
6 # Services, primary charms
7-prometheus cs:prometheus
8-
9-# subordinates
10-nrpe cs:nrpe
11+prometheus2 cs:prometheus2
12+prometheus-pushgateway cs:prometheus-pushgateway
13+prometheus-alertmanager cs:prometheus-alertmanager
14+prometheus-snmp-exporter cs:prometheus-snmp-exporter
15+prometheus-blackbox-exporter cs:prometheus-blackbox-exporter
16+grafana cs:grafana
17+
18+# NOTE: subordinates, no basenode needed
19+nrpe cs:nrpe
20+telegraf cs:telegraf
21+
22+# basenode/ mappings
23+prometheus2/exec.d @
24+prometheus2/exec.d/basenode lp:~canonical-sysadmins/basenode/trunk
25+prometheus-pushgateway/exec.d @
26+prometheus-pushgateway/exec.d/basenode lp:~canonical-sysadmins/basenode/trunk
27+prometheus-alertmanager/exec.d @
28+prometheus-alertmanager/exec.d/basenode lp:~canonical-sysadmins/basenode/trunk
29+prometheus-snmp-exporter/exec.d @
30+prometheus-snmp-exporter/exec.d/basenode lp:~canonical-sysadmins/basenode/trunk
31+prometheus-blackbox-exporter/exec.d @
32+prometheus-blackbox-exporter/exec.d/basenode lp:~canonical-sysadmins/basenode/trunk
33+grafana/exec.d @
34+grafana/exec.d/basenode lp:~canonical-sysadmins/basenode/trunk
35
36=== modified file 'charm-testing/prometheus2/deploy'
37--- charm-testing/prometheus/deploy 2018-01-23 00:08:06 +0000
38+++ charm-testing/prometheus2/deploy 2018-06-28 13:56:55 +0000
39@@ -1,16 +1,87 @@
40 prometheus:
41 series: {{series}}
42 services:
43- prometheus:
44- charm: prometheus
45- expose: true
46- options:
47- prometheus_registration_authtoken: "testing"
48- external_url: "http://prometheus.testing.local/"
49+ prometheus2:
50+ charm: prometheus2
51+ expose: true
52+ options:
53+ scrape-interval: 20s
54+ prometheus_registration_listen: 0.0.0.0
55+ daemon-args: --storage.tsdb.retention=9d
56+ expose: true
57+ grafana:
58+ charm: grafana
59+ expose: true
60+ options:
61+ anonymous: True
62+ install_file: http://archive.admin.canonical.com/other/grafana/grafana_latest_amd64.deb
63+ prometheus-pushgateway:
64+ charm: prometheus-pushgateway
65+ expose: true
66+ prometheus-alertmanager:
67+ charm: prometheus-alertmanager
68+ expose: true
69+ options:
70+ smtp_from: alertmanager@prometheus.internal
71+ prometheus-snmp-exporter:
72+ charm: prometheus-snmp-exporter
73+ expose: true
74+ options:
75+ snmp_community: dummy
76+ prometheus-blackbox-exporter:
77+ charm: prometheus-blackbox-exporter
78+ expose: true
79+ options:
80+ modules: |
81+ http_2xx:
82+ http:
83+ method: GET
84+ prober: http
85+ timeout: 10s
86+ tcp_connect:
87+ prober: tcp
88+ timeout: 10s
89+ telegraf:
90+ charm: telegraf
91+ options:
92+ interval: 15s
93+ flush_jitter: '5s'
94+ flush_interval: '16s'
95+ tags: "environment=devel"
96+ hostname: 'UNIT_NAME'
97+ extra_options: |
98+ inputs:
99+ cpu:
100+ percpu: true
101+ fielddrop: ["time_*"]
102+ net:
103+ interfaces: ["eth0"]
104+ fielddrop: ["icmp*", "udp*", "tcp_*", "ip_*"]
105+ disk:
106+ ignore_fs: ["tmpfs", "devtmpfs"]
107+ diskio:
108+ skip_serial_number: true
109 nrpe:
110 charm: nrpe
111 {% if series == "xenial" %}options:
112 swap: '-w 90% -c 75% -n OK'{% endif %}
113+ relations:
114+ - ["telegraf:juju-info", "prometheus2:juju-info"]
115+ - ["telegraf:juju-info", "prometheus-pushgateway"]
116+ - ["telegraf:juju-info", "prometheus-alertmanager"]
117+ - ["telegraf:juju-info", "prometheus-snmp-exporter"]
118+ - ["telegraf:juju-info", "prometheus-blackbox-exporter"]
119+ - ["telegraf:juju-info", "grafana"]
120+ - ["nrpe", "prometheus2"]
121+ - ["nrpe", "prometheus-pushgateway"]
122+ - ["nrpe", "prometheus-alertmanager"]
123+ - ["nrpe", "prometheus-snmp-exporter"]
124+ - ["nrpe", "prometheus-blackbox-exporter"]
125+ - ["nrpe", "grafana"]
126
127- relations:
128- - ["prometheus:nrpe-external-master", "nrpe:nrpe-external-master"]
129+ - ["prometheus2:grafana-source", "grafana:grafana-source"]
130+ - ["prometheus2:target", "prometheus-pushgateway"]
131+ - ["prometheus2:alertmanager-service", "prometheus-alertmanager:alertmanager-service"]
132+ - ["prometheus2:snmp-exporter", "prometheus-snmp-exporter:snmp-exporter"]
133+ - ["prometheus2:blackbox-exporter", "prometheus-blackbox-exporter:blackbox-exporter"]
134+ - ["prometheus2:target", "telegraf:prometheus-client"]
135
136=== modified file 'charm-testing/prometheus2/post-deploy'
137--- charm-testing/prometheus/post-deploy 2018-01-23 00:08:06 +0000
138+++ charm-testing/prometheus2/post-deploy 2018-06-28 13:56:55 +0000
139@@ -1,9 +1,9 @@
140 #!/bin/bash
141
142-PROMETHEUS=$(juju status --format=yaml prometheus 2>&1 | sed -nr '/^ {8}public-address/s/.*://p')
143+PROMETHEUS=$(juju status --format=yaml prometheus2 2>&1 | sed -nr '/^ {8}public-address/s/.*://p')
144
145 if [ -z "${PROMETHEUS}" ]; then
146- echo "No prometheus instances"
147+ echo "No prometheus2 instances"
148 exit 1
149 fi
150
151@@ -18,9 +18,18 @@
152 echo "####################"
153 exit 1
154 fi
155+ echo "Calling unit to ensure telegraf targets were registered correctly"
156+ echo 'curl -f -s -S -g http://${UNIT}:9090/api/v1/query?query=up{job=\"telegraf\"}|grep telegraf'
157+ curl -f -s -S -g http://${UNIT}:9090/api/v1/query?query=up{job=\"telegraf\"}|grep telegraf
158+ if [ $? -ne 0 ]; then
159+ echo "####################"
160+ echo "# E2E Check Failed #"
161+ echo "####################"
162+ exit 1
163+ fi
164 done
165
166 # If we are here it means no checks failed
167-echo "####################"
168-echo "# E2E Check Passed #"
169-echo "####################"
170+echo "#####################"
171+echo "# E2E Checks Passed #"
172+echo "#####################"

Subscribers

People subscribed via source and target branches

to all changes: