Merge ~cjwatson/launchpad:charm-appserver-nagios into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 7e45f0da4b248d9c38ff098e6f637a2b9678145e
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:charm-appserver-nagios
Merge into: launchpad:master
Diff against target: 54 lines (+38/-1)
1 file modified
charm/launchpad-appserver/reactive/launchpad-appserver.py (+38/-1)
Reviewer Review Type Date Requested Status
Ioana Lasc (community) Approve
Review via email: mp+429653@code.launchpad.net

Commit message

charm: Add a Nagios appserver check

Description of the change

This is based on what we have on production.

To post a comment you must log in.
Revision history for this message
Ioana Lasc (ilasc) wrote :

looks good

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/charm/launchpad-appserver/reactive/launchpad-appserver.py b/charm/launchpad-appserver/reactive/launchpad-appserver.py
index c5fac0e..a7d59f6 100644
--- a/charm/launchpad-appserver/reactive/launchpad-appserver.py
+++ b/charm/launchpad-appserver/reactive/launchpad-appserver.py
@@ -11,7 +11,14 @@ from charms.launchpad.base import (
11 get_service_config,11 get_service_config,
12 lazr_config_files,12 lazr_config_files,
13)13)
14from charms.reactive import helpers, set_state, when, when_not14from charms.reactive import (
15 clear_flag,
16 helpers,
17 set_flag,
18 set_state,
19 when,
20 when_not,
21)
15from ols import base22from ols import base
1623
1724
@@ -106,3 +113,33 @@ def configure():
106@when("service.configured")113@when("service.configured")
107def check_is_running():114def check_is_running():
108 hookenv.status_set("active", "Ready")115 hookenv.status_set("active", "Ready")
116
117
118@when("nrpe-external-master.available", "service.configured")
119@when_not("launchpad.appserver.nrpe-external-master.published")
120def nrpe_available(nrpe):
121 config = hookenv.config()
122 healthy_regex = (
123 r"(\/\+icing\/rev[0-9a-f]+\/).*(Is your project registered yet\?)"
124 )
125 nrpe.add_check(
126 [
127 "/usr/lib/nagios/plugins/check_http",
128 "-H",
129 "localhost",
130 "-p",
131 str(config["port_main"]),
132 "-l",
133 "--regex=%s" % healthy_regex,
134 ],
135 name="check_launchpad_appserver",
136 description="Launchpad appserver",
137 context=config["nagios_context"],
138 )
139 set_flag("launchpad.appserver.nrpe-external-master.published")
140
141
142@when("launchpad.appserver.nrpe-external-master.published")
143@when_not("nrpe-external-master.available")
144def nrpe_unavailable():
145 clear_flag("launchpad.appserver.nrpe-external-master.published")

Subscribers

People subscribed via source and target branches

to status/vote changes: