diff --git a/docker-compose.yml.new b/docker-compose.yml.new new file mode 100644 index 0000000..302036d --- /dev/null +++ b/docker-compose.yml.new @@ -0,0 +1,103 @@ +version: '3.1' + +volumes: + prometheus_data: {} + grafana_data: {} + +networks: + front-tier: + back-tier: + +services: + + prometheus: + image: prom/prometheus:v2.0.0 + volumes: + - ./prometheus/:/etc/prometheus/ + - prometheus_data:/prometheus + command: + - '--config.file=/etc/prometheus/prometheus.yml' + - '--storage.tsdb.path=/prometheus' + - '--web.console.libraries=/usr/share/prometheus/console_libraries' + - '--web.console.templates=/usr/share/prometheus/consoles' + ports: + - 9090:9090 + links: + - cadvisor:cadvisor + - alertmanager:alertmanager + depends_on: + - cadvisor + networks: + - back-tier + restart: always + deploy: + placement: + constraints: + - node.hostname == ${HOSTNAME} + + node-exporter: + image: prom/node-exporter + volumes: + - /proc:/host/proc:ro + - /sys:/host/sys:ro + - /:/rootfs:ro + command: + - '--path.procfs=/host/proc' + - '--path.sysfs=/host/sys' + - --collector.filesystem.ignored-mount-points + - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)" + ports: + - 9100:9100 + networks: + - back-tier + restart: always + deploy: + mode: global + + alertmanager: + image: prom/alertmanager + ports: + - 9093:9093 + volumes: + - "./alertmanager/:/etc/alertmanager/" + networks: + - back-tier + restart: always + command: + - '--config.file=/etc/alertmanager/config.yml' + - '--storage.path=/alertmanager' + deploy: + placement: + constraints: + - node.hostname == ${HOSTNAME} + + cadvisor: + image: google/cadvisor + volumes: + - /:/rootfs:ro + - /var/run:/var/run:rw + - /sys:/sys:ro + - /var/lib/docker/:/var/lib/docker:ro + ports: + - 8080:8080 + networks: + - back-tier + restart: always + deploy: + mode: global + + grafana: + image: grafana/grafana + depends_on: + - prometheus + ports: + - 3000:3000 + volumes: + - grafana_data:/var/lib/grafana + env_file: + - config.monitoring + networks: + - back-tier + - front-tier + restart: always + diff --git a/docker-compose.yml.orig b/docker-compose.yml.orig new file mode 100644 index 0000000..159c989 --- /dev/null +++ b/docker-compose.yml.orig @@ -0,0 +1,70 @@ +version: "2" + +volumes: + prometheus_data: {} + grafana_data: {} + +networks: + front-tier: + driver: bridge + back-tier: + driver: bridge + +services: + prometheus: + image: prom/prometheus + container_name: prometheus + volumes: + - ./prometheus/:/etc/prometheus/ + - prometheus_data:/prometheus + command: + - '-config.file=/etc/prometheus/prometheus.yml' + - '-storage.local.path=/prometheus' + - '-alertmanager.url=http://alertmanager:9093' + expose: + - 9090 + ports: + - 9090:9090 + links: + - alertmanager:alertmanager + - metrics:metrics + networks: + - back-tier + + alertmanager: + image: prom/alertmanager + ports: + - 9093:9093 + volumes: + - ./alertmanager/:/etc/alertmanager/ + networks: + - back-tier + command: + - '-config.file=/etc/alertmanager/config.yml' + - '-storage.path=/alertmanager' + + grafana: + image: grafana/grafana + depends_on: + - prometheus + ports: + - 3000:3000 + volumes: + - grafana_data:/var/lib/grafana + env_file: + - config.monitoring + networks: + - back-tier + - front-tier + + metrics: + tty: true + stdin_open: true + expose: + - 9171 + image: infinityworks/github-exporter:latest + environment: + - REPOS=freeCodeCamp/freeCodeCamp,docker/docker + - GITHUB_TOKEN=675b6e450c397991e76d71014ac1d8ba3ad58c0e + networks: + - back-tier diff --git a/grafana/provisioning/dashboards/dashboard.yml b/grafana/provisioning/dashboards/dashboard.yml index 14716ee..5fb700f 100644 --- a/grafana/provisioning/dashboards/dashboard.yml +++ b/grafana/provisioning/dashboards/dashboard.yml @@ -1,7 +1,7 @@ apiVersion: 1 providers: -- name: 'Prometheus' +- name: 'prometheus' orgId: 1 folder: '' type: file diff --git a/grafana/provisioning/dashboards/github-stats_rev2.json b/grafana/provisioning/dashboards/github-stats_rev2.json index 62014a1..f188239 100644 --- a/grafana/provisioning/dashboards/github-stats_rev2.json +++ b/grafana/provisioning/dashboards/github-stats_rev2.json @@ -1,7 +1,7 @@ { "__inputs": [ { - "name": "DS_PROMETHEUS", + "name": "prometheus", "label": "Prometheus", "description": "Standard Prometheus datasource", "type": "datasource", @@ -85,7 +85,7 @@ "stars": "#1F78C1" }, "bars": false, - "datasource": "${DS_PROMETHEUS}", + "datasource": "prometheus", "editable": true, "error": false, "fill": 1, @@ -169,7 +169,7 @@ "Open Issues": "#C15C17" }, "bars": false, - "datasource": "${DS_PROMETHEUS}", + "datasource": "prometheus", "editable": true, "error": false, "fill": 4, @@ -248,7 +248,7 @@ "Forks": "#F9BA8F" }, "bars": false, - "datasource": "${DS_PROMETHEUS}", + "datasource": "prometheus", "editable": true, "error": false, "fill": 1, @@ -339,7 +339,7 @@ "stars": "#E5A8E2" }, "bars": false, - "datasource": "${DS_PROMETHEUS}", + "datasource": "prometheus", "decimals": 3, "editable": true, "error": false, @@ -426,7 +426,7 @@ "Open Issues": "#BF1B00" }, "bars": false, - "datasource": "${DS_PROMETHEUS}", + "datasource": "prometheus", "editable": true, "error": false, "fill": 3, @@ -505,7 +505,7 @@ "Forks": "#F9BA8F" }, "bars": false, - "datasource": "${DS_PROMETHEUS}", + "datasource": "prometheus", "decimals": 3, "editable": true, "error": false, @@ -590,4 +590,4 @@ } ], "description": "A docker stack which uses Grafana to collect GitHub statistics for selected Repositories" -} \ No newline at end of file +} diff --git a/grafana/provisioning/datasources/datasource.yml b/grafana/provisioning/datasources/datasource.yml index 2d4ab76..a2f5b58 100644 --- a/grafana/provisioning/datasources/datasource.yml +++ b/grafana/provisioning/datasources/datasource.yml @@ -3,14 +3,14 @@ apiVersion: 1 # list of datasources that should be deleted from the database deleteDatasources: - - name: Prometheus + - name: prometheus orgId: 1 # list of datasources to insert/update depending # whats available in the database datasources: # name of the datasource. Required -- name: Prometheus +- name: prometheus # datasource type. Required type: prometheus # access mode. direct or proxy. Required diff --git a/images/Grafana_Add_Data_Source.png b/images/Grafana_Add_Data_Source.png index ce16dd8..6204c25 100644 Binary files a/images/Grafana_Add_Data_Source.png and b/images/Grafana_Add_Data_Source.png differ