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
1diff --git a/charm/launchpad-appserver/reactive/launchpad-appserver.py b/charm/launchpad-appserver/reactive/launchpad-appserver.py
2index c5fac0e..a7d59f6 100644
3--- a/charm/launchpad-appserver/reactive/launchpad-appserver.py
4+++ b/charm/launchpad-appserver/reactive/launchpad-appserver.py
5@@ -11,7 +11,14 @@ from charms.launchpad.base import (
6 get_service_config,
7 lazr_config_files,
8 )
9-from charms.reactive import helpers, set_state, when, when_not
10+from charms.reactive import (
11+ clear_flag,
12+ helpers,
13+ set_flag,
14+ set_state,
15+ when,
16+ when_not,
17+)
18 from ols import base
19
20
21@@ -106,3 +113,33 @@ def configure():
22 @when("service.configured")
23 def check_is_running():
24 hookenv.status_set("active", "Ready")
25+
26+
27+@when("nrpe-external-master.available", "service.configured")
28+@when_not("launchpad.appserver.nrpe-external-master.published")
29+def nrpe_available(nrpe):
30+ config = hookenv.config()
31+ healthy_regex = (
32+ r"(\/\+icing\/rev[0-9a-f]+\/).*(Is your project registered yet\?)"
33+ )
34+ nrpe.add_check(
35+ [
36+ "/usr/lib/nagios/plugins/check_http",
37+ "-H",
38+ "localhost",
39+ "-p",
40+ str(config["port_main"]),
41+ "-l",
42+ "--regex=%s" % healthy_regex,
43+ ],
44+ name="check_launchpad_appserver",
45+ description="Launchpad appserver",
46+ context=config["nagios_context"],
47+ )
48+ set_flag("launchpad.appserver.nrpe-external-master.published")
49+
50+
51+@when("launchpad.appserver.nrpe-external-master.published")
52+@when_not("nrpe-external-master.available")
53+def nrpe_unavailable():
54+ clear_flag("launchpad.appserver.nrpe-external-master.published")

Subscribers

People subscribed via source and target branches

to status/vote changes: