Add more complex example (docker-compose + grafana + prometheus)
This commit is contained in:
		
							
								
								
									
										15
									
								
								example/docker-compose-grafana-prometheus/config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								example/docker-compose-grafana-prometheus/config.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
metrics: true
 | 
			
		||||
services:
 | 
			
		||||
  - name: TwiNNatioN
 | 
			
		||||
    url: https://twinnation.org/actuator/health
 | 
			
		||||
    interval: 10s
 | 
			
		||||
    conditions:
 | 
			
		||||
      - "$STATUS == 200"
 | 
			
		||||
  - name: GitHub
 | 
			
		||||
    url: https://api.github.com/healthz
 | 
			
		||||
    conditions:
 | 
			
		||||
      - "$STATUS == 200"
 | 
			
		||||
  - name: Example
 | 
			
		||||
    url: https://example.com/
 | 
			
		||||
    conditions:
 | 
			
		||||
      - "$STATUS == 200"
 | 
			
		||||
							
								
								
									
										43
									
								
								example/docker-compose-grafana-prometheus/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								example/docker-compose-grafana-prometheus/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,43 @@
 | 
			
		||||
version: '3.7'
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  gatus:
 | 
			
		||||
    container_name: gatus
 | 
			
		||||
    build: twinproduction/gatus
 | 
			
		||||
    restart: always
 | 
			
		||||
    ports:
 | 
			
		||||
      - 8080:8080
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ./config.yaml:/config.yaml
 | 
			
		||||
    networks:
 | 
			
		||||
      - metrics
 | 
			
		||||
 | 
			
		||||
  prometheus:
 | 
			
		||||
    container_name: prometheus
 | 
			
		||||
    image: prom/prometheus:v2.14.0
 | 
			
		||||
    restart: always
 | 
			
		||||
    command: --config.file=/etc/prometheus/prometheus.yml
 | 
			
		||||
    ports:
 | 
			
		||||
      - 9090:9090
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
 | 
			
		||||
    networks:
 | 
			
		||||
      - metrics
 | 
			
		||||
 | 
			
		||||
  grafana:
 | 
			
		||||
    container_name: grafana
 | 
			
		||||
    image: grafana/grafana:6.4.4
 | 
			
		||||
    restart: always
 | 
			
		||||
    environment:
 | 
			
		||||
      GF_SECURITY_ADMIN_PASSWORD: secret
 | 
			
		||||
    ports:
 | 
			
		||||
      - 3000:3000
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ./grafana/grafana.ini/:/etc/grafana/grafana.ini:ro
 | 
			
		||||
      - ./grafana/provisioning/:/etc/grafana/provisioning/:ro
 | 
			
		||||
    networks:
 | 
			
		||||
      - metrics
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  metrics:
 | 
			
		||||
    driver: bridge
 | 
			
		||||
@ -0,0 +1,85 @@
 | 
			
		||||
[paths]
 | 
			
		||||
 | 
			
		||||
[server]
 | 
			
		||||
 | 
			
		||||
[database]
 | 
			
		||||
 | 
			
		||||
[session]
 | 
			
		||||
 | 
			
		||||
[dataproxy]
 | 
			
		||||
 | 
			
		||||
[analytics]
 | 
			
		||||
reporting_enabled = false
 | 
			
		||||
 | 
			
		||||
[security]
 | 
			
		||||
 | 
			
		||||
[snapshots]
 | 
			
		||||
 | 
			
		||||
[dashboards]
 | 
			
		||||
 | 
			
		||||
[users]
 | 
			
		||||
allow_sign_up = false
 | 
			
		||||
default_theme = light
 | 
			
		||||
 | 
			
		||||
[auth]
 | 
			
		||||
 | 
			
		||||
[auth.anonymous]
 | 
			
		||||
enabled = true
 | 
			
		||||
org_name = Main Org.
 | 
			
		||||
org_role = Admin
 | 
			
		||||
 | 
			
		||||
[auth.github]
 | 
			
		||||
 | 
			
		||||
[auth.google]
 | 
			
		||||
 | 
			
		||||
[auth.generic_oauth]
 | 
			
		||||
 | 
			
		||||
[auth.grafana_com]
 | 
			
		||||
 | 
			
		||||
[auth.proxy]
 | 
			
		||||
 | 
			
		||||
[auth.basic]
 | 
			
		||||
 | 
			
		||||
[auth.ldap]
 | 
			
		||||
 | 
			
		||||
[smtp]
 | 
			
		||||
 | 
			
		||||
[emails]
 | 
			
		||||
 | 
			
		||||
[log]
 | 
			
		||||
mode = console
 | 
			
		||||
 | 
			
		||||
[log.console]
 | 
			
		||||
 | 
			
		||||
[log.file]
 | 
			
		||||
 | 
			
		||||
[log.syslog]
 | 
			
		||||
 | 
			
		||||
[alerting]
 | 
			
		||||
 | 
			
		||||
[explore]
 | 
			
		||||
 | 
			
		||||
[metrics]
 | 
			
		||||
enabled = true
 | 
			
		||||
 | 
			
		||||
[metrics.graphite]
 | 
			
		||||
 | 
			
		||||
[tracing.jaeger]
 | 
			
		||||
 | 
			
		||||
[grafana_com]
 | 
			
		||||
 | 
			
		||||
[external_image_storage]
 | 
			
		||||
 | 
			
		||||
[external_image_storage.s3]
 | 
			
		||||
 | 
			
		||||
[external_image_storage.webdav]
 | 
			
		||||
 | 
			
		||||
[external_image_storage.gcs]
 | 
			
		||||
 | 
			
		||||
[external_image_storage.azure_blob]
 | 
			
		||||
 | 
			
		||||
[external_image_storage.local]
 | 
			
		||||
 | 
			
		||||
[rendering]
 | 
			
		||||
 | 
			
		||||
[enterprise]
 | 
			
		||||
@ -0,0 +1,11 @@
 | 
			
		||||
apiVersion: 1
 | 
			
		||||
 | 
			
		||||
providers:
 | 
			
		||||
  - name: 'Prometheus'
 | 
			
		||||
    orgId: 1
 | 
			
		||||
    folder: ''
 | 
			
		||||
    type: file
 | 
			
		||||
    disableDeletion: false
 | 
			
		||||
    editable: true
 | 
			
		||||
    options:
 | 
			
		||||
      path: /etc/grafana/provisioning/dashboards
 | 
			
		||||
@ -0,0 +1,300 @@
 | 
			
		||||
{
 | 
			
		||||
  "annotations": {
 | 
			
		||||
    "list": [
 | 
			
		||||
      {
 | 
			
		||||
        "builtIn": 1,
 | 
			
		||||
        "datasource": "-- Grafana --",
 | 
			
		||||
        "enable": true,
 | 
			
		||||
        "hide": true,
 | 
			
		||||
        "iconColor": "rgba(0, 211, 255, 1)",
 | 
			
		||||
        "name": "Annotations & Alerts",
 | 
			
		||||
        "type": "dashboard"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "editable": true,
 | 
			
		||||
  "gnetId": null,
 | 
			
		||||
  "graphTooltip": 0,
 | 
			
		||||
  "id": 2,
 | 
			
		||||
  "links": [],
 | 
			
		||||
  "panels": [
 | 
			
		||||
    {
 | 
			
		||||
      "aliasColors": {},
 | 
			
		||||
      "bars": false,
 | 
			
		||||
      "dashLength": 10,
 | 
			
		||||
      "dashes": false,
 | 
			
		||||
      "datasource": null,
 | 
			
		||||
      "fill": 1,
 | 
			
		||||
      "fillGradient": 0,
 | 
			
		||||
      "gridPos": {
 | 
			
		||||
        "h": 14,
 | 
			
		||||
        "w": 12,
 | 
			
		||||
        "x": 0,
 | 
			
		||||
        "y": 0
 | 
			
		||||
      },
 | 
			
		||||
      "id": 2,
 | 
			
		||||
      "legend": {
 | 
			
		||||
        "avg": false,
 | 
			
		||||
        "current": false,
 | 
			
		||||
        "max": false,
 | 
			
		||||
        "min": false,
 | 
			
		||||
        "show": true,
 | 
			
		||||
        "total": false,
 | 
			
		||||
        "values": false
 | 
			
		||||
      },
 | 
			
		||||
      "lines": true,
 | 
			
		||||
      "linewidth": 1,
 | 
			
		||||
      "nullPointMode": "null",
 | 
			
		||||
      "options": {
 | 
			
		||||
        "dataLinks": []
 | 
			
		||||
      },
 | 
			
		||||
      "percentage": false,
 | 
			
		||||
      "pointradius": 2,
 | 
			
		||||
      "points": false,
 | 
			
		||||
      "renderer": "flot",
 | 
			
		||||
      "seriesOverrides": [],
 | 
			
		||||
      "spaceLength": 10,
 | 
			
		||||
      "stack": false,
 | 
			
		||||
      "steppedLine": false,
 | 
			
		||||
      "targets": [
 | 
			
		||||
        {
 | 
			
		||||
          "expr": "sum(rate(gatus_tasks[30s])) by (service)",
 | 
			
		||||
          "interval": "30s",
 | 
			
		||||
          "legendFormat": "{{service}}",
 | 
			
		||||
          "refId": "A"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "thresholds": [],
 | 
			
		||||
      "timeFrom": null,
 | 
			
		||||
      "timeRegions": [],
 | 
			
		||||
      "timeShift": null,
 | 
			
		||||
      "title": "All tasks executed over time",
 | 
			
		||||
      "tooltip": {
 | 
			
		||||
        "shared": true,
 | 
			
		||||
        "sort": 0,
 | 
			
		||||
        "value_type": "individual"
 | 
			
		||||
      },
 | 
			
		||||
      "type": "graph",
 | 
			
		||||
      "xaxis": {
 | 
			
		||||
        "buckets": null,
 | 
			
		||||
        "mode": "time",
 | 
			
		||||
        "name": null,
 | 
			
		||||
        "show": true,
 | 
			
		||||
        "values": []
 | 
			
		||||
      },
 | 
			
		||||
      "yaxes": [
 | 
			
		||||
        {
 | 
			
		||||
          "format": "short",
 | 
			
		||||
          "label": null,
 | 
			
		||||
          "logBase": 1,
 | 
			
		||||
          "max": null,
 | 
			
		||||
          "min": null,
 | 
			
		||||
          "show": true
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "format": "short",
 | 
			
		||||
          "label": null,
 | 
			
		||||
          "logBase": 1,
 | 
			
		||||
          "max": null,
 | 
			
		||||
          "min": null,
 | 
			
		||||
          "show": true
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "yaxis": {
 | 
			
		||||
        "align": false,
 | 
			
		||||
        "alignLevel": null
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "aliasColors": {},
 | 
			
		||||
      "bars": false,
 | 
			
		||||
      "dashLength": 10,
 | 
			
		||||
      "dashes": false,
 | 
			
		||||
      "datasource": null,
 | 
			
		||||
      "fill": 1,
 | 
			
		||||
      "fillGradient": 0,
 | 
			
		||||
      "gridPos": {
 | 
			
		||||
        "h": 7,
 | 
			
		||||
        "w": 12,
 | 
			
		||||
        "x": 12,
 | 
			
		||||
        "y": 0
 | 
			
		||||
      },
 | 
			
		||||
      "id": 3,
 | 
			
		||||
      "legend": {
 | 
			
		||||
        "avg": false,
 | 
			
		||||
        "current": false,
 | 
			
		||||
        "max": false,
 | 
			
		||||
        "min": false,
 | 
			
		||||
        "show": true,
 | 
			
		||||
        "total": false,
 | 
			
		||||
        "values": false
 | 
			
		||||
      },
 | 
			
		||||
      "lines": true,
 | 
			
		||||
      "linewidth": 1,
 | 
			
		||||
      "nullPointMode": "null",
 | 
			
		||||
      "options": {
 | 
			
		||||
        "dataLinks": []
 | 
			
		||||
      },
 | 
			
		||||
      "percentage": false,
 | 
			
		||||
      "pointradius": 2,
 | 
			
		||||
      "points": false,
 | 
			
		||||
      "renderer": "flot",
 | 
			
		||||
      "seriesOverrides": [],
 | 
			
		||||
      "spaceLength": 10,
 | 
			
		||||
      "stack": false,
 | 
			
		||||
      "steppedLine": false,
 | 
			
		||||
      "targets": [
 | 
			
		||||
        {
 | 
			
		||||
          "expr": "sum(rate(gatus_tasks{success=\"false\"}[30s])) by (service)",
 | 
			
		||||
          "interval": "30s",
 | 
			
		||||
          "legendFormat": "{{service}}",
 | 
			
		||||
          "refId": "A"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "thresholds": [],
 | 
			
		||||
      "timeFrom": null,
 | 
			
		||||
      "timeRegions": [],
 | 
			
		||||
      "timeShift": null,
 | 
			
		||||
      "title": "Unsuccessful tasks",
 | 
			
		||||
      "tooltip": {
 | 
			
		||||
        "shared": true,
 | 
			
		||||
        "sort": 0,
 | 
			
		||||
        "value_type": "individual"
 | 
			
		||||
      },
 | 
			
		||||
      "type": "graph",
 | 
			
		||||
      "xaxis": {
 | 
			
		||||
        "buckets": null,
 | 
			
		||||
        "mode": "time",
 | 
			
		||||
        "name": null,
 | 
			
		||||
        "show": true,
 | 
			
		||||
        "values": []
 | 
			
		||||
      },
 | 
			
		||||
      "yaxes": [
 | 
			
		||||
        {
 | 
			
		||||
          "format": "short",
 | 
			
		||||
          "label": null,
 | 
			
		||||
          "logBase": 1,
 | 
			
		||||
          "max": null,
 | 
			
		||||
          "min": null,
 | 
			
		||||
          "show": true
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "format": "short",
 | 
			
		||||
          "label": null,
 | 
			
		||||
          "logBase": 1,
 | 
			
		||||
          "max": null,
 | 
			
		||||
          "min": null,
 | 
			
		||||
          "show": true
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "yaxis": {
 | 
			
		||||
        "align": false,
 | 
			
		||||
        "alignLevel": null
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "aliasColors": {},
 | 
			
		||||
      "bars": false,
 | 
			
		||||
      "dashLength": 10,
 | 
			
		||||
      "dashes": false,
 | 
			
		||||
      "datasource": null,
 | 
			
		||||
      "fill": 1,
 | 
			
		||||
      "fillGradient": 0,
 | 
			
		||||
      "gridPos": {
 | 
			
		||||
        "h": 7,
 | 
			
		||||
        "w": 12,
 | 
			
		||||
        "x": 12,
 | 
			
		||||
        "y": 7
 | 
			
		||||
      },
 | 
			
		||||
      "id": 5,
 | 
			
		||||
      "legend": {
 | 
			
		||||
        "avg": false,
 | 
			
		||||
        "current": false,
 | 
			
		||||
        "max": false,
 | 
			
		||||
        "min": false,
 | 
			
		||||
        "show": true,
 | 
			
		||||
        "total": false,
 | 
			
		||||
        "values": false
 | 
			
		||||
      },
 | 
			
		||||
      "lines": true,
 | 
			
		||||
      "linewidth": 1,
 | 
			
		||||
      "nullPointMode": "null",
 | 
			
		||||
      "options": {
 | 
			
		||||
        "dataLinks": []
 | 
			
		||||
      },
 | 
			
		||||
      "percentage": false,
 | 
			
		||||
      "pointradius": 2,
 | 
			
		||||
      "points": false,
 | 
			
		||||
      "renderer": "flot",
 | 
			
		||||
      "seriesOverrides": [],
 | 
			
		||||
      "spaceLength": 10,
 | 
			
		||||
      "stack": false,
 | 
			
		||||
      "steppedLine": false,
 | 
			
		||||
      "targets": [
 | 
			
		||||
        {
 | 
			
		||||
          "expr": "sum(rate(gatus_tasks{success=\"true\"}[30s])) by (service)",
 | 
			
		||||
          "instant": false,
 | 
			
		||||
          "interval": "30s",
 | 
			
		||||
          "legendFormat": "{{service}}",
 | 
			
		||||
          "refId": "A"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "thresholds": [],
 | 
			
		||||
      "timeFrom": null,
 | 
			
		||||
      "timeRegions": [],
 | 
			
		||||
      "timeShift": null,
 | 
			
		||||
      "title": "Successful tasks",
 | 
			
		||||
      "tooltip": {
 | 
			
		||||
        "shared": true,
 | 
			
		||||
        "sort": 0,
 | 
			
		||||
        "value_type": "individual"
 | 
			
		||||
      },
 | 
			
		||||
      "type": "graph",
 | 
			
		||||
      "xaxis": {
 | 
			
		||||
        "buckets": null,
 | 
			
		||||
        "mode": "time",
 | 
			
		||||
        "name": null,
 | 
			
		||||
        "show": true,
 | 
			
		||||
        "values": []
 | 
			
		||||
      },
 | 
			
		||||
      "yaxes": [
 | 
			
		||||
        {
 | 
			
		||||
          "format": "short",
 | 
			
		||||
          "label": null,
 | 
			
		||||
          "logBase": 1,
 | 
			
		||||
          "max": null,
 | 
			
		||||
          "min": null,
 | 
			
		||||
          "show": true
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "format": "short",
 | 
			
		||||
          "label": null,
 | 
			
		||||
          "logBase": 1,
 | 
			
		||||
          "max": null,
 | 
			
		||||
          "min": null,
 | 
			
		||||
          "show": true
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "yaxis": {
 | 
			
		||||
        "align": false,
 | 
			
		||||
        "alignLevel": null
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "refresh": "10s",
 | 
			
		||||
  "schemaVersion": 20,
 | 
			
		||||
  "style": "dark",
 | 
			
		||||
  "tags": [],
 | 
			
		||||
  "templating": {
 | 
			
		||||
    "list": []
 | 
			
		||||
  },
 | 
			
		||||
  "time": {
 | 
			
		||||
    "from": "now-30m",
 | 
			
		||||
    "to": "now"
 | 
			
		||||
  },
 | 
			
		||||
  "timepicker": {},
 | 
			
		||||
  "timezone": "",
 | 
			
		||||
  "title": "Gatus",
 | 
			
		||||
  "uid": "KPI7Qj1Wk",
 | 
			
		||||
  "version": 3
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,10 @@
 | 
			
		||||
apiVersion: 1
 | 
			
		||||
 | 
			
		||||
datasources:
 | 
			
		||||
  - name: Prometheus
 | 
			
		||||
    type: prometheus
 | 
			
		||||
    access: proxy
 | 
			
		||||
    url: http://prometheus:9090
 | 
			
		||||
    isDefault: true
 | 
			
		||||
    version: 1
 | 
			
		||||
    editable: false
 | 
			
		||||
@ -0,0 +1,6 @@
 | 
			
		||||
scrape_configs:
 | 
			
		||||
  - job_name: gatus
 | 
			
		||||
    scrape_interval: 10s
 | 
			
		||||
    static_configs:
 | 
			
		||||
      - targets:
 | 
			
		||||
          - gatus:8080
 | 
			
		||||
		Reference in New Issue
	
	Block a user