Merge ~axino/charm-telegraf/+git/telegraf-charm:sentry_relation into ~telegraf-charmers/charm-telegraf:master

Proposed by Junien F
Status: Merged
Approved by: Jamon Camisso
Approved revision: d619153cd4775ef10de893e42d573bc7a9ee2fe1
Merged at revision: 20517fdf52cfd62d9067de3e398eb89af0862904
Proposed branch: ~axino/charm-telegraf/+git/telegraf-charm:sentry_relation
Merge into: ~telegraf-charmers/charm-telegraf:master
Diff against target: 64 lines (+36/-0)
3 files modified
hooks/relations/sentry-metrics/requires.py (+5/-0)
metadata.yaml (+3/-0)
reactive/telegraf.py (+28/-0)
Reviewer Review Type Date Requested Status
Telegraf Charmers Pending
Review via email: mp+359754@code.launchpad.net

Commit message

add sentry relation

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
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

Change successfully merged at revision 20517fdf52cfd62d9067de3e398eb89af0862904

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/hooks/relations/sentry-metrics/requires.py b/hooks/relations/sentry-metrics/requires.py
2new file mode 100644
3index 0000000..4a3524f
4--- /dev/null
5+++ b/hooks/relations/sentry-metrics/requires.py
6@@ -0,0 +1,5 @@
7+from charms import reactive
8+
9+
10+class SentryEndpoint(reactive.Endpoint):
11+ pass
12diff --git a/metadata.yaml b/metadata.yaml
13index 912f6f5..bf43b34 100644
14--- a/metadata.yaml
15+++ b/metadata.yaml
16@@ -69,6 +69,9 @@ requires:
17 redis:
18 interface: redis
19 scope: container
20+ sentry:
21+ interface: sentry-metrics
22+ scope: container
23 provides:
24 prometheus-client:
25 interface: http
26diff --git a/reactive/telegraf.py b/reactive/telegraf.py
27index b2732f1..964f497 100644
28--- a/reactive/telegraf.py
29+++ b/reactive/telegraf.py
30@@ -619,6 +619,34 @@ def redis_input(redis):
31 set_state('telegraf.needs_reload')
32
33
34+@when('endpoint.sentry.joined')
35+def sentry_input(sentry):
36+ template = """
37+[[inputs.statsd]]
38+ protocol = "udp"
39+ service_address = ":8125"
40+ delete_gauges = false
41+ delete_counters = false
42+ delete_sets = false
43+ delete_timings = false
44+"""
45+ config_path = '{}/{}.conf'.format(get_configs_dir(), 'sentry')
46+
47+ rels = hookenv.relations_of_type('sentry')
48+ if rels:
49+ for rel in rels:
50+ input_config = render_template(template, {}) + \
51+ render_extra_options("inputs", "sentry")
52+ hookenv.log("Updating {} plugin config file".format('sentry'))
53+ host.write_file(config_path, input_config.encode('utf-8'))
54+ set_state('plugins.sentry.configured')
55+ elif os.path.exists(config_path):
56+ os.unlink(config_path)
57+ remove_state('plugins.sentry.configured')
58+
59+ set_state('telegraf.needs_reload')
60+
61+
62 @when('exec.available')
63 def exec_input(exec_rel):
64 template = """

Subscribers

People subscribed via source and target branches

to all changes: