diff --git a/functions b/functions
index 900377e4f72486f6699ecf736f96adfbc04e92da..e8a049414bca2b14b158444dac1b94c2ca90d9be 160000
--- a/functions
+++ b/functions
@@ -1 +1 @@
-Subproject commit 900377e4f72486f6699ecf736f96adfbc04e92da
+Subproject commit e8a049414bca2b14b158444dac1b94c2ca90d9be
diff --git a/intern/docker_grafana/templates/datasources.yml b/intern/docker_grafana/templates/datasources.yml
index 5e2ba6ca3bafdf3e6b7d0b6ef5299168a061ff59..2c3e31a00bcc5f03bd6117de1d3bedf4aba192e7 100644
--- a/intern/docker_grafana/templates/datasources.yml
+++ b/intern/docker_grafana/templates/datasources.yml
@@ -26,3 +26,12 @@ datasources:
       httpHeaderName1: 'Authorization'
     secureJsonData:
       httpHeaderValue1: 'Token {{ influxdb_token }}'
+
+{% if inventory_hostname == 'hix' %}
+
+  - name: Prometheus
+    type: prometheus
+    access: proxy
+    url: http://{{ int_ip4 }}:9090
+
+{% endif %}
diff --git a/remote/docker_prometheus/tasks/main.yml b/remote/docker_prometheus/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1d79a50e262d010a86551a961eabf7f035da39e9
--- /dev/null
+++ b/remote/docker_prometheus/tasks/main.yml
@@ -0,0 +1,26 @@
+
+---
+
+- name: "create folder struct for {{ basedir }}"
+  file: 
+    path: "{{ basedir }}" 
+    state: "directory"
+
+- name: "create folder struct for {{ basedir }}"
+  file: 
+    path: "{{ basedir }}/data" 
+    state: "directory"
+
+- name: "create config files for {{ basedir }}"
+  template: 
+    src: "{{ item }}"
+    dest: "{{ basedir }}/{{ item }}"
+  with_items:
+    - docker-compose.yml 
+    - prometheus.yml 
+
+- name: "start {{ basedir }} docker"
+  docker_compose:
+    project_src: "{{ basedir }}"
+    state: present
+
diff --git a/remote/docker_prometheus/templates/docker-compose.yml b/remote/docker_prometheus/templates/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..29f04144bcab08a688d54daf7699dee4817403bc
--- /dev/null
+++ b/remote/docker_prometheus/templates/docker-compose.yml
@@ -0,0 +1,36 @@
+
+version: "3"
+
+services:
+
+  app:
+
+    image: prom/prometheus:v2.41.0
+    restart: always
+    ports:
+      - 9090:9090
+    volumes:
+      - "{{ basedir }}/data:/prometheus"
+      - "{{ basedir }}/prometheus.yml:/etc/prometheus/prometheus.yml"
+    environment:
+      PGID: 1001
+      PUID: 1001
+      MEM_LIMIT: 256
+    labels:
+      - traefik.enable=true
+      - traefik.http.routers.{{ servicename }}.rule=Host(`{{ domain }}`)
+      - traefik.http.routers.{{ servicename }}.entrypoints=websecure
+      - traefik.http.services.{{ servicename }}.loadbalancer.serversTransport={{ servicename }}
+      - traefik.http.services.{{ servicename }}.loadbalancer.server.port=9090
+    networks:
+      - default
+      - web
+
+  snmp:
+    image: quay.io/prometheus/snmp-exporter:v0.21.0
+    restart: always
+
+
+networks:
+  web:
+    external: true
diff --git a/remote/docker_prometheus/templates/prometheus.yml b/remote/docker_prometheus/templates/prometheus.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6a34e16264bf4e56b50956ff1871ad40146ac0ee
--- /dev/null
+++ b/remote/docker_prometheus/templates/prometheus.yml
@@ -0,0 +1,47 @@
+
+global:
+  scrape_interval: 15s
+  evaluation_interval: 30s
+  # scrape_timeout is set to the global default (10s).
+
+
+scrape_configs:
+
+  - job_name: hex-metrics
+    static_configs:
+      - targets: [ "{{ hostvars['hex'].int_ip4 }}:9100" ]
+        labels:
+          server: hex
+
+  - job_name: hix-metrics
+    static_configs:
+      - targets: [ "{{ int_ip4 }}:9100" ]
+        labels:
+          server: hix
+
+  - job_name: hix-docker
+    static_configs:
+      - targets: [ "{{ int_ip4 }}:9323" ]
+        labels:
+          server: hix
+
+  - job_name: hix-dockerstats
+    static_configs:
+      - targets: [ "{{ int_ip4 }}:9487" ]
+        labels:
+          server: hix
+
+  - job_name: 'snmp-switch'
+    static_configs:
+      - targets:
+        - 10.111.10.91 
+    metrics_path: /snmp
+    params:
+      module: [if_mib]
+    relabel_configs:
+      - source_labels: [__address__]
+        target_label: __param_target
+      - source_labels: [__param_target]
+        target_label: instance
+      - target_label: __address__
+        replacement: snmp:9116  # The SNMP exporter's real hostname:port.
diff --git a/site.yml b/site.yml
index 6540cdf9d64ffdc8cd19ef4c003822e4eec94d24..c49a94b806e38e904a7402c16a55a90ee5c9ef05 100644
--- a/site.yml
+++ b/site.yml
@@ -294,6 +294,7 @@
   roles:
     - { role: common/proxmox, tags: proxmox }
     - { role: common/cronapt, tags: cronapt }
+    - { role: common/prometheus-node, tags: prometheus-node }
 
 - hosts: hix
   remote_user: root
@@ -322,6 +323,13 @@
         mqtt_port: 1883,
         influxdb_port: 18086
       }
+    - { 
+        role: remote/docker_prometheus, tags: prometheus, 
+        servicename: prometheus,
+        basedir: /srv/prometheus, 
+        domain: "prometheus.warpzone.remote",
+        prometheus_port: 9090
+      }
     - { 
         role: intern/docker_grafana, tags: grafana, 
         servicename: grafana,