Merge "Add memcached input"
diff --git a/metadata/service/agent/input/http_listener.yml b/metadata/service/agent/input/http_listener.yml
new file mode 100644
index 0000000..a5ff0c6
--- /dev/null
+++ b/metadata/service/agent/input/http_listener.yml
@@ -0,0 +1,11 @@
+parameters:
+  telegraf:
+    agent:
+      input:
+        http_listener:
+          bind:
+            address: 127.0.0.1
+            port: 8186
+          read_timeout: 10s
+          write_timeout: 10s
+          tagexclude: ['hostname']
diff --git a/metadata/service/agent/remote.yml b/metadata/service/agent/remote/init.yml
similarity index 100%
rename from metadata/service/agent/remote.yml
rename to metadata/service/agent/remote/init.yml
diff --git a/metadata/service/agent/remote/input/http_listener.yml b/metadata/service/agent/remote/input/http_listener.yml
new file mode 100644
index 0000000..5413c4f
--- /dev/null
+++ b/metadata/service/agent/remote/input/http_listener.yml
@@ -0,0 +1,11 @@
+parameters:
+  telegraf:
+    remote_agent:
+      input:
+        http_listener:
+          bind:
+            address: 0.0.0.0
+            port: 8186
+          read_timeout: 10s
+          write_timeout: 10s
+          tagexclude: ['hostname']
diff --git a/telegraf/agent.sls b/telegraf/agent.sls
index 5f83274..3b677bc 100644
--- a/telegraf/agent.sls
+++ b/telegraf/agent.sls
@@ -34,10 +34,8 @@
     - template: jinja
     - require:
       - pkg: telegraf_packages_agent
-    {%- if not grains.get('noservices', False)%}
     - watch_in:
       - service: telegraf_service_agent
-    {%- endif %}
     - defaults:
         name: {{ name }}
         values: {{ values }}
@@ -58,10 +56,8 @@
     - name: {{ agent.dir.config_d }}/input-{{ name }}.conf
     - require:
       - pkg: telegraf_packages_agent
-    {%- if not grains.get('noservices', False)%}
     - watch_in:
       - service: telegraf_service_agent
-    {%- endif %}
 {%- endif %}
 
 {%- endfor %}
@@ -78,25 +74,22 @@
     - template: jinja
     - require:
       - pkg: telegraf_packages_agent
-    {%- if not grains.get('noservices', False)%}
     - watch_in:
       - service: telegraf_service_agent
-    {%- endif %}
     - defaults:
         name: {{ name }}
         values: {{ values }}
 
 {%- endfor %}
 
-{%- if not grains.get('noservices', False)%}
-
 telegraf_service_agent:
   service.running:
     - name: telegraf
     - enable: True
+    {%- if grains.get('noservices') %}
+    - onlyif: /bin/false
+    {%- endif %}
     - watch:
       - file: telegraf_config_agent
 
 {%- endif %}
-
-{%- endif %}
diff --git a/telegraf/files/input/http_listener.conf b/telegraf/files/input/http_listener.conf
new file mode 100644
index 0000000..41f106b
--- /dev/null
+++ b/telegraf/files/input/http_listener.conf
@@ -0,0 +1,6 @@
+[[inputs.http_listener]]
+ service_address = "{{ values.get('bind', {}).address|default('127.0.0.1') }}:{{ values.get('bind', {}).port|default('8186') }}"
+ read_timeout = "{{ values.get('read_timeout', '10s') }}"
+ write_timeout = "{{ values.get('write_timeout', '10s') }}"
+
+{%- include 'telegraf/files/input/_tags.conf' %}
diff --git a/telegraf/remote_agent.sls b/telegraf/remote_agent.sls
index 5442d53..ca83129 100644
--- a/telegraf/remote_agent.sls
+++ b/telegraf/remote_agent.sls
@@ -30,7 +30,7 @@
     - context:
       agent: {{ remote_agent }}
 
-{%- set remote_agent_inputs = {'input': {}} %}
+{%- set remote_agent_inputs = {'input': remote_agent.input} %}
 {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
   {%- set remote_agent_input = node_grains.get('telegraf', {}).get('remote_agent', {}).get('input', {}) %}
   {%- if remote_agent_input %}