From 91782663d5721f92fab3411a9e93ccc4fc70f60c Mon Sep 17 00:00:00 2001 From: Simon Pasquier Date: Fri, 8 Sep 2017 11:36:06 +0200 Subject: [PATCH] Enable telemetry for InfluxDB relay Change-Id: If71d9b198c7396a4812f4b624a5e1709de63256a --- README.rst | 5 +++++ influxdb/files/influxdb-relay.conf | 7 ++++++- influxdb/map.jinja | 1 + influxdb/meta/prometheus.yml | 27 +++++++++++++++++++++++++-- metadata/service/relay/cluster.yml | 5 +++++ tests/pillar/relay.sls | 5 +++++ 6 files changed, 47 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index ab729ac..a27364f 100644 --- a/README.rst +++ b/README.rst @@ -271,6 +271,11 @@ InfluxDB relay with HTTP outputs: influxdb: relay: enabled: true + telemetry: + enabled: true + bind: + address: 127.0.0.1 + port: 9196 listen: http_backend: type: http diff --git a/influxdb/files/influxdb-relay.conf b/influxdb/files/influxdb-relay.conf index 6d173a8..06fd210 100644 --- a/influxdb/files/influxdb-relay.conf +++ b/influxdb/files/influxdb-relay.conf @@ -2,6 +2,11 @@ {%- if relay.get('enabled') %} +{%- if relay.telemetry.get('enabled') %} +[telemetry] +bind-addr = "{{ relay.telemetry.bind.get('address', '') }}:{{ relay.telemetry.bind.port }}" +{%- endif %} + {%- for name, listen in relay.listen.iteritems()|sort %} {%- if listen.get('enabled', True) and listen.get('type', 'http') in ('http', 'udp') %} @@ -9,7 +14,7 @@ {%- set listen_type = listen.get('type', 'http') %} [[{{ listen_type }}]] name = "{{ name }}" -bind-addr = "{{ listen.bind.get('address', '0.0.0.0') }}:{{ listen.bind.port }}" +bind-addr = "{{ listen.bind.get('address', '') }}:{{ listen.bind.port }}" {%- if listen_type == 'http' and listen.default_retention_policy is defined %} default-retention-policy = "{{ listen.default_retention_policy }}" {%- endif %} diff --git a/influxdb/map.jinja b/influxdb/map.jinja index 88ba241..47a9c00 100644 --- a/influxdb/map.jinja +++ b/influxdb/map.jinja @@ -54,5 +54,6 @@ default: 'pkgs': ['influxdb-relay'], 'service': 'influxdb-relay', 'listen': {}, + 'telemetry': {}, }, }, merge=salt['pillar.get']('influxdb:relay')) %} diff --git a/influxdb/meta/prometheus.yml b/influxdb/meta/prometheus.yml index 54a8b13..ea66b51 100644 --- a/influxdb/meta/prometheus.yml +++ b/influxdb/meta/prometheus.yml @@ -1,7 +1,7 @@ {%- if pillar.influxdb.server is defined %} -{%- from "influxdb/map.jinja" import server, monitoring with context %} +{%- from "influxdb/map.jinja" import server, relay, monitoring with context %} -{%- if server.get('enabled', False) %} +{%- if server.get('enabled', False) or relay.get('enabled') %} server: alert: {%- if server.get('http', {}).get('enabled', False) %} @@ -71,5 +71,28 @@ server: summary: 'Influxdb too many dropped writes' description: '{{ printf `%.1f` $value }}% of written points have been dropped on {{ $labels.host }} (threshold={%- endraw %}{{ influx_http_points_written_dropped_threshold }}).' {%- endif %} + +{%- if relay.get('enabled') and relay.telemetry.get('enabled') %} + +{%- set addresses = [] %} +{%- if relay.telemetry.get('bind', {}).address is defined and not relay.telemetry.bind.address.startswith('127') and relay.telemetry.bind.address != '0.0.0.0' %} +{%- do addresses.append(relay.telemetry.bind.address) %} +{%- endif %} +{%- for address in grains['fqdn_ip4'] %} +{%- if not address.startswith('127') %} +{%- do addresses.append(address) %} +{%- endif %} +{%- endfor %} + + target: + static: + influxdb_relay: + enabled: true + endpoint: + - address: {{ addresses[0] }} + port: {{ relay.telemetry.bind.port }} + +{%- endif %} + {%- endif %} {%- endif %} diff --git a/metadata/service/relay/cluster.yml b/metadata/service/relay/cluster.yml index 4708ea3..0dbe9b4 100644 --- a/metadata/service/relay/cluster.yml +++ b/metadata/service/relay/cluster.yml @@ -11,6 +11,11 @@ parameters: influxdb: relay: enabled: true + telemetry: + enabled: true + bind: + address: ${_param:cluster_local_address} + port: 9196 listen: http: type: http diff --git a/tests/pillar/relay.sls b/tests/pillar/relay.sls index 7da8b73..cf7e866 100644 --- a/tests/pillar/relay.sls +++ b/tests/pillar/relay.sls @@ -1,6 +1,11 @@ influxdb: relay: enabled: true + telemetry: + enabled: true + bind: + address: 127.0.0.1 + port: 9196 listen: http_backend: type: http -- 2.32.7