diff --git a/README.rst b/README.rst
index 95be7cc..42ce26d 100644
--- a/README.rst
+++ b/README.rst
@@ -160,6 +160,17 @@
       enabled: true
       external_port: 15012
 
+Install prometheus as service
+-------------------------------------
+
+.. code-block:: yaml
+
+parameters:
+  prometheus:
+    server:
+      is_container: false
+
+
 Documentation and Bugs
 ======================
 
diff --git a/metadata/service/relay/cluster.yml b/metadata/service/relay/cluster.yml
new file mode 100644
index 0000000..73c5e66
--- /dev/null
+++ b/metadata/service/relay/cluster.yml
@@ -0,0 +1,10 @@
+parameters:
+  prometheus:
+    relay:
+      backends:
+      - host: ${_param:cluster_node01_address}
+        port: ${_param:prometheus_server_bind_port}
+      - host: ${_param:cluster_node02_address}
+        port: ${_param:prometheus_server_bind_port}
+      - host: ${_param:cluster_node03_address}
+        port: ${_param:prometheus_server_bind_port}
diff --git a/metadata/service/relay/init.yml b/metadata/service/relay/init.yml
new file mode 100644
index 0000000..31608f8
--- /dev/null
+++ b/metadata/service/relay/init.yml
@@ -0,0 +1,12 @@
+applications:
+  - prometheus
+classes:
+ - service.prometheus.support
+parameters:
+  _param:
+    prometheus_relay_bind_port: 8080
+  prometheus:
+    relay:
+      enabled: true
+      bind:
+        port: ${_param:prometheus_relay_bind_port}
diff --git a/metadata/service/server/container.yml b/metadata/service/server/container.yml
index 663092a..7f170b7 100644
--- a/metadata/service/server/container.yml
+++ b/metadata/service/server/container.yml
@@ -11,6 +11,11 @@
   prometheus:
     server:
       enabled: true
+      is_container: true
+      use_grains:
+        target: true
+        recording: true
+        alert: true
       dir:
         config: /srv/volumes/prometheus/server
         config_in_container: /srv/prometheus
diff --git a/metadata/service/server/standalone.yml b/metadata/service/server/standalone.yml
new file mode 100644
index 0000000..40dbc7f
--- /dev/null
+++ b/metadata/service/server/standalone.yml
@@ -0,0 +1,37 @@
+applications:
+  - prometheus
+classes:
+ - service.prometheus.support
+parameters:
+  _param:
+    prometheus_evaluation_interval: "15s"
+    prometheus_region_label: "region1"
+    prometheus_scrape_interval: "15s"
+    prometheus_storage_retention: "4320h"
+    prometheus_server_bind_port: 9090
+  prometheus:
+    server:
+      enabled: true
+      is_container: false
+      use_grains:
+        target: false
+        recording: false
+        alert: false
+      dir:
+        config: /etc/prometheus
+        data: /var/lib/prometheus/data
+      bind:
+        port: ${_param:prometheus_server_bind_port}
+        address: 0.0.0.0
+      storage:
+        local:
+          retention: ${_param:prometheus_storage_retention}
+      alertmanager:
+        notification_queue_capacity: 10000
+      config:
+        global:
+          scrape_interval: ${_param:prometheus_scrape_interval}
+          scrape_timeout: "15s"
+          evaluation_interval: ${_param:prometheus_evaluation_interval}
+          external_labels:
+            region: ${_param:prometheus_region_label}
diff --git a/prometheus/files/relay/default b/prometheus/files/relay/default
new file mode 100644
index 0000000..953c4c0
--- /dev/null
+++ b/prometheus/files/relay/default
@@ -0,0 +1,10 @@
+{%- from "prometheus/map.jinja" import relay with context %}
+{%- if relay.get("backends") %}
+  {%- set relay_backends = [] %}
+  {%- for backend in relay.backends %}
+    {%- set address = "%s:%d" | format(backend.host, backend.port) %}
+    {%- do relay_backends.append(address) %}
+  {%- endfor %}
+PROMETHEUS_RELAY_BACKENDS={{ relay_backends | join(',') }}
+{%- endif %}
+PROMETHEUS_RELAY_BIND_PORT={{ relay.bind.port }}
diff --git a/prometheus/files/relay/service b/prometheus/files/relay/service
new file mode 100644
index 0000000..a17167f
--- /dev/null
+++ b/prometheus/files/relay/service
@@ -0,0 +1,18 @@
+{%- from "prometheus/map.jinja" import relay with context %}
+[Unit]
+After=network.target
+
+[Service]
+User=root
+EnvironmentFile=-/etc/default/prometheus-relay
+ExecStart=/usr/bin/prometheus-relay \
+    -port=${PROMETHEUS_RELAY_BIND_PORT} \
+{%- if relay.get("backends") %}
+    -urls=${PROMETHEUS_RELAY_BACKENDS}
+{%- endif %}
+ExecReload=/bin/kill -HUP $MAINPID
+Restart=on-failure
+KillMode=control-group
+
+[Install]
+WantedBy=multi-user.target
diff --git a/prometheus/files/server/1.7/alerts.yml b/prometheus/files/server/1.7/alerts.yml
index e0682c7..8610f93 100644
--- a/prometheus/files/server/1.7/alerts.yml
+++ b/prometheus/files/server/1.7/alerts.yml
@@ -1,14 +1,14 @@
-{%- from "prometheus/map.jinja" import server with context %}
-
 {%- set alerts = {} %}
 {%- set recordings = {} %}
 
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
-  {%- set server_grain = node_grains.get('prometheus', {}).get('server', {}) %}
-  {%- for recordingname, recording in server_grain.get('recording', {}).iteritems() %}
-    {%- do recordings.update({recordingname: recording}) %}
+{%- if server.get('use_grains', {}).get('recording', True) %}
+  {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+    {%- set server_grain = node_grains.get('prometheus', {}).get('server', {}) %}
+    {%- for recordingname, recording in server_grain.get('recording', {}).iteritems() %}
+      {%- do recordings.update({recordingname: recording}) %}
+    {%- endfor %}
   {%- endfor %}
-{%- endfor %}
+{%- endif %}
 
 {%- set recordings = salt['grains.filter_by']({'default': recordings}, merge=server.get('recording', {})) %}
 
@@ -18,12 +18,14 @@
   {%- endif %}
 {%- endfor %}
 
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
-  {%- set server_grain = node_grains.get('prometheus', {}).get('server', {}) %}
-  {%- for alertname, alert in server_grain.get('alert', {}).iteritems() %}
+{%- if server.get('use_grains', {}).get('alert', True) %}
+  {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+    {%- set server_grain = node_grains.get('prometheus', {}).get('server', {}) %}
+    {%- for alertname, alert in server_grain.get('alert', {}).iteritems() %}
       {%- do alerts.update({alertname: alert}) %}
+    {%- endfor %}
   {%- endfor %}
-{%- endfor %}
+{%- endif %}
 
 {%- set alerts = salt['grains.filter_by']({'default': alerts}, merge=server.get('alert', {})) %}
 
diff --git a/prometheus/files/server/2.0/alerts.yml b/prometheus/files/server/2.0/alerts.yml
index 7ca88e0..ca38699 100644
--- a/prometheus/files/server/2.0/alerts.yml
+++ b/prometheus/files/server/2.0/alerts.yml
@@ -1,14 +1,14 @@
-{%- from "prometheus/map.jinja" import server with context %}
-
 {%- set alerts = {} %}
 {%- set recordings = {} %}
 
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
-  {%- set server_grain = node_grains.get('prometheus', {}).get('server', {}) %}
-  {%- for recordingname, recording in server_grain.get('recording', {}).iteritems() %}
-    {%- do recordings.update({recordingname: recording}) %}
+{%- if server.get('use_grains', {}).get('recording', True) %}
+  {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+    {%- set server_grain = node_grains.get('prometheus', {}).get('server', {}) %}
+    {%- for recordingname, recording in server_grain.get('recording', {}).iteritems() %}
+      {%- do recordings.update({recordingname: recording}) %}
+    {%- endfor %}
   {%- endfor %}
-{%- endfor %}
+{%- endif %}
 
 groups:
 {%- set recordings = salt['grains.filter_by']({'default': recordings}, merge=server.get('recording', {})) %}
@@ -19,15 +19,19 @@
   - record: {{ recordingname }}
     expr: >-
       {{ recording.query | indent(6, False) }}
+    labels:
+      recording_label: {{ recording.get('label', server.get('recording_label', 'federation')) }}
   {%- endif %}
 {%- endfor %}
 
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
-  {%- set server_grain = node_grains.get('prometheus', {}).get('server', {}) %}
-  {%- for alertname, alert in server_grain.get('alert', {}).iteritems() %}
+{%- if server.get('use_grains', {}).get('alert', True) %}
+  {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+    {%- set server_grain = node_grains.get('prometheus', {}).get('server', {}) %}
+    {%- for alertname, alert in server_grain.get('alert', {}).iteritems() %}
       {%- do alerts.update({alertname: alert}) %}
+    {%- endfor %}
   {%- endfor %}
-{%- endfor %}
+{%- endif %}
 
 {%- set alerts = salt['grains.filter_by']({'default': alerts}, merge=server.get('alert', {})) %}
 - name: alert.rules
diff --git a/prometheus/files/server/default b/prometheus/files/server/default
new file mode 100644
index 0000000..ee921da
--- /dev/null
+++ b/prometheus/files/server/default
@@ -0,0 +1,5 @@
+{% from "prometheus/map.jinja" import server with context %}
+PROMETHEUS_CONFIG_DIR={{ server.dir.config }}
+PROMETHEUS_DATA_DIR={{ server.dir.data }}
+PROMETHEUS_BIND_ADDRESS={{ server.bind.address }}:{{ server.bind.port }}
+PROMETHEUS_STORAGE_LOCAL_RETENTION={{ server.storage.local.retention }}
diff --git a/prometheus/files/server/prometheus.yml b/prometheus/files/server/prometheus.yml
index 0223e35..250235e 100644
--- a/prometheus/files/server/prometheus.yml
+++ b/prometheus/files/server/prometheus.yml
@@ -1,5 +1,3 @@
-{%- from "prometheus/map.jinja" import server with context %}
-
 global:
 {%- if server.get('config', {}).global is defined %}
 {{ server.config.global | yaml(False) | indent(2, true) }}
@@ -38,39 +36,44 @@
 - alerts.yml
 
 {%- set static_target = server.target.static %}
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
-  {%- set static_grain = node_grains.get('prometheus', {}).get('server', {}).get('target', {}).get('static', {}) %}
-  {%- for job_name, job in static_grain.iteritems() %}
-    {%- if static_target[job_name] is not defined %}
-      {%- do static_target.update({job_name: {
-        'enabled': job.get('enabled', True),
-        'metrics_path': job.get('metrics_path', '/metrics'),
-        'scheme': job.get('scheme', 'http')}
-      }) %}
-      {%- if job.get('tls_config') %}
-        {%- do static_target[job_name].update({
-          'tls_config': {
-            'skip_verify': job.get('tls_config', {}).get('skip_verify', False),
-            'cert_name': job.get('tls_config', {}).get('cert_name'),
-            'key_name': job.get('tls_config', {}).get('key_name')
-          }
+{%- if server.get('use_grains', {}).get('target', True) %}
+  {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+    {%- set static_grain = node_grains.get('prometheus', {}).get('server', {}).get('target', {}).get('static', {}) %}
+    {%- for job_name, job in static_grain.iteritems() %}
+      {%- if static_target[job_name] is not defined %}
+        {%- do static_target.update({job_name: {
+          'enabled': job.get('enabled', True),
+          'metrics_path': job.get('metrics_path', '/metrics'),
+          'honor_labels': job.get('honor_labels', False),
+          'scrape_interval': job.get('scrape_interval', server.get('config', {}).get('global', {}).get('scrape_interval', '15s')),
+          'scrape_timeout': job.get('scrape_interval', server.get('config', {}).get('global', {}).get('scrape_interval', '15s')),
+          'scheme': job.get('scheme', 'http')}
         }) %}
+        {%- if job.get('tls_config') %}
+          {%- do static_target[job_name].update({
+            'tls_config': {
+              'skip_verify': job.get('tls_config', {}).get('skip_verify', False),
+              'cert_name': job.get('tls_config', {}).get('cert_name'),
+              'key_name': job.get('tls_config', {}).get('key_name')
+            }
+          }) %}
+        {%- endif %}
       {%- endif %}
-    {%- endif %}
-    {%- if static_target[job_name]['endpoint'] is not defined %}
-      {%- do static_target[job_name].update({'endpoint': []}) %}
-    {%- endif %}
-    {%- if static_target[job_name]['metric_relabel'] is not defined %}
-      {%- do static_target[job_name].update({'metric_relabel': []}) %}
-    {%- endif %}
-    {%- for target in job.get('endpoint', []) %}
-      {%- do static_target[job_name]['endpoint'].append(target) %}
-    {%- endfor %}
-    {%- for label in job.get('metric_relabel', []) %}
-      {%- do static_target[job_name]['metric_relabel'].append(label) %}
+      {%- if static_target[job_name]['endpoint'] is not defined %}
+        {%- do static_target[job_name].update({'endpoint': []}) %}
+      {%- endif %}
+      {%- if static_target[job_name]['metric_relabel'] is not defined %}
+        {%- do static_target[job_name].update({'metric_relabel': []}) %}
+      {%- endif %}
+      {%- for target in job.get('endpoint', []) %}
+        {%- do static_target[job_name]['endpoint'].append(target) %}
+      {%- endfor %}
+      {%- for label in job.get('metric_relabel', []) %}
+        {%- do static_target[job_name]['metric_relabel'].append(label) %}
+      {%- endfor %}
     {%- endfor %}
   {%- endfor %}
-{%- endfor %}
+{%- endif %}
 
 scrape_configs:
 {%- for job_name, job in static_target.iteritems() %}
@@ -83,6 +86,15 @@
   - job_name: {{ job_name }}
     {% if job.get('scheme') %}scheme: {{ job.scheme }}{%- endif %}
     {% if job.get('metrics_path') %}metrics_path: {{ job.metrics_path }}{%- endif %}
+    {% if job.honor_labels is defined %}honor_labels: {{ job.honor_labels }}{%- endif %}
+    {% if job.scrape_interval is defined %}scrape_interval: {{ job.scrape_interval }}{%- endif %}
+    {% if job.scrape_timeout is defined %}scrape_timeout: {{ job.scrape_timeout }}{%- endif %}
+    {%- if job.get('params') %}
+    params:
+      {%- for param_name, param_value in job.get('params', {}).iteritems() %}
+      {{ param_name }}: {{ param_value }}
+      {%- endfor %}
+    {%- endif %}
     {%- if job.get('tls_config') %}
     tls_config:
       {% if job.tls_config.get('skip_verify') is defined %}insecure_skip_verify: {{ job.tls_config.skip_verify | lower }}{%- endif %}
@@ -94,16 +106,25 @@
     {%- if job.get('metric_relabel') %}
     metric_relabel_configs:
       {%- for label in job.get('metric_relabel', []) %}
-        {%- if label.source_labels is string %}
-          {%- set label_list = label.source_labels.split(',') %}
-        {%- elif label.source_labels is list %}
-          {%- set label_list = label.source_labels %}
+      - action: {{ label.get('action', 'replace') }}
+        {%- if label.get('source_labels') %}
+          {%- if label.source_labels is string %}
+            {%- set label_list = label.source_labels.split(',') %}
+          {%- elif label.source_labels is list %}
+            {%- set label_list = label.source_labels %}
+          {%- endif %}
+          {%- if label_list is defined %}
+        source_labels: {{ label_list }}
+          {%- endif %}
         {%- endif %}
-        {%- if label_list is defined %}
-      - source_labels: {{ label_list }}
+        {%- if label.get('regex') %}
         regex: "{{ label.regex }}"
+        {%- endif %}
+        {%- if label.get('target_label') %}
         target_label: "{{ label.target_label }}"
-        replacement: {{ label.replacement }}
+        {%- endif %}
+        {%- if label.get('replacement') %}
+        replacement: "{{ label.replacement }}"
         {%- endif %}
       {%- endfor %}
     {%- endif %}
@@ -111,12 +132,14 @@
 {%- endfor %}
 
 {%- set kubernetes_target = {} %}
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
-  {%- set kubernetes_grain = node_grains.get('prometheus', {}).get('server', {}).get('target', {}).get('kubernetes', {}) %}
-  {%- if kubernetes_grain %}
-    {%- do kubernetes_target.update(kubernetes_grain) %}
-  {%- endif %}
-{%- endfor %}
+{%- if server.get('use_grains', {}).get('target', True) %}
+  {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+    {%- set kubernetes_grain = node_grains.get('prometheus', {}).get('server', {}).get('target', {}).get('kubernetes', {}) %}
+    {%- if kubernetes_grain %}
+      {%- do kubernetes_target.update(kubernetes_grain) %}
+    {%- endif %}
+  {%- endfor %}
+{%- endif %}
 
 {%- if kubernetes_target.get('enabled', False) %}
 
diff --git a/prometheus/files/server/service b/prometheus/files/server/service
new file mode 100644
index 0000000..c1bc00e
--- /dev/null
+++ b/prometheus/files/server/service
@@ -0,0 +1,18 @@
+[Unit]
+Description=Prometheus Server
+Documentation=https://prometheus.io/docs/introduction/overview/
+After=network-online.target
+
+[Service]
+EnvironmentFile=-/etc/default/prometheus
+User=root
+Group=root
+Restart=on-failure
+ExecStart=/usr/bin/prometheus \
+	--web.listen-address=${PROMETHEUS_BIND_ADDRESS} \
+	--config.file=${PROMETHEUS_CONFIG_DIR}/prometheus.yml \
+	--storage.tsdb.path=${PROMETHEUS_DATA_DIR} \
+	--storage.tsdb.retention=${PROMETHEUS_STORAGE_LOCAL_RETENTION}
+
+[Install]
+WantedBy=multi-user.target
diff --git a/prometheus/init.sls b/prometheus/init.sls
index cd31765..73d51ba 100644
--- a/prometheus/init.sls
+++ b/prometheus/init.sls
@@ -1,10 +1,14 @@
-{%- if pillar.prometheus.server is defined or
+{%- if pillar.prometheus.get('server', {}).get('enabled', False) or
+       pillar.prometheus.get('relay', {}).get('enabled', False) or
        pillar.prometheus.alertmanager is defined or
        pillar.prometheus.exporters is defined %}
 include:
-  {%- if pillar.prometheus.server is defined %}
+  {%- if pillar.prometheus.get('server', {}).get('enabled', False) %}
   - prometheus.server
   {%- endif %}
+  {%- if pillar.prometheus.get('relay', {}).get('enabled', False) %}
+  - prometheus.relay
+  {%- endif %}
   {%- if pillar.prometheus.alertmanager is defined %}
   - prometheus.alertmanager
   {%- endif %}
diff --git a/prometheus/map.jinja b/prometheus/map.jinja
index d5c7d9b..8db8b45 100644
--- a/prometheus/map.jinja
+++ b/prometheus/map.jinja
@@ -1,6 +1,7 @@
 {% set server = salt['grains.filter_by']({
   'default': {
     'version': 2.0,
+    'pkgs': ['prometheus-bin'],
     'target': {
       'static': {
       },
@@ -8,6 +9,12 @@
   },
 }, merge=salt['pillar.get']('prometheus:server')) %}
 
+{% set relay = salt['grains.filter_by']({
+  'default': {
+    'pkgs': ['prometheus-relay']
+  },
+}, merge=salt['pillar.get']('prometheus:relay')) %}
+
 {% set alertmanager = salt['grains.filter_by']({
   'default': {
   },
diff --git a/prometheus/relay.sls b/prometheus/relay.sls
new file mode 100644
index 0000000..fe00db4
--- /dev/null
+++ b/prometheus/relay.sls
@@ -0,0 +1,53 @@
+{% from "prometheus/map.jinja" import relay with context %}
+{%- if relay.enabled %}
+
+prometheus_relay_packages:
+  pkg.installed:
+      - names: {{ relay.pkgs }}
+
+prometheus_relay_default_file:
+  file.managed:
+    - name: /etc/default/prometheus-relay
+    - source: salt://prometheus/files/relay/default
+    - template: jinja
+
+{%- if grains.get('init') == 'systemd' %}
+
+prometheus_relay_systemd_config:
+  file.managed:
+    - name: /etc/systemd/system/prometheus-relay.service
+    - source: salt://prometheus/files/relay/service
+    - makedirs: true
+    - user: root
+    - group: root
+    - mode: 644
+    - template: jinja
+    - require:
+      - file: prometheus_relay_default_file
+
+prometheus_relay_restart_systemd:
+  module.wait:
+  - name: service.systemctl_reload
+  - watch:
+    - file: prometheus_relay_systemd_config
+  - watch_in:
+    - service: prometheus_relay_service
+
+{%- endif %}
+
+prometheus_relay_service:
+  service.running:
+    - name: prometheus-relay
+    - enable: True
+    {%- if grains.get('noservices') %}
+    - onlyif: /bin/false
+    {%- endif %}
+    - watch:
+{%- if grains.get('init') == 'systemd' %}
+      - file: prometheus_relay_systemd_config
+{%- endif %}
+      - file: prometheus_relay_default_file
+    - require:
+      - pkg: prometheus_relay_packages
+
+{%- endif %}
diff --git a/prometheus/server.sls b/prometheus/server.sls
index 388ca1d..da4378c 100644
--- a/prometheus/server.sls
+++ b/prometheus/server.sls
@@ -1,30 +1,92 @@
 {% from "prometheus/map.jinja" import server with context %}
 {%- if server.enabled %}
 
-{%- if pillar.docker is defined and pillar.docker.host is defined %}
-
-{{server.dir.config}}:
+prometheus_server_config_dir:
   file.directory:
+    - name: {{ server.dir.config }}
     - makedirs: True
 
-{{server.dir.data}}:
+prometheus_server_data_dir:
   file.directory:
+    - name: {{ server.dir.data }}
     - makedirs: True
     - mode: 755
 
-{{server.dir.config}}/prometheus.yml:
+prometheus_server_config_file:
   file.managed:
-  - source: salt://prometheus/files/server/prometheus.yml
-  - template: jinja
-  - require:
-    - file: {{server.dir.config}}
+    - name: {{ server.dir.config }}/prometheus.yml
+    - source: salt://prometheus/files/server/prometheus.yml
+    - template: jinja
+    - defaults:
+        server: {{ server }}
+    - require:
+      - file: prometheus_server_config_dir
 
-{{server.dir.config}}/alerts.yml:
+prometheus_server_alerts_file:
   file.managed:
-  - source: salt://prometheus/files/server/{{server.version}}/alerts.yml
-  - template: jinja
-  - require:
-    - file: {{server.dir.config}}
+    - name: {{ server.dir.config }}/alerts.yml
+    - source: salt://prometheus/files/server/{{server.version}}/alerts.yml
+    - template: jinja
+    - defaults:
+        server: {{ server }}
+    - require:
+      - file: prometheus_server_config_dir
+
+{%- if not server.get('is_container', True) %}
+
+prometheus_server_packages:
+  pkg.installed:
+  - names: {{ server.pkgs }}
+
+prometheus_server_default_file:
+  file.managed:
+    - name: /etc/default/prometheus
+    - source: salt://prometheus/files/server/default
+    - template: jinja
+    - defaults:
+        server: {{ server }}
+
+{%- if grains.get('init') == 'systemd' %}
+
+prometheus_server_systemd_config:
+  file.managed:
+    - name: /etc/systemd/system/prometheus.service
+    - source: salt://prometheus/files/server/service
+    - makedirs: true
+    - user: root
+    - group: root
+    - mode: 644
+    - template: jinja
+    - require:
+      - file: prometheus_server_default_file
+
+prometheus_server_restart_systemd:
+  module.wait:
+  - name: service.systemctl_reload
+  - watch:
+    - file: prometheus_server_systemd_config
+  - watch_in:
+    - service: prometheus_server_service
 
 {%- endif %}
+
+prometheus_server_service:
+  service.running:
+    - name: prometheus
+    - enable: True
+    {%- if grains.get('noservices') %}
+    - onlyif: /bin/false
+    {%- endif %}
+    - watch:
+{%- if grains.get('init') == 'systemd' %}
+      - file: prometheus_server_systemd_config
+{%- endif %}
+      - file: prometheus_server_config_file
+      - file: prometheus_server_alerts_file
+    - require:
+      - file: prometheus_server_data_dir
+      - pkg: prometheus_server_packages
+
+{%- endif %}
+
 {%- endif %}
