Add support for prometheus
Add docker input
Change-Id: Ic8de00d37fecad5e6197f95f5852b60028688191
diff --git a/metadata/service/agent.yml b/metadata/service/agent.yml
index 5c6c2f6..c1501fe 100644
--- a/metadata/service/agent.yml
+++ b/metadata/service/agent.yml
@@ -1,5 +1,7 @@
applications:
- telegraf
+classes:
+ - service.telegraf.support
parameters:
telegraf:
agent:
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
new file mode 100644
index 0000000..a4b5e81
--- /dev/null
+++ b/metadata/service/support.yml
@@ -0,0 +1,5 @@
+parameters:
+ telegraf:
+ _support:
+ prometheus:
+ enabled: true
diff --git a/telegraf/agent.sls b/telegraf/agent.sls
index 04707ab..78a06f4 100644
--- a/telegraf/agent.sls
+++ b/telegraf/agent.sls
@@ -65,6 +65,16 @@
name: {{ name }}
values: {{ values }}
+{%- if name == 'docker' %}
+telegraf_user:
+ user.present:
+ - name: telegraf
+ - groups:
+ - docker
+ - require:
+ - pkg: telegraf_packages
+{%- endif %}
+
{%- endfor %}
{%- for name,values in agent.output.iteritems() %}
diff --git a/telegraf/files/input/docker.conf b/telegraf/files/input/docker.conf
new file mode 100644
index 0000000..8d27a55
--- /dev/null
+++ b/telegraf/files/input/docker.conf
@@ -0,0 +1,11 @@
+[[inputs.{{ name }}]]
+{%- if values is defined %}
+ endpoint = "{{ values.endpoint }}"
+ timeout = "{{ values.timeout }}s"
+{%- if values.perdevice is defined %}
+ perdevice = {{ values.perdevice | lower }}
+{%- endif %}
+{%- if values.total is defined %}
+ total = {{ values.total | lower }}
+{%- endif %}
+{%- endif %}
diff --git a/telegraf/files/telegraf.grain b/telegraf/files/telegraf.grain
index f9625aa..3e3b373 100644
--- a/telegraf/files/telegraf.grain
+++ b/telegraf/files/telegraf.grain
@@ -1,13 +1 @@
-{%- from "telegraf/map.jinja" import agent with context -%}
-{%- if agent.output is defined %}
- {%- if agent.output.prometheus_client is defined %}
- {%- if agent.output.prometheus_client.bind.address == '0.0.0.0' %}
- {%- set address = grains['fqdn_ip4'][0] %}
- {%- else %}
- {%- set address = agent.output.prometheus_client.bind.address %}
- {%- endif %}
- {%- do service_grains['telegraf'].update({'prometheus_client': {'address': address, 'port': agent.output.prometheus_client.bind.port}}) %}
- {%- endif %}
-{%- endif %}
-
{{ service_grains|yaml(False) }}
diff --git a/telegraf/meta/prometheus.yml b/telegraf/meta/prometheus.yml
new file mode 100644
index 0000000..eea9e7a
--- /dev/null
+++ b/telegraf/meta/prometheus.yml
@@ -0,0 +1,20 @@
+{%- from "telegraf/map.jinja" import agent with context -%}
+{%- if agent.output is defined %}
+ {%- if agent.output.prometheus_client is defined %}
+ {%- if agent.output.prometheus_client.bind.address == '0.0.0.0' %}
+ {%- set address = grains['fqdn_ip4'][0] %}
+ {%- else %}
+ {%- set address = agent.output.prometheus_client.bind.address %}
+ {%- endif %}
+ {%- endif %}
+{%- endif %}
+
+{%- if address is defined %}
+server:
+ target:
+ static:
+ telegraf:
+ endpoint:
+ - address: {{ address }}
+ port: {{ agent.output.prometheus_client.bind.port }}
+{%- endif %}
diff --git a/tests/pillar/telegraf_agent.sls b/tests/pillar/telegraf_agent.sls
index c19fdd2..1b8d362 100644
--- a/tests/pillar/telegraf_agent.sls
+++ b/tests/pillar/telegraf_agent.sls
@@ -6,10 +6,6 @@
metric_batch_size: 1000
metric_buffer_limit: 10000
collection_jitter: 2
- input:
- disk:
- processes:
- mem:
output:
prometheus_client:
bind: