Filippo Giunchedi has submitted this change and it was merged.

Change subject: graphite: add metric tapping
......................................................................


graphite: add metric tapping

one of the advantages of carbon-c-relay is to be able to tap or route metrics
around, thus provide basic support for doing both.

Change-Id: I0cc11f17337790bde0af225cc1621a633d9054e0
---
M modules/graphite/manifests/carbon_c_relay.pp
M modules/graphite/manifests/init.pp
M modules/graphite/templates/frontend-relay.conf.erb
3 files changed, 26 insertions(+), 1 deletion(-)

Approvals:
  Ori.livneh: Looks good to me, but someone else must approve
  Filippo Giunchedi: Verified; Looks good to me, approved



diff --git a/modules/graphite/manifests/carbon_c_relay.pp 
b/modules/graphite/manifests/carbon_c_relay.pp
index a32a5e5..55baf63 100644
--- a/modules/graphite/manifests/carbon_c_relay.pp
+++ b/modules/graphite/manifests/carbon_c_relay.pp
@@ -7,7 +7,11 @@
 # * local-relay: takes metrics on port 1903 and forwards to all configured
 # carbon-cache processes on the local machine ('carbon-cache' list in config)
 # * frontend-relay: listen on standard port 2003 and mirror metrics to all
-# configured backends ('backends' list in config)
+# configured backends ('backends' list in config).
+#
+# The frontend also supports metric tapping ('teeing' data inline) and
+# metric routing (no duplication) to specific clusters. Respectively via
+# 'cluster_tap' and 'cluster_routes' maps c_relay_settings.
 #
 class graphite::carbon_c_relay( $c_relay_settings ) {
     package { 'carbon-c-relay':
diff --git a/modules/graphite/manifests/init.pp 
b/modules/graphite/manifests/init.pp
index c9b36f1..f95aff0 100644
--- a/modules/graphite/manifests/init.pp
+++ b/modules/graphite/manifests/init.pp
@@ -44,6 +44,8 @@
             'backends' => [
                 'localhost:1903',
             ],
+            'cluster_tap' => {},
+            'cluster_routes' => {},
     }
 
     class { '::graphite::carbon_c_relay':
diff --git a/modules/graphite/templates/frontend-relay.conf.erb 
b/modules/graphite/templates/frontend-relay.conf.erb
index 2f95734..59ef7de 100644
--- a/modules/graphite/templates/frontend-relay.conf.erb
+++ b/modules/graphite/templates/frontend-relay.conf.erb
@@ -5,6 +5,25 @@
   <% end -%>
   ;
 
+
+<% @c_relay_settings['cluster_tap'].each do |tap| -%>
+# duplicate (tap) this metric to <%= tap[1] %>
+match <%= tap[0] %>
+  send to <%= tap[1] %>
+  ;
+
+<% end -%>
+
+<% @c_relay_settings['cluster_routes'].each do |route| -%>
+# route this metric to <%= route[1] %>, don't send to backends
+match <%= route[0] %>
+  send to <%= route[1] %>
+  stop
+  ;
+
+<% end -%>
+
+# catch-all, send to backends if it made this far
 match *
   send to backends
   ;

-- 
To view, visit https://gerrit.wikimedia.org/r/243906
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0cc11f17337790bde0af225cc1621a633d9054e0
Gerrit-PatchSet: 6
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Filippo Giunchedi <fgiunch...@wikimedia.org>
Gerrit-Reviewer: Chasemp <r...@wikimedia.org>
Gerrit-Reviewer: Filippo Giunchedi <fgiunch...@wikimedia.org>
Gerrit-Reviewer: Ori.livneh <o...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to