├── .gitignore ├── conf ├── nginx │ ├── www │ │ └── index.html │ └── nginx.conf ├── rabbit │ ├── enabled_plugins │ └── rabbitmq.conf ├── grafana │ ├── dashboards.yml │ ├── datasources.yml │ └── dashboards │ │ ├── PrometheusStats.json │ │ └── SystemStatus.json └── prometheus │ └── prometheus.yml ├── .env-sample ├── README.md ├── start.sh ├── init-cert.sh └── docker-compose.yml /.gitignore: -------------------------------------------------------------------------------- 1 | conf/certbot 2 | data/* 3 | *.log 4 | .env 5 | -------------------------------------------------------------------------------- /conf/nginx/www/index.html: -------------------------------------------------------------------------------- 1 |

Under construction

-------------------------------------------------------------------------------- /conf/rabbit/enabled_plugins: -------------------------------------------------------------------------------- 1 | [rabbitmq_management,rabbitmq_mqtt,rabbitmq_web_mqtt,rabbitmq_prometheus]. -------------------------------------------------------------------------------- /.env-sample: -------------------------------------------------------------------------------- 1 | INFLUXDB_ADMIN_USER=admin 2 | INFLUXDB_ADMIN_PASSWORD=admin 3 | INFLUXDB_DB=telegraf 4 | 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### rabbit-prometheus-influx-grafana 2 | 3 | # MQTT docker boilerplate: portainer, nginx, certbot, RabbitMQ, Grafana, Prometheus, Telegraf, InfluxDB 4 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export COMPOSE_HTTP_TIMEOUT=200 4 | sudo docker-compose pull 5 | sudo docker-compose build --no-cache 6 | sudo docker-compose down 7 | sudo docker-compose up -d --force-recreate 8 | -------------------------------------------------------------------------------- /conf/grafana/dashboards.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'rabbitmq' 5 | orgId: 1 6 | folder: '' 7 | type: file 8 | disableDeletion: true 9 | options: 10 | path: /dashboards 11 | -------------------------------------------------------------------------------- /conf/prometheus/prometheus.yml: -------------------------------------------------------------------------------- 1 | global: 2 | scrape_interval: 15s 3 | evaluation_interval: 15s 4 | external_labels: 5 | monitor: 'broker' 6 | 7 | scrape_configs: 8 | - job_name: 'nodeexporter' 9 | scrape_interval: 5s 10 | static_configs: 11 | - targets: ['node-exporter:9100'] 12 | 13 | - job_name: 'prometheus' 14 | scrape_interval: 10s 15 | static_configs: 16 | - targets: ['prometheus:9090'] 17 | labels: 18 | __metrics_path__: /manager/prometheus/metrics 19 | 20 | - job_name: 'rabbit' 21 | scrape_interval: 10s 22 | static_configs: 23 | - targets: ['rabbit:15692'] 24 | 25 | -------------------------------------------------------------------------------- /conf/rabbit/rabbitmq.conf: -------------------------------------------------------------------------------- 1 | log.default.level = debug 2 | log.console.level = debug 3 | 4 | loopback_users.guest = false 5 | listeners.tcp.default = 5672 6 | hipe_compile = false 7 | 8 | collect_statistics_interval = 10000 9 | 10 | listeners.ssl.default = 5671 11 | ssl_options.cacertfile = /etc/rabbitmq/certs/chain1.pem 12 | ssl_options.certfile = /etc/rabbitmq/certs/cert1.pem 13 | ssl_options.keyfile = /etc/rabbitmq/certs/privkey1.pem 14 | ssl_options.verify = verify_peer 15 | ssl_options.fail_if_no_peer_cert = false 16 | ssl_options.versions.1 = tlsv1.2 17 | 18 | mqtt.allow_anonymous = false 19 | mqtt.listeners.tcp.default = 1883 20 | mqtt.listeners.ssl.default = 8883 21 | mqtt.tcp_listen_options.keepalive = true 22 | mqtt.tcp_listen_options.nodelay = true 23 | mqtt.tcp_listen_options.exit_on_close = true 24 | mqtt.tcp_listen_options.send_timeout = 120 25 | mqtt.vhost = / 26 | 27 | mqtt.exchange = amq.topic 28 | # 24 hours by default 29 | mqtt.subscription_ttl = 86400000 30 | mqtt.prefetch = 10 31 | 32 | web_mqtt.ssl.port = 18883 33 | web_mqtt.ssl.backlog = 1024 34 | web_mqtt.ssl.cacertfile = /etc/rabbitmq/certs/chain1.pem 35 | web_mqtt.ssl.certfile = /etc/rabbitmq/certs/cert1.pem 36 | web_mqtt.ssl.keyfile = /etc/rabbitmq/certs/privkey1.pem 37 | web_mqtt.ssl.versions.1 = tlsv1.2 38 | web_mqtt.ssl.secure_renegotiate = true 39 | 40 | default_vhost = / 41 | 42 | management.tcp.port = 15672 43 | -------------------------------------------------------------------------------- /conf/grafana/datasources.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | datasources: 4 | # name of the datasource. Required 5 | - name: prometheus 6 | # datasource type. Required 7 | type: prometheus 8 | # access mode. direct or proxy. Required 9 | access: proxy 10 | # org id. will default to orgId 1 if not specified 11 | orgId: 1 12 | # url 13 | url: http://prometheus:9090/manager/prometheus 14 | # database password, if used 15 | # password: 16 | # database user, if used 17 | # user: 18 | # database name, if used 19 | # database: 20 | # enable/disable basic auth 21 | # basicAuth: 22 | # basic auth username 23 | # basicAuthUser: 24 | # basic auth password 25 | # basicAuthPassword: 26 | # enable/disable with credentials headers 27 | # withCredentials: 28 | # mark as default datasource. Max one per org 29 | isDefault: true 30 | # fields that will be converted to json and stored in json_data 31 | # jsonData: 32 | # graphiteVersion: "1.1" 33 | # tlsAuth: true 34 | # tlsAuthWithCACert: true 35 | # httpHeaderName1: "Authorization" 36 | # json object of data that will be encrypted. 37 | # secureJsonData: 38 | # tlsCACert: "..." 39 | # tlsClientCert: "..." 40 | # tlsClientKey: "..." 41 | # httpHeaderValue1: "Bearer xf5yhfkpsnmgo" 42 | version: 1 43 | # allow users to edit datasources from the UI. 44 | editable: false 45 | -------------------------------------------------------------------------------- /conf/nginx/nginx.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 443 ssl; 3 | server_name iotm.tk; 4 | server_tokens off; 5 | 6 | ssl_certificate /etc/letsencrypt/live/iotm.tk/fullchain.pem; 7 | ssl_certificate_key /etc/letsencrypt/live/iotm.tk/privkey.pem; 8 | include /etc/letsencrypt/options-ssl-nginx.conf; 9 | ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 10 | 11 | root /var/www/certbot; 12 | 13 | index index.html; 14 | 15 | location / { 16 | autoindex off; 17 | } 18 | 19 | location /manager/portainer/ { 20 | rewrite ^/manager/portainer/(.*) /$1 break; 21 | proxy_pass http://portainer:9000/; 22 | proxy_http_version 1.1; 23 | proxy_set_header Upgrade $http_upgrade; 24 | proxy_set_header Connection 'upgrade'; 25 | proxy_set_header Host $host; 26 | proxy_cache_bypass $http_upgrade; 27 | proxy_set_header X-Real-Ip $remote_addr; 28 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 29 | proxy_set_header X-Forwarded-Proto $scheme; 30 | } 31 | 32 | location /manager/rabbit/ { 33 | if ($request_uri ~* "/manager/rabbit/(.*)") { 34 | proxy_pass http://rabbit:15672/$1; 35 | } 36 | proxy_pass http://rabbit:15672; 37 | proxy_buffering off; 38 | proxy_set_header Host $http_host; 39 | proxy_set_header X-Real-Ip $remote_addr; 40 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 41 | proxy_set_header X-Forwarded-Proto $scheme; 42 | } 43 | 44 | location /manager/grafana/ { 45 | proxy_pass http://grafana:3000/; 46 | proxy_http_version 1.1; 47 | proxy_set_header Upgrade $http_upgrade; 48 | proxy_set_header Connection 'upgrade'; 49 | proxy_cache_bypass $http_upgrade; 50 | proxy_set_header Host $host; 51 | proxy_set_header X-Real-IP $remote_addr; 52 | proxy_set_header X-Forwarded-Host $host; 53 | proxy_set_header X-Forwarded-Server $host; 54 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 55 | proxy_max_temp_file_size 0; 56 | proxy_set_header Authorization ""; 57 | } 58 | 59 | } 60 | 61 | server { 62 | listen 80; 63 | server_name iotm.tk; 64 | server_tokens off; 65 | 66 | location /.well-known/acme-challenge/ { 67 | root /var/www/certbot; 68 | } 69 | 70 | location / { 71 | return 301 https://$host$request_uri; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /init-cert.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if ! [ -x "$(command -v docker-compose)" ]; then 4 | echo 'Error: docker-compose is not installed.' >&2 5 | exit 1 6 | fi 7 | 8 | domains=(iotm.tk www.iotm.tk) 9 | email="4refr0nt@gmail.com" # Adding a valid address is strongly recommended 10 | staging=0 # Set to 1 if you're testing your setup to avoid hitting request limits 11 | rsa_key_size=4096 12 | data_path="./conf/certbot" 13 | 14 | if [ -d "$data_path" ]; then 15 | read -p "Existing data found for $domains. Continue and replace existing certificate? (y/N) " decision 16 | if [ "$decision" != "Y" ] && [ "$decision" != "y" ]; then 17 | exit 18 | fi 19 | fi 20 | 21 | 22 | if [ ! -e "$data_path/options-ssl-nginx.conf" ] || [ ! -e "$data_path/ssl-dhparams.pem" ]; then 23 | echo "### Downloading recommended TLS parameters ..." 24 | mkdir -p "$data_path" 25 | curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf > "$data_path/options-ssl-nginx.conf" 26 | curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem > "$data_path/ssl-dhparams.pem" 27 | echo 28 | fi 29 | 30 | echo "### Creating dummy certificate for $domains ..." 31 | path="/etc/letsencrypt/live/$domains" 32 | mkdir -p "$data_path/live/$domains" 33 | docker-compose run --rm --entrypoint "\ 34 | openssl req -x509 -nodes -newkey rsa:1024 -days 1\ 35 | -keyout '$path/privkey.pem' \ 36 | -out '$path/fullchain.pem' \ 37 | -subj '/CN=localhost'" certbot 38 | echo 39 | 40 | 41 | echo "### Starting nginx ..." 42 | docker-compose up --force-recreate -d nginx 43 | echo 44 | 45 | echo "### Deleting dummy certificate for $domains ..." 46 | docker-compose run --rm --entrypoint "\ 47 | rm -Rf /etc/letsencrypt/live/$domains && \ 48 | rm -Rf /etc/letsencrypt/archive/$domains && \ 49 | rm -Rf /etc/letsencrypt/renewal/$domains.conf" certbot 50 | echo 51 | 52 | 53 | echo "### Requesting Let's Encrypt certificate for $domains ..." 54 | #Join $domains to -d args 55 | domain_args="" 56 | for domain in "${domains[@]}"; do 57 | domain_args="$domain_args -d $domain" 58 | done 59 | 60 | # Select appropriate email arg 61 | case "$email" in 62 | "") email_arg="--register-unsafely-without-email" ;; 63 | *) email_arg="--email $email" ;; 64 | esac 65 | 66 | # Enable staging mode if needed 67 | if [ $staging != "0" ]; then staging_arg="--staging"; fi 68 | 69 | docker-compose run --rm --entrypoint "\ 70 | certbot certonly --webroot -w /var/www/certbot \ 71 | $staging_arg \ 72 | $email_arg \ 73 | $domain_args \ 74 | --rsa-key-size $rsa_key_size \ 75 | --agree-tos \ 76 | --force-renewal" certbot 77 | echo 78 | 79 | echo "### Reloading nginx ..." 80 | docker-compose exec nginx nginx -s reload -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | services: 3 | 4 | nginx: 5 | image: nginx:alpine 6 | container_name: nginx 7 | restart: unless-stopped 8 | volumes: 9 | - ./conf/nginx:/etc/nginx/conf.d 10 | - ./conf/certbot:/etc/letsencrypt 11 | - ./conf/nginx/www:/var/www/certbot 12 | ports: 13 | - 80:80 14 | - 443:443 15 | networks: 16 | - backend 17 | command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" 18 | depends_on: 19 | - certbot 20 | 21 | certbot: 22 | image: certbot/certbot 23 | container_name: certbot 24 | restart: unless-stopped 25 | volumes: 26 | - ./conf/certbot:/etc/letsencrypt 27 | - ./conf/nginx/www:/var/www/certbot 28 | networks: 29 | - backend 30 | entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; chmod 644 /etc/letsencrypt/archive/iotm.tk/*.pem; sleep 12h & wait $${!}; done;'" 31 | depends_on: 32 | - rabbit 33 | 34 | rabbit: 35 | image: rabbitmq:3-management-alpine 36 | container_name: rabbit 37 | hostname: rabbit 38 | restart: always 39 | env_file: 40 | - .env 41 | ports: 42 | - 1883:1883 43 | - 8883:8883 44 | - 18883:18883 45 | - 127.0.0.1:5671:5671 46 | - 127.0.0.1:5672:5672 47 | - 127.0.0.1:15672:15672 48 | - 127.0.0.1:15692:15692 49 | cap_add: 50 | - ALL 51 | networks: 52 | - backend 53 | volumes: 54 | - ./conf/rabbit:/etc/rabbitmq 55 | - ./conf/certbot/archive/iotm.tk:/etc/rabbitmq/certs 56 | - ./data/rabbit:/var/lib/rabbitmq 57 | - ./logs/rabbit:/var/log/rabbitmq 58 | depends_on: 59 | - portainer 60 | 61 | portainer: 62 | image: portainer/portainer:latest 63 | container_name: portainer 64 | restart: always 65 | command: -H unix:///var/run/docker.sock 66 | environment: 67 | - VIRTUAL_HOST=broker 68 | ports: 69 | - 127.0.0.1:8000:8000 70 | - 127.0.0.1:9000:9000 71 | networks: 72 | - backend 73 | volumes: 74 | - /var/run/docker.sock:/var/run/docker.sock 75 | - ./data/portainer:/data 76 | depends_on: 77 | - grafana 78 | 79 | grafana: 80 | image: grafana/grafana:latest 81 | container_name: grafana 82 | ports: 83 | - 127.0.0.1:3000:3000 84 | restart: always 85 | user: "472" 86 | networks: 87 | - backend 88 | volumes: 89 | - ./conf/grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/rabbitmq.yaml 90 | - ./conf/grafana/datasources.yml:/etc/grafana/provisioning/datasources/prometheus.yaml 91 | - ./conf/grafana/dashboards:/dashboards 92 | - ./data/grafana:/var/lib/grafana 93 | environment: 94 | # https://grafana.com/plugins/flant-statusmap-panel 95 | # https://grafana.com/plugins/grafana-piechart-panel 96 | # https://grafana.com/plugins/grafana-polystat-panel 97 | # https://grafana.com/plugins/jdbranham-diagram-panel 98 | # https://grafana.com/plugins/michaeldmoore-multistat-panel 99 | # https://grafana.com/plugins/vonage-status-panel 100 | # https://grafana.com/plugins/yesoreyeram-boomtable-panel 101 | - GF_INSTALL_PLUGINS=flant-statusmap-panel,grafana-piechart-panel,grafana-polystat-panel,jdbranham-diagram-panel,michaeldmoore-multistat-panel,vonage-status-panel,yesoreyeram-boomtable-panel,camptocamp-prometheus-alertmanager-datasource,natel-influx-admin-panel 102 | - GF_SECURITY_COOKIE_SECURE="true" 103 | - GF_SERVER_DOMAIN=iotm.tk 104 | - GF_SERVER_ROOT_URL=https://iotm.tk/manager/grafana/ 105 | - GF_DEFAULT_INSTANCE_NAME=iotm 106 | - GF_AUTH_PROXY_ENABLED=false 107 | - GF_USERS_ALLOW_SIGN_UP=false 108 | depends_on: 109 | - prometheus 110 | 111 | prometheus: 112 | image: prom/prometheus:v2.16.0 113 | container_name: prometheus 114 | networks: 115 | - backend 116 | ports: 117 | - 127.0.0.1:9090:9090 118 | restart: always 119 | volumes: 120 | - ./data/prometheus:/prometheus 121 | - ./conf/prometheus:/etc/prometheus 122 | command: 123 | - --config.file=/etc/prometheus/prometheus.yml 124 | - --storage.tsdb.path=/prometheus 125 | - --web.console.libraries=/usr/share/prometheus/console_libraries 126 | - --web.console.templates=/usr/share/prometheus/consoles 127 | - --web.route-prefix=/manager/prometheus 128 | - --web.external-url=https://iotm.tk/manager/prometheus 129 | depends_on: 130 | - node-exporter 131 | 132 | node-exporter: 133 | image: prom/node-exporter:v0.18.1 134 | container_name: node-exporter 135 | restart: always 136 | command: 137 | - '--path.procfs=/host/proc' 138 | - '--path.rootfs=/rootfs' 139 | - '--path.sysfs=/host/sys' 140 | - '--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)($$|/)' 141 | ports: 142 | - 9100:9100 143 | networks: 144 | - backend 145 | volumes: 146 | - /proc:/host/proc:ro 147 | - /sys:/host/sys:ro 148 | - /:/rootfs:ro 149 | depends_on: 150 | - influx 151 | 152 | influx: 153 | image: influxdb:1.8-alpine 154 | container_name: influx 155 | restart: always 156 | env_file: 157 | - .env 158 | networks: 159 | - backend 160 | ports: 161 | - 8086:8086 162 | volumes: 163 | - ./data/influx:/var/lib/influxdb 164 | depends_on: 165 | - telegraf 166 | 167 | telegraf: 168 | image: telegraf:alpine 169 | container_name: telegraf 170 | restart: always 171 | environment: 172 | HOST_PROC: /rootfs/proc 173 | HOST_SYS: /rootfs/sys 174 | HOST_ETC: /rootfs/etc 175 | networks: 176 | - backend 177 | volumes: 178 | - ./conf/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro 179 | - /var/run/docker.sock:/var/run/docker.sock:ro 180 | - /sys:/rootfs/sys:ro 181 | - /proc:/rootfs/proc:ro 182 | - /etc:/rootfs/etc:ro 183 | 184 | networks: 185 | backend: 186 | driver: bridge 187 | ipam: 188 | driver: default 189 | config: 190 | - subnet: 172.16.16.0/24 191 | -------------------------------------------------------------------------------- /conf/grafana/dashboards/PrometheusStats.json: -------------------------------------------------------------------------------- 1 | { 2 | "annotations": { 3 | "list": [ 4 | { 5 | "builtIn": 1, 6 | "datasource": "-- Grafana --", 7 | "enable": true, 8 | "hide": true, 9 | "iconColor": "rgba(0, 211, 255, 1)", 10 | "name": "Annotations & Alerts", 11 | "type": "dashboard" 12 | } 13 | ] 14 | }, 15 | "editable": true, 16 | "gnetId": null, 17 | "graphTooltip": 1, 18 | "id": 3, 19 | "links": [ 20 | { 21 | "icon": "info", 22 | "tags": [], 23 | "targetBlank": true, 24 | "title": "Grafana Docs", 25 | "tooltip": "", 26 | "type": "link", 27 | "url": "https://grafana.com/docs/grafana/latest/" 28 | }, 29 | { 30 | "icon": "info", 31 | "tags": [], 32 | "targetBlank": true, 33 | "title": "Prometheus Docs", 34 | "type": "link", 35 | "url": "http://prometheus.io/docs/introduction/overview/" 36 | } 37 | ], 38 | "panels": [ 39 | { 40 | "aliasColors": { 41 | "prometheus": "#C15C17", 42 | "{instance=\"localhost:9090\",job=\"prometheus\"}": "#CCA300" 43 | }, 44 | "bars": false, 45 | "dashLength": 10, 46 | "dashes": false, 47 | "datasource": "prometheus", 48 | "editable": true, 49 | "error": false, 50 | "fieldConfig": { 51 | "defaults": { 52 | "custom": {}, 53 | "links": [] 54 | }, 55 | "overrides": [] 56 | }, 57 | "fill": 0, 58 | "fillGradient": 0, 59 | "grid": {}, 60 | "gridPos": { 61 | "h": 6, 62 | "w": 6, 63 | "x": 0, 64 | "y": 0 65 | }, 66 | "hiddenSeries": false, 67 | "id": 3, 68 | "legend": { 69 | "avg": false, 70 | "current": false, 71 | "max": false, 72 | "min": false, 73 | "show": true, 74 | "total": false, 75 | "values": false 76 | }, 77 | "lines": true, 78 | "linewidth": 1, 79 | "links": [], 80 | "nullPointMode": "connected", 81 | "percentage": false, 82 | "pluginVersion": "7.1.3", 83 | "pointradius": 2, 84 | "points": false, 85 | "renderer": "flot", 86 | "seriesOverrides": [], 87 | "spaceLength": 10, 88 | "stack": false, 89 | "steppedLine": false, 90 | "targets": [ 91 | { 92 | "expr": "sum(irate(prometheus_tsdb_head_samples_appended_total{job=\"prometheus\"}[5m]))", 93 | "format": "time_series", 94 | "hide": false, 95 | "interval": "", 96 | "intervalFactor": 2, 97 | "legendFormat": "samples", 98 | "metric": "", 99 | "refId": "A", 100 | "step": 20 101 | } 102 | ], 103 | "thresholds": [], 104 | "timeFrom": null, 105 | "timeRegions": [], 106 | "timeShift": null, 107 | "title": "Samples Appended", 108 | "tooltip": { 109 | "shared": true, 110 | "sort": 0, 111 | "value_type": "cumulative" 112 | }, 113 | "type": "graph", 114 | "xaxis": { 115 | "buckets": null, 116 | "mode": "time", 117 | "name": null, 118 | "show": true, 119 | "values": [] 120 | }, 121 | "yaxes": [ 122 | { 123 | "format": "short", 124 | "logBase": 1, 125 | "max": null, 126 | "min": "0", 127 | "show": true 128 | }, 129 | { 130 | "format": "short", 131 | "logBase": 1, 132 | "max": null, 133 | "min": null, 134 | "show": true 135 | } 136 | ], 137 | "yaxis": { 138 | "align": false, 139 | "alignLevel": null 140 | } 141 | }, 142 | { 143 | "aliasColors": {}, 144 | "bars": false, 145 | "dashLength": 10, 146 | "dashes": false, 147 | "datasource": "prometheus", 148 | "editable": true, 149 | "error": false, 150 | "fieldConfig": { 151 | "defaults": { 152 | "custom": {}, 153 | "links": [] 154 | }, 155 | "overrides": [] 156 | }, 157 | "fill": 0, 158 | "fillGradient": 0, 159 | "grid": {}, 160 | "gridPos": { 161 | "h": 6, 162 | "w": 6, 163 | "x": 6, 164 | "y": 0 165 | }, 166 | "hiddenSeries": false, 167 | "id": 14, 168 | "legend": { 169 | "avg": false, 170 | "current": false, 171 | "max": false, 172 | "min": false, 173 | "show": true, 174 | "total": false, 175 | "values": false 176 | }, 177 | "lines": true, 178 | "linewidth": 1, 179 | "links": [], 180 | "nullPointMode": "connected", 181 | "percentage": false, 182 | "pluginVersion": "7.1.3", 183 | "pointradius": 5, 184 | "points": false, 185 | "renderer": "flot", 186 | "seriesOverrides": [], 187 | "spaceLength": 10, 188 | "stack": false, 189 | "steppedLine": false, 190 | "targets": [ 191 | { 192 | "expr": "topk(5, max(scrape_duration_seconds) by (job))", 193 | "format": "time_series", 194 | "interval": "", 195 | "intervalFactor": 2, 196 | "legendFormat": "{{job}}", 197 | "metric": "", 198 | "refId": "A", 199 | "step": 20 200 | } 201 | ], 202 | "thresholds": [], 203 | "timeFrom": null, 204 | "timeRegions": [], 205 | "timeShift": null, 206 | "title": "Scrape Duration", 207 | "tooltip": { 208 | "shared": true, 209 | "sort": 0, 210 | "value_type": "cumulative" 211 | }, 212 | "type": "graph", 213 | "xaxis": { 214 | "buckets": null, 215 | "mode": "time", 216 | "name": null, 217 | "show": true, 218 | "values": [] 219 | }, 220 | "yaxes": [ 221 | { 222 | "format": "s", 223 | "logBase": 1, 224 | "max": null, 225 | "min": null, 226 | "show": true 227 | }, 228 | { 229 | "format": "short", 230 | "logBase": 1, 231 | "max": null, 232 | "min": null, 233 | "show": true 234 | } 235 | ], 236 | "yaxis": { 237 | "align": false, 238 | "alignLevel": null 239 | } 240 | }, 241 | { 242 | "aliasColors": {}, 243 | "bars": false, 244 | "dashLength": 10, 245 | "dashes": false, 246 | "datasource": "prometheus", 247 | "description": "", 248 | "fieldConfig": { 249 | "defaults": { 250 | "custom": {}, 251 | "links": [] 252 | }, 253 | "overrides": [] 254 | }, 255 | "fill": 0, 256 | "fillGradient": 0, 257 | "gridPos": { 258 | "h": 6, 259 | "w": 6, 260 | "x": 12, 261 | "y": 0 262 | }, 263 | "hiddenSeries": false, 264 | "id": 16, 265 | "legend": { 266 | "avg": false, 267 | "current": false, 268 | "max": false, 269 | "min": false, 270 | "show": true, 271 | "total": false, 272 | "values": false 273 | }, 274 | "lines": true, 275 | "linewidth": 1, 276 | "links": [], 277 | "nullPointMode": "null", 278 | "percentage": false, 279 | "pluginVersion": "7.1.3", 280 | "pointradius": 5, 281 | "points": false, 282 | "renderer": "flot", 283 | "seriesOverrides": [], 284 | "spaceLength": 10, 285 | "stack": false, 286 | "steppedLine": false, 287 | "targets": [ 288 | { 289 | "expr": "sum(process_resident_memory_bytes{job=\"prometheus\"})", 290 | "format": "time_series", 291 | "hide": false, 292 | "interval": "", 293 | "intervalFactor": 2, 294 | "legendFormat": "p8s process resident memory", 295 | "refId": "D", 296 | "step": 20 297 | }, 298 | { 299 | "expr": "process_virtual_memory_bytes{job=\"prometheus\"}", 300 | "format": "time_series", 301 | "hide": false, 302 | "intervalFactor": 2, 303 | "legendFormat": "virtual memory", 304 | "refId": "C", 305 | "step": 20 306 | } 307 | ], 308 | "thresholds": [], 309 | "timeFrom": null, 310 | "timeRegions": [], 311 | "timeShift": null, 312 | "title": "Memory Profile", 313 | "tooltip": { 314 | "shared": true, 315 | "sort": 2, 316 | "value_type": "individual" 317 | }, 318 | "type": "graph", 319 | "xaxis": { 320 | "buckets": null, 321 | "mode": "time", 322 | "name": null, 323 | "show": true, 324 | "values": [] 325 | }, 326 | "yaxes": [ 327 | { 328 | "format": "bytes", 329 | "label": "", 330 | "logBase": 1, 331 | "max": null, 332 | "min": "0", 333 | "show": true 334 | }, 335 | { 336 | "format": "short", 337 | "label": null, 338 | "logBase": 1, 339 | "max": null, 340 | "min": null, 341 | "show": true 342 | } 343 | ], 344 | "yaxis": { 345 | "align": false, 346 | "alignLevel": null 347 | } 348 | }, 349 | { 350 | "cacheTimeout": null, 351 | "colorBackground": false, 352 | "colorValue": true, 353 | "colors": [ 354 | "rgba(50, 172, 45, 0.97)", 355 | "rgba(237, 129, 40, 0.89)", 356 | "rgba(245, 54, 54, 0.9)" 357 | ], 358 | "datasource": "prometheus", 359 | "fieldConfig": { 360 | "defaults": { 361 | "custom": {} 362 | }, 363 | "overrides": [] 364 | }, 365 | "format": "none", 366 | "gauge": { 367 | "maxValue": 100, 368 | "minValue": 0, 369 | "show": false, 370 | "thresholdLabels": false, 371 | "thresholdMarkers": true 372 | }, 373 | "gridPos": { 374 | "h": 6, 375 | "w": 6, 376 | "x": 18, 377 | "y": 0 378 | }, 379 | "id": 37, 380 | "interval": null, 381 | "links": [], 382 | "mappingType": 1, 383 | "mappingTypes": [ 384 | { 385 | "name": "value to text", 386 | "value": 1 387 | }, 388 | { 389 | "name": "range to text", 390 | "value": 2 391 | } 392 | ], 393 | "maxDataPoints": 100, 394 | "nullPointMode": "connected", 395 | "nullText": null, 396 | "postfix": "", 397 | "postfixFontSize": "50%", 398 | "prefix": "", 399 | "prefixFontSize": "50%", 400 | "rangeMaps": [ 401 | { 402 | "from": "null", 403 | "text": "N/A", 404 | "to": "null" 405 | } 406 | ], 407 | "sparkline": { 408 | "fillColor": "rgba(31, 118, 189, 0.18)", 409 | "full": false, 410 | "lineColor": "rgb(31, 120, 193)", 411 | "show": false 412 | }, 413 | "tableColumn": "prometheus_tsdb_wal_corruptions_total{instance=\"prometheus:9090\", job=\"prometheus\"}", 414 | "targets": [ 415 | { 416 | "expr": "prometheus_tsdb_wal_corruptions_total{job=\"prometheus\"}", 417 | "format": "time_series", 418 | "intervalFactor": 2, 419 | "legendFormat": "", 420 | "refId": "A", 421 | "step": 60 422 | } 423 | ], 424 | "thresholds": "0.1,1", 425 | "title": "WAL Corruptions", 426 | "type": "singlestat", 427 | "valueFontSize": "200%", 428 | "valueMaps": [ 429 | { 430 | "op": "=", 431 | "text": "None", 432 | "value": "0" 433 | } 434 | ], 435 | "valueName": "max" 436 | }, 437 | { 438 | "aliasColors": {}, 439 | "bars": false, 440 | "dashLength": 10, 441 | "dashes": false, 442 | "datasource": "prometheus", 443 | "fieldConfig": { 444 | "defaults": { 445 | "custom": {}, 446 | "links": [] 447 | }, 448 | "overrides": [] 449 | }, 450 | "fill": 0, 451 | "fillGradient": 0, 452 | "gridPos": { 453 | "h": 6, 454 | "w": 6, 455 | "x": 0, 456 | "y": 6 457 | }, 458 | "hiddenSeries": false, 459 | "id": 29, 460 | "legend": { 461 | "avg": false, 462 | "current": false, 463 | "max": false, 464 | "min": false, 465 | "show": true, 466 | "total": false, 467 | "values": false 468 | }, 469 | "lines": true, 470 | "linewidth": 1, 471 | "links": [], 472 | "nullPointMode": "null", 473 | "percentage": false, 474 | "pluginVersion": "7.1.3", 475 | "pointradius": 5, 476 | "points": false, 477 | "renderer": "flot", 478 | "seriesOverrides": [], 479 | "spaceLength": 10, 480 | "stack": false, 481 | "steppedLine": false, 482 | "targets": [ 483 | { 484 | "expr": "sum(prometheus_tsdb_head_active_appenders{job=\"prometheus\"})", 485 | "format": "time_series", 486 | "interval": "", 487 | "intervalFactor": 2, 488 | "legendFormat": "active_appenders", 489 | "metric": "", 490 | "refId": "A", 491 | "step": 20 492 | }, 493 | { 494 | "expr": "sum(process_open_fds{job=\"prometheus\"})", 495 | "format": "time_series", 496 | "interval": "", 497 | "intervalFactor": 2, 498 | "legendFormat": "open_fds", 499 | "refId": "B", 500 | "step": 20 501 | } 502 | ], 503 | "thresholds": [], 504 | "timeFrom": null, 505 | "timeRegions": [], 506 | "timeShift": null, 507 | "title": "Active Appenders", 508 | "tooltip": { 509 | "shared": true, 510 | "sort": 0, 511 | "value_type": "individual" 512 | }, 513 | "type": "graph", 514 | "xaxis": { 515 | "buckets": null, 516 | "mode": "time", 517 | "name": null, 518 | "show": true, 519 | "values": [] 520 | }, 521 | "yaxes": [ 522 | { 523 | "format": "short", 524 | "label": null, 525 | "logBase": 1, 526 | "max": null, 527 | "min": null, 528 | "show": true 529 | }, 530 | { 531 | "format": "short", 532 | "label": null, 533 | "logBase": 1, 534 | "max": null, 535 | "min": null, 536 | "show": false 537 | } 538 | ], 539 | "yaxis": { 540 | "align": false, 541 | "alignLevel": null 542 | } 543 | }, 544 | { 545 | "aliasColors": { 546 | "prometheus": "#F9BA8F", 547 | "{instance=\"localhost:9090\",interval=\"5s\",job=\"prometheus\"}": "#F9BA8F" 548 | }, 549 | "bars": false, 550 | "dashLength": 10, 551 | "dashes": false, 552 | "datasource": "prometheus", 553 | "editable": true, 554 | "error": false, 555 | "fieldConfig": { 556 | "defaults": { 557 | "custom": {}, 558 | "links": [] 559 | }, 560 | "overrides": [] 561 | }, 562 | "fill": 0, 563 | "fillGradient": 0, 564 | "grid": {}, 565 | "gridPos": { 566 | "h": 6, 567 | "w": 6, 568 | "x": 6, 569 | "y": 6 570 | }, 571 | "hiddenSeries": false, 572 | "id": 2, 573 | "legend": { 574 | "avg": false, 575 | "current": false, 576 | "max": false, 577 | "min": false, 578 | "show": true, 579 | "total": false, 580 | "values": false 581 | }, 582 | "lines": true, 583 | "linewidth": 1, 584 | "links": [], 585 | "nullPointMode": "connected", 586 | "percentage": false, 587 | "pluginVersion": "7.1.3", 588 | "pointradius": 5, 589 | "points": false, 590 | "renderer": "flot", 591 | "seriesOverrides": [], 592 | "spaceLength": 10, 593 | "stack": false, 594 | "steppedLine": false, 595 | "targets": [ 596 | { 597 | "expr": "prometheus_tsdb_blocks_loaded{job=\"prometheus\"}", 598 | "format": "time_series", 599 | "intervalFactor": 2, 600 | "legendFormat": "blocks", 601 | "refId": "A", 602 | "step": 20 603 | } 604 | ], 605 | "thresholds": [], 606 | "timeFrom": null, 607 | "timeRegions": [], 608 | "timeShift": null, 609 | "title": "Blocks Loaded", 610 | "tooltip": { 611 | "shared": true, 612 | "sort": 0, 613 | "value_type": "cumulative" 614 | }, 615 | "type": "graph", 616 | "xaxis": { 617 | "buckets": null, 618 | "mode": "time", 619 | "name": null, 620 | "show": true, 621 | "values": [] 622 | }, 623 | "yaxes": [ 624 | { 625 | "format": "short", 626 | "logBase": 1, 627 | "max": null, 628 | "min": null, 629 | "show": true 630 | }, 631 | { 632 | "format": "short", 633 | "logBase": 1, 634 | "max": null, 635 | "min": null, 636 | "show": true 637 | } 638 | ], 639 | "yaxis": { 640 | "align": false, 641 | "alignLevel": null 642 | } 643 | }, 644 | { 645 | "aliasColors": {}, 646 | "bars": false, 647 | "dashLength": 10, 648 | "dashes": false, 649 | "datasource": "prometheus", 650 | "decimals": null, 651 | "description": "", 652 | "fieldConfig": { 653 | "defaults": { 654 | "custom": {}, 655 | "links": [] 656 | }, 657 | "overrides": [] 658 | }, 659 | "fill": 0, 660 | "fillGradient": 0, 661 | "gridPos": { 662 | "h": 6, 663 | "w": 6, 664 | "x": 12, 665 | "y": 6 666 | }, 667 | "hiddenSeries": false, 668 | "id": 33, 669 | "legend": { 670 | "avg": false, 671 | "current": false, 672 | "max": false, 673 | "min": false, 674 | "show": true, 675 | "total": false, 676 | "values": false 677 | }, 678 | "lines": true, 679 | "linewidth": 1, 680 | "links": [], 681 | "nullPointMode": "connected", 682 | "percentage": false, 683 | "pluginVersion": "7.1.3", 684 | "pointradius": 5, 685 | "points": false, 686 | "renderer": "flot", 687 | "seriesOverrides": [], 688 | "spaceLength": 10, 689 | "stack": false, 690 | "steppedLine": false, 691 | "targets": [ 692 | { 693 | "expr": "prometheus_tsdb_head_chunks{job=\"prometheus\"}", 694 | "format": "time_series", 695 | "interval": "", 696 | "intervalFactor": 2, 697 | "legendFormat": "chunks", 698 | "refId": "A", 699 | "step": 20 700 | } 701 | ], 702 | "thresholds": [], 703 | "timeFrom": null, 704 | "timeRegions": [], 705 | "timeShift": null, 706 | "title": "Head Chunks", 707 | "tooltip": { 708 | "shared": true, 709 | "sort": 0, 710 | "value_type": "individual" 711 | }, 712 | "type": "graph", 713 | "xaxis": { 714 | "buckets": null, 715 | "mode": "time", 716 | "name": null, 717 | "show": true, 718 | "values": [] 719 | }, 720 | "yaxes": [ 721 | { 722 | "format": "short", 723 | "label": null, 724 | "logBase": 1, 725 | "max": null, 726 | "min": null, 727 | "show": true 728 | }, 729 | { 730 | "format": "bytes", 731 | "label": "", 732 | "logBase": 1, 733 | "max": null, 734 | "min": null, 735 | "show": false 736 | } 737 | ], 738 | "yaxis": { 739 | "align": false, 740 | "alignLevel": null 741 | } 742 | }, 743 | { 744 | "aliasColors": {}, 745 | "bars": false, 746 | "dashLength": 10, 747 | "dashes": false, 748 | "datasource": "prometheus", 749 | "fieldConfig": { 750 | "defaults": { 751 | "custom": {}, 752 | "links": [] 753 | }, 754 | "overrides": [] 755 | }, 756 | "fill": 1, 757 | "fillGradient": 0, 758 | "gridPos": { 759 | "h": 6, 760 | "w": 6, 761 | "x": 18, 762 | "y": 6 763 | }, 764 | "hiddenSeries": false, 765 | "id": 36, 766 | "legend": { 767 | "avg": false, 768 | "current": false, 769 | "max": false, 770 | "min": false, 771 | "show": true, 772 | "total": false, 773 | "values": false 774 | }, 775 | "lines": true, 776 | "linewidth": 1, 777 | "links": [], 778 | "nullPointMode": "null", 779 | "percentage": false, 780 | "pluginVersion": "7.1.3", 781 | "pointradius": 5, 782 | "points": false, 783 | "renderer": "flot", 784 | "seriesOverrides": [ 785 | { 786 | "alias": "duration-p99", 787 | "yaxis": 2 788 | } 789 | ], 790 | "spaceLength": 10, 791 | "stack": false, 792 | "steppedLine": false, 793 | "targets": [ 794 | { 795 | "expr": "prometheus_tsdb_head_gc_duration_seconds{job=\"prometheus\",quantile=\"0.99\"}", 796 | "format": "time_series", 797 | "intervalFactor": 2, 798 | "legendFormat": "duration-p99", 799 | "refId": "A", 800 | "step": 20 801 | }, 802 | { 803 | "expr": "irate(prometheus_tsdb_head_gc_duration_seconds_count{job=\"prometheus\"}[5m])", 804 | "format": "time_series", 805 | "intervalFactor": 2, 806 | "legendFormat": "collections", 807 | "refId": "B", 808 | "step": 20 809 | } 810 | ], 811 | "thresholds": [], 812 | "timeFrom": null, 813 | "timeRegions": [], 814 | "timeShift": null, 815 | "title": "Head Block GC Activity", 816 | "tooltip": { 817 | "shared": true, 818 | "sort": 0, 819 | "value_type": "individual" 820 | }, 821 | "type": "graph", 822 | "xaxis": { 823 | "buckets": null, 824 | "mode": "time", 825 | "name": null, 826 | "show": true, 827 | "values": [] 828 | }, 829 | "yaxes": [ 830 | { 831 | "format": "short", 832 | "label": null, 833 | "logBase": 1, 834 | "max": null, 835 | "min": "0", 836 | "show": true 837 | }, 838 | { 839 | "format": "s", 840 | "label": null, 841 | "logBase": 1, 842 | "max": null, 843 | "min": "0", 844 | "show": true 845 | } 846 | ], 847 | "yaxis": { 848 | "align": false, 849 | "alignLevel": null 850 | } 851 | }, 852 | { 853 | "aliasColors": {}, 854 | "bars": false, 855 | "dashLength": 10, 856 | "dashes": false, 857 | "datasource": "prometheus", 858 | "decimals": null, 859 | "description": "", 860 | "fieldConfig": { 861 | "defaults": { 862 | "custom": {}, 863 | "links": [] 864 | }, 865 | "overrides": [] 866 | }, 867 | "fill": 0, 868 | "fillGradient": 0, 869 | "gridPos": { 870 | "h": 6, 871 | "w": 8, 872 | "x": 0, 873 | "y": 12 874 | }, 875 | "hiddenSeries": false, 876 | "id": 20, 877 | "legend": { 878 | "avg": false, 879 | "current": false, 880 | "max": false, 881 | "min": false, 882 | "show": true, 883 | "total": false, 884 | "values": false 885 | }, 886 | "lines": true, 887 | "linewidth": 1, 888 | "links": [], 889 | "nullPointMode": "connected", 890 | "percentage": false, 891 | "pluginVersion": "7.1.3", 892 | "pointradius": 5, 893 | "points": false, 894 | "renderer": "flot", 895 | "seriesOverrides": [ 896 | { 897 | "alias": "duration-p99", 898 | "yaxis": 2 899 | } 900 | ], 901 | "spaceLength": 10, 902 | "stack": false, 903 | "steppedLine": false, 904 | "targets": [ 905 | { 906 | "expr": "histogram_quantile(0.99, sum(rate(prometheus_tsdb_compaction_duration_bucket{job=\"prometheus\"}[5m])) by (le))", 907 | "format": "time_series", 908 | "hide": false, 909 | "interval": "", 910 | "intervalFactor": 2, 911 | "legendFormat": "duration-{{p99}}", 912 | "refId": "A", 913 | "step": 20 914 | }, 915 | { 916 | "expr": "irate(prometheus_tsdb_compactions_total{job=\"prometheus\"}[5m])", 917 | "format": "time_series", 918 | "intervalFactor": 2, 919 | "legendFormat": "compactions", 920 | "refId": "B", 921 | "step": 20 922 | }, 923 | { 924 | "expr": "irate(prometheus_tsdb_compactions_failed_total{job=\"prometheus\"}[5m])", 925 | "format": "time_series", 926 | "intervalFactor": 2, 927 | "legendFormat": "failed", 928 | "refId": "C", 929 | "step": 20 930 | }, 931 | { 932 | "expr": "irate(prometheus_tsdb_compactions_triggered_total{job=\"prometheus\"}[5m])", 933 | "format": "time_series", 934 | "intervalFactor": 2, 935 | "legendFormat": "triggered", 936 | "refId": "D", 937 | "step": 20 938 | } 939 | ], 940 | "thresholds": [], 941 | "timeFrom": null, 942 | "timeRegions": [], 943 | "timeShift": null, 944 | "title": "Compaction Activity", 945 | "tooltip": { 946 | "shared": true, 947 | "sort": 0, 948 | "value_type": "individual" 949 | }, 950 | "type": "graph", 951 | "xaxis": { 952 | "buckets": null, 953 | "mode": "time", 954 | "name": null, 955 | "show": true, 956 | "values": [] 957 | }, 958 | "yaxes": [ 959 | { 960 | "format": "short", 961 | "label": null, 962 | "logBase": 1, 963 | "max": null, 964 | "min": "0", 965 | "show": true 966 | }, 967 | { 968 | "format": "s", 969 | "label": "", 970 | "logBase": 1, 971 | "max": null, 972 | "min": "0", 973 | "show": true 974 | } 975 | ], 976 | "yaxis": { 977 | "align": false, 978 | "alignLevel": null 979 | } 980 | }, 981 | { 982 | "aliasColors": {}, 983 | "bars": false, 984 | "dashLength": 10, 985 | "dashes": false, 986 | "datasource": "prometheus", 987 | "fieldConfig": { 988 | "defaults": { 989 | "custom": {}, 990 | "links": [] 991 | }, 992 | "overrides": [] 993 | }, 994 | "fill": 1, 995 | "fillGradient": 0, 996 | "gridPos": { 997 | "h": 6, 998 | "w": 8, 999 | "x": 8, 1000 | "y": 12 1001 | }, 1002 | "hiddenSeries": false, 1003 | "id": 32, 1004 | "legend": { 1005 | "avg": false, 1006 | "current": false, 1007 | "max": false, 1008 | "min": false, 1009 | "show": true, 1010 | "total": false, 1011 | "values": false 1012 | }, 1013 | "lines": true, 1014 | "linewidth": 1, 1015 | "links": [], 1016 | "nullPointMode": "null", 1017 | "percentage": false, 1018 | "pluginVersion": "7.1.3", 1019 | "pointradius": 5, 1020 | "points": false, 1021 | "renderer": "flot", 1022 | "seriesOverrides": [], 1023 | "spaceLength": 10, 1024 | "stack": false, 1025 | "steppedLine": false, 1026 | "targets": [ 1027 | { 1028 | "expr": "rate(prometheus_tsdb_reloads_total{job=\"prometheus\"}[5m])", 1029 | "format": "time_series", 1030 | "intervalFactor": 2, 1031 | "legendFormat": "reloads", 1032 | "refId": "A", 1033 | "step": 20 1034 | }, 1035 | { 1036 | "expr": "rate(prometheus_tsdb_reloads_failures_total{job=\"prometheus\"}[5m])", 1037 | "format": "time_series", 1038 | "hide": false, 1039 | "intervalFactor": 2, 1040 | "legendFormat": "failures", 1041 | "refId": "B", 1042 | "step": 20 1043 | } 1044 | ], 1045 | "thresholds": [], 1046 | "timeFrom": null, 1047 | "timeRegions": [], 1048 | "timeShift": null, 1049 | "title": "Reload Count", 1050 | "tooltip": { 1051 | "shared": true, 1052 | "sort": 0, 1053 | "value_type": "individual" 1054 | }, 1055 | "type": "graph", 1056 | "xaxis": { 1057 | "buckets": null, 1058 | "mode": "time", 1059 | "name": null, 1060 | "show": true, 1061 | "values": [] 1062 | }, 1063 | "yaxes": [ 1064 | { 1065 | "format": "short", 1066 | "label": null, 1067 | "logBase": 1, 1068 | "max": null, 1069 | "min": null, 1070 | "show": true 1071 | }, 1072 | { 1073 | "format": "short", 1074 | "label": null, 1075 | "logBase": 1, 1076 | "max": null, 1077 | "min": null, 1078 | "show": true 1079 | } 1080 | ], 1081 | "yaxis": { 1082 | "align": false, 1083 | "alignLevel": null 1084 | } 1085 | }, 1086 | { 1087 | "aliasColors": {}, 1088 | "bars": false, 1089 | "dashLength": 10, 1090 | "dashes": false, 1091 | "datasource": "prometheus", 1092 | "fieldConfig": { 1093 | "defaults": { 1094 | "custom": {}, 1095 | "links": [] 1096 | }, 1097 | "overrides": [] 1098 | }, 1099 | "fill": 0, 1100 | "fillGradient": 0, 1101 | "gridPos": { 1102 | "h": 6, 1103 | "w": 8, 1104 | "x": 16, 1105 | "y": 12 1106 | }, 1107 | "hiddenSeries": false, 1108 | "id": 38, 1109 | "legend": { 1110 | "avg": false, 1111 | "current": false, 1112 | "max": false, 1113 | "min": false, 1114 | "show": true, 1115 | "total": false, 1116 | "values": false 1117 | }, 1118 | "lines": true, 1119 | "linewidth": 1, 1120 | "links": [], 1121 | "nullPointMode": "null", 1122 | "percentage": false, 1123 | "pluginVersion": "7.1.3", 1124 | "pointradius": 5, 1125 | "points": false, 1126 | "renderer": "flot", 1127 | "seriesOverrides": [], 1128 | "spaceLength": 10, 1129 | "stack": false, 1130 | "steppedLine": false, 1131 | "targets": [ 1132 | { 1133 | "expr": "prometheus_engine_query_duration_seconds{job=\"prometheus\", quantile=\"0.99\"}", 1134 | "format": "time_series", 1135 | "intervalFactor": 2, 1136 | "legendFormat": "{{slice}}_p99", 1137 | "refId": "A", 1138 | "step": 20 1139 | } 1140 | ], 1141 | "thresholds": [], 1142 | "timeFrom": null, 1143 | "timeRegions": [], 1144 | "timeShift": null, 1145 | "title": "Query Durations", 1146 | "tooltip": { 1147 | "shared": true, 1148 | "sort": 0, 1149 | "value_type": "individual" 1150 | }, 1151 | "type": "graph", 1152 | "xaxis": { 1153 | "buckets": null, 1154 | "mode": "time", 1155 | "name": null, 1156 | "show": true, 1157 | "values": [] 1158 | }, 1159 | "yaxes": [ 1160 | { 1161 | "format": "short", 1162 | "label": null, 1163 | "logBase": 1, 1164 | "max": null, 1165 | "min": null, 1166 | "show": true 1167 | }, 1168 | { 1169 | "format": "short", 1170 | "label": null, 1171 | "logBase": 1, 1172 | "max": null, 1173 | "min": null, 1174 | "show": true 1175 | } 1176 | ], 1177 | "yaxis": { 1178 | "align": false, 1179 | "alignLevel": null 1180 | } 1181 | }, 1182 | { 1183 | "aliasColors": {}, 1184 | "bars": false, 1185 | "dashLength": 10, 1186 | "dashes": false, 1187 | "datasource": "prometheus", 1188 | "decimals": null, 1189 | "editable": true, 1190 | "error": false, 1191 | "fieldConfig": { 1192 | "defaults": { 1193 | "custom": {}, 1194 | "links": [] 1195 | }, 1196 | "overrides": [] 1197 | }, 1198 | "fill": 0, 1199 | "fillGradient": 0, 1200 | "grid": {}, 1201 | "gridPos": { 1202 | "h": 7, 1203 | "w": 12, 1204 | "x": 0, 1205 | "y": 18 1206 | }, 1207 | "hiddenSeries": false, 1208 | "id": 35, 1209 | "legend": { 1210 | "alignAsTable": false, 1211 | "avg": false, 1212 | "current": false, 1213 | "hideEmpty": true, 1214 | "max": false, 1215 | "min": false, 1216 | "show": true, 1217 | "total": false, 1218 | "values": false 1219 | }, 1220 | "lines": true, 1221 | "linewidth": 1, 1222 | "links": [], 1223 | "nullPointMode": "connected", 1224 | "percentage": false, 1225 | "pluginVersion": "7.1.3", 1226 | "pointradius": 5, 1227 | "points": false, 1228 | "renderer": "flot", 1229 | "seriesOverrides": [], 1230 | "spaceLength": 10, 1231 | "stack": false, 1232 | "steppedLine": false, 1233 | "targets": [ 1234 | { 1235 | "expr": "max(prometheus_rule_group_duration_seconds{job=\"prometheus\"}) by (quantile)", 1236 | "format": "time_series", 1237 | "interval": "", 1238 | "intervalFactor": 2, 1239 | "legendFormat": "{{quantile}}", 1240 | "refId": "A", 1241 | "step": 10 1242 | } 1243 | ], 1244 | "thresholds": [], 1245 | "timeFrom": null, 1246 | "timeRegions": [], 1247 | "timeShift": null, 1248 | "title": "Rule Group Eval Duration", 1249 | "tooltip": { 1250 | "shared": true, 1251 | "sort": 0, 1252 | "value_type": "cumulative" 1253 | }, 1254 | "type": "graph", 1255 | "xaxis": { 1256 | "buckets": null, 1257 | "mode": "time", 1258 | "name": null, 1259 | "show": true, 1260 | "values": [] 1261 | }, 1262 | "yaxes": [ 1263 | { 1264 | "format": "s", 1265 | "label": "", 1266 | "logBase": 1, 1267 | "max": null, 1268 | "min": null, 1269 | "show": true 1270 | }, 1271 | { 1272 | "format": "short", 1273 | "logBase": 1, 1274 | "max": null, 1275 | "min": null, 1276 | "show": true 1277 | } 1278 | ], 1279 | "yaxis": { 1280 | "align": false, 1281 | "alignLevel": null 1282 | } 1283 | }, 1284 | { 1285 | "aliasColors": {}, 1286 | "bars": false, 1287 | "dashLength": 10, 1288 | "dashes": false, 1289 | "datasource": "prometheus", 1290 | "fieldConfig": { 1291 | "defaults": { 1292 | "custom": {}, 1293 | "links": [] 1294 | }, 1295 | "overrides": [] 1296 | }, 1297 | "fill": 1, 1298 | "fillGradient": 0, 1299 | "gridPos": { 1300 | "h": 7, 1301 | "w": 12, 1302 | "x": 12, 1303 | "y": 18 1304 | }, 1305 | "hiddenSeries": false, 1306 | "id": 39, 1307 | "legend": { 1308 | "avg": false, 1309 | "current": false, 1310 | "max": false, 1311 | "min": false, 1312 | "show": true, 1313 | "total": false, 1314 | "values": false 1315 | }, 1316 | "lines": true, 1317 | "linewidth": 1, 1318 | "links": [], 1319 | "nullPointMode": "null", 1320 | "percentage": false, 1321 | "pluginVersion": "7.1.3", 1322 | "pointradius": 5, 1323 | "points": false, 1324 | "renderer": "flot", 1325 | "seriesOverrides": [], 1326 | "spaceLength": 10, 1327 | "stack": true, 1328 | "steppedLine": false, 1329 | "targets": [ 1330 | { 1331 | "expr": "rate(prometheus_rule_group_iterations_missed_total{job=\"prometheus\"}[5m])", 1332 | "format": "time_series", 1333 | "intervalFactor": 2, 1334 | "legendFormat": "missed", 1335 | "refId": "B", 1336 | "step": 10 1337 | }, 1338 | { 1339 | "expr": "rate(prometheus_rule_group_iterations_total{job=\"prometheus\"}[5m])", 1340 | "format": "time_series", 1341 | "intervalFactor": 2, 1342 | "legendFormat": "iterations", 1343 | "refId": "A", 1344 | "step": 10 1345 | } 1346 | ], 1347 | "thresholds": [], 1348 | "timeFrom": null, 1349 | "timeRegions": [], 1350 | "timeShift": null, 1351 | "title": "Rule Group Eval Activity", 1352 | "tooltip": { 1353 | "shared": true, 1354 | "sort": 0, 1355 | "value_type": "individual" 1356 | }, 1357 | "type": "graph", 1358 | "xaxis": { 1359 | "buckets": null, 1360 | "mode": "time", 1361 | "name": null, 1362 | "show": true, 1363 | "values": [] 1364 | }, 1365 | "yaxes": [ 1366 | { 1367 | "format": "short", 1368 | "label": null, 1369 | "logBase": 1, 1370 | "max": null, 1371 | "min": null, 1372 | "show": true 1373 | }, 1374 | { 1375 | "format": "short", 1376 | "label": null, 1377 | "logBase": 1, 1378 | "max": null, 1379 | "min": null, 1380 | "show": true 1381 | } 1382 | ], 1383 | "yaxis": { 1384 | "align": false, 1385 | "alignLevel": null 1386 | } 1387 | } 1388 | ], 1389 | "refresh": "1m", 1390 | "revision": "1.0", 1391 | "schemaVersion": 26, 1392 | "style": "dark", 1393 | "tags": [ 1394 | "prometheus" 1395 | ], 1396 | "templating": { 1397 | "list": [] 1398 | }, 1399 | "time": { 1400 | "from": "now-1h", 1401 | "to": "now" 1402 | }, 1403 | "timepicker": { 1404 | "now": true, 1405 | "refresh_intervals": [ 1406 | "5s", 1407 | "10s", 1408 | "30s", 1409 | "1m", 1410 | "5m", 1411 | "15m", 1412 | "30m", 1413 | "1h", 1414 | "2h", 1415 | "1d" 1416 | ], 1417 | "time_options": [ 1418 | "5m", 1419 | "15m", 1420 | "1h", 1421 | "6h", 1422 | "12h", 1423 | "24h", 1424 | "2d", 1425 | "7d", 1426 | "30d" 1427 | ] 1428 | }, 1429 | "timezone": "browser", 1430 | "title": "Prometheus Stats", 1431 | "uid": "5x7BveSMz", 1432 | "version": 1 1433 | } -------------------------------------------------------------------------------- /conf/grafana/dashboards/SystemStatus.json: -------------------------------------------------------------------------------- 1 | { 2 | "annotations": { 3 | "list": [ 4 | { 5 | "builtIn": 1, 6 | "datasource": "-- Grafana --", 7 | "enable": true, 8 | "hide": true, 9 | "iconColor": "rgba(0, 211, 255, 1)", 10 | "name": "Annotations & Alerts", 11 | "type": "dashboard" 12 | } 13 | ] 14 | }, 15 | "description": "Support Node Exporter v0.16 and above. Optimize the main metrics display. Includes: CPU, memory, disk IO, network, temperature and other monitoring metrics。https://github.com/starsliao/Prometheus", 16 | "editable": true, 17 | "gnetId": 11074, 18 | "graphTooltip": 0, 19 | "id": 16, 20 | "iteration": 1583752365744, 21 | "links": [ 22 | { 23 | "asDropdown": false, 24 | "icon": "info", 25 | "includeVars": false, 26 | "tags": [ 27 | "$node" 28 | ], 29 | "targetBlank": true, 30 | "title": "Server IP:$node", 31 | "type": "link", 32 | "url": "" 33 | }, 34 | { 35 | "icon": "external link", 36 | "tags": [], 37 | "targetBlank": true, 38 | "title": "Update node_exporter", 39 | "tooltip": "", 40 | "type": "link", 41 | "url": "https://github.com/prometheus/node_exporter/releases" 42 | }, 43 | { 44 | "icon": "external link", 45 | "tags": [], 46 | "targetBlank": true, 47 | "title": "Update Dashboards", 48 | "tooltip": "", 49 | "type": "link", 50 | "url": "https://grafana.com/dashboards/11074" 51 | } 52 | ], 53 | "panels": [ 54 | { 55 | "cacheTimeout": null, 56 | "colorBackground": false, 57 | "colorPostfix": false, 58 | "colorPrefix": false, 59 | "colorValue": true, 60 | "colors": [ 61 | "rgba(245, 54, 54, 0.9)", 62 | "rgba(237, 129, 40, 0.89)", 63 | "rgba(50, 172, 45, 0.97)" 64 | ], 65 | "datasource": "prometheus", 66 | "decimals": 1, 67 | "description": "", 68 | "format": "s", 69 | "gauge": { 70 | "maxValue": 100, 71 | "minValue": 0, 72 | "show": false, 73 | "thresholdLabels": false, 74 | "thresholdMarkers": true 75 | }, 76 | "gridPos": { 77 | "h": 3, 78 | "w": 2, 79 | "x": 0, 80 | "y": 0 81 | }, 82 | "hideTimeOverride": true, 83 | "id": 15, 84 | "interval": null, 85 | "links": [], 86 | "mappingType": 1, 87 | "mappingTypes": [ 88 | { 89 | "name": "value to text", 90 | "value": 1 91 | }, 92 | { 93 | "name": "range to text", 94 | "value": 2 95 | } 96 | ], 97 | "maxDataPoints": 100, 98 | "nullPointMode": "null", 99 | "nullText": null, 100 | "options": {}, 101 | "pluginVersion": "6.4.2", 102 | "postfix": "", 103 | "postfixFontSize": "50%", 104 | "prefix": "", 105 | "prefixFontSize": "50%", 106 | "rangeMaps": [ 107 | { 108 | "from": "null", 109 | "text": "N/A", 110 | "to": "null" 111 | } 112 | ], 113 | "sparkline": { 114 | "fillColor": "rgba(31, 118, 189, 0.18)", 115 | "full": false, 116 | "lineColor": "rgb(31, 120, 193)", 117 | "show": false 118 | }, 119 | "tableColumn": "", 120 | "targets": [ 121 | { 122 | "expr": "sum(time() - node_boot_time_seconds{instance=~\"$node\"})", 123 | "format": "time_series", 124 | "hide": false, 125 | "instant": true, 126 | "intervalFactor": 1, 127 | "refId": "A", 128 | "step": 40 129 | } 130 | ], 131 | "thresholds": "1,2", 132 | "title": "System Uptime", 133 | "type": "singlestat", 134 | "valueFontSize": "100%", 135 | "valueMaps": [ 136 | { 137 | "op": "=", 138 | "text": "N/A", 139 | "value": "null" 140 | } 141 | ], 142 | "valueName": "current" 143 | }, 144 | { 145 | "cacheTimeout": null, 146 | "colorBackground": false, 147 | "colorValue": true, 148 | "colors": [ 149 | "rgba(245, 54, 54, 0.9)", 150 | "rgba(237, 129, 40, 0.89)", 151 | "rgba(50, 172, 45, 0.97)" 152 | ], 153 | "datasource": "prometheus", 154 | "decimals": 2, 155 | "description": "", 156 | "format": "bytes", 157 | "gauge": { 158 | "maxValue": 100, 159 | "minValue": 0, 160 | "show": false, 161 | "thresholdLabels": false, 162 | "thresholdMarkers": true 163 | }, 164 | "gridPos": { 165 | "h": 3, 166 | "w": 3, 167 | "x": 2, 168 | "y": 0 169 | }, 170 | "id": 75, 171 | "interval": null, 172 | "links": [], 173 | "mappingType": 1, 174 | "mappingTypes": [ 175 | { 176 | "name": "value to text", 177 | "value": 1 178 | }, 179 | { 180 | "name": "range to text", 181 | "value": 2 182 | } 183 | ], 184 | "maxDataPoints": 100, 185 | "maxPerRow": 6, 186 | "nullPointMode": "null", 187 | "nullText": null, 188 | "options": {}, 189 | "postfix": "", 190 | "postfixFontSize": "70%", 191 | "prefix": "", 192 | "prefixFontSize": "50%", 193 | "rangeMaps": [ 194 | { 195 | "from": "null", 196 | "text": "N/A", 197 | "to": "null" 198 | } 199 | ], 200 | "sparkline": { 201 | "fillColor": "rgba(31, 118, 189, 0.18)", 202 | "full": false, 203 | "lineColor": "rgb(31, 120, 193)", 204 | "show": false 205 | }, 206 | "tableColumn": "", 207 | "targets": [ 208 | { 209 | "expr": "sum(node_memory_MemTotal_bytes{instance=~\"$node\"})", 210 | "format": "time_series", 211 | "instant": true, 212 | "intervalFactor": 1, 213 | "legendFormat": "{{instance}}", 214 | "refId": "A", 215 | "step": 20 216 | } 217 | ], 218 | "thresholds": "2,3", 219 | "title": "Total RAM", 220 | "type": "singlestat", 221 | "valueFontSize": "80%", 222 | "valueMaps": [ 223 | { 224 | "op": "=", 225 | "text": "N/A", 226 | "value": "null" 227 | } 228 | ], 229 | "valueName": "current" 230 | }, 231 | { 232 | "datasource": "prometheus", 233 | "gridPos": { 234 | "h": 6, 235 | "w": 3, 236 | "x": 5, 237 | "y": 0 238 | }, 239 | "id": 177, 240 | "options": { 241 | "displayMode": "lcd", 242 | "fieldOptions": { 243 | "calcs": [ 244 | "last" 245 | ], 246 | "defaults": { 247 | "color": { 248 | "mode": "thresholds" 249 | }, 250 | "mappings": [], 251 | "max": 100, 252 | "min": 0, 253 | "thresholds": { 254 | "mode": "absolute", 255 | "steps": [ 256 | { 257 | "color": "green", 258 | "value": null 259 | }, 260 | { 261 | "color": "#EAB839", 262 | "value": 60 263 | }, 264 | { 265 | "color": "red", 266 | "value": 80 267 | } 268 | ] 269 | }, 270 | "title": "", 271 | "unit": "percent" 272 | }, 273 | "overrides": [], 274 | "values": false 275 | }, 276 | "orientation": "horizontal", 277 | "showUnfilled": true 278 | }, 279 | "pluginVersion": "6.6.2", 280 | "targets": [ 281 | { 282 | "expr": "100 - (avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"idle\"}[30m])) * 100)", 283 | "instant": true, 284 | "legendFormat": "CPU Busy", 285 | "refId": "A" 286 | }, 287 | { 288 | "expr": "avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"iowait\"}[30m])) * 100", 289 | "hide": true, 290 | "instant": true, 291 | "legendFormat": "Busy Iowait", 292 | "refId": "C" 293 | }, 294 | { 295 | "expr": "(1 - (node_memory_MemAvailable_bytes{instance=~\"$node\"} / (node_memory_MemTotal_bytes{instance=~\"$node\"})))* 100", 296 | "instant": true, 297 | "legendFormat": "Used RAM Memory", 298 | "refId": "B" 299 | }, 300 | { 301 | "expr": "100 - ((node_filesystem_avail_bytes{instance=~\"$node\",mountpoint=\"$maxmount\",fstype=~\"ext4|xfs\"} * 100) / node_filesystem_size_bytes {instance=~\"$node\",mountpoint=\"$maxmount\",fstype=~\"ext4|xfs\"})", 302 | "hide": false, 303 | "instant": true, 304 | "legendFormat": "Used Max Mount($maxmount)", 305 | "refId": "D" 306 | }, 307 | { 308 | "expr": "(1 - (node_memory_SwapFree_bytes{instance=~\"$node\"} / node_memory_SwapTotal_bytes{instance=~\"$node\"})) * 100", 309 | "instant": true, 310 | "legendFormat": "Used SWAP", 311 | "refId": "E" 312 | } 313 | ], 314 | "timeFrom": null, 315 | "timeShift": null, 316 | "title": "", 317 | "type": "bargauge" 318 | }, 319 | { 320 | "columns": [], 321 | "datasource": "prometheus", 322 | "fontSize": "110%", 323 | "gridPos": { 324 | "h": 6, 325 | "w": 10, 326 | "x": 8, 327 | "y": 0 328 | }, 329 | "id": 164, 330 | "links": [], 331 | "options": {}, 332 | "pageSize": null, 333 | "scroll": true, 334 | "showHeader": true, 335 | "sort": { 336 | "col": 6, 337 | "desc": false 338 | }, 339 | "styles": [ 340 | { 341 | "alias": "Mounted on", 342 | "align": "auto", 343 | "colorMode": null, 344 | "colors": [ 345 | "rgba(50, 172, 45, 0.97)", 346 | "rgba(237, 129, 40, 0.89)", 347 | "rgba(245, 54, 54, 0.9)" 348 | ], 349 | "dateFormat": "YYYY-MM-DD HH:mm:ss", 350 | "decimals": 2, 351 | "mappingType": 1, 352 | "pattern": "mountpoint", 353 | "thresholds": [ 354 | "" 355 | ], 356 | "type": "string", 357 | "unit": "bytes" 358 | }, 359 | { 360 | "alias": "Avail", 361 | "align": "auto", 362 | "colorMode": "value", 363 | "colors": [ 364 | "rgba(245, 54, 54, 0.9)", 365 | "rgba(237, 129, 40, 0.89)", 366 | "rgba(50, 172, 45, 0.97)" 367 | ], 368 | "dateFormat": "YYYY-MM-DD HH:mm:ss", 369 | "decimals": 2, 370 | "mappingType": 1, 371 | "pattern": "Value #A", 372 | "thresholds": [ 373 | "10000000000", 374 | "20000000000" 375 | ], 376 | "type": "number", 377 | "unit": "bytes" 378 | }, 379 | { 380 | "alias": "Used", 381 | "align": "auto", 382 | "colorMode": "cell", 383 | "colors": [ 384 | "rgba(50, 172, 45, 0.97)", 385 | "rgba(237, 129, 40, 0.89)", 386 | "rgba(245, 54, 54, 0.9)" 387 | ], 388 | "dateFormat": "YYYY-MM-DD HH:mm:ss", 389 | "decimals": 2, 390 | "mappingType": 1, 391 | "pattern": "Value #B", 392 | "thresholds": [ 393 | "0.6", 394 | "0.8" 395 | ], 396 | "type": "number", 397 | "unit": "percentunit" 398 | }, 399 | { 400 | "alias": "Size", 401 | "align": "auto", 402 | "colorMode": null, 403 | "colors": [ 404 | "rgba(245, 54, 54, 0.9)", 405 | "rgba(237, 129, 40, 0.89)", 406 | "rgba(50, 172, 45, 0.97)" 407 | ], 408 | "dateFormat": "YYYY-MM-DD HH:mm:ss", 409 | "decimals": 1, 410 | "link": false, 411 | "mappingType": 1, 412 | "pattern": "Value #C", 413 | "thresholds": [], 414 | "type": "number", 415 | "unit": "bytes" 416 | }, 417 | { 418 | "alias": "Filesystem", 419 | "align": "auto", 420 | "colorMode": null, 421 | "colors": [ 422 | "rgba(245, 54, 54, 0.9)", 423 | "rgba(237, 129, 40, 0.89)", 424 | "rgba(50, 172, 45, 0.97)" 425 | ], 426 | "dateFormat": "YYYY-MM-DD HH:mm:ss", 427 | "decimals": 2, 428 | "link": false, 429 | "mappingType": 1, 430 | "pattern": "fstype", 431 | "thresholds": [], 432 | "type": "string", 433 | "unit": "short" 434 | }, 435 | { 436 | "alias": "IP", 437 | "align": "auto", 438 | "colorMode": null, 439 | "colors": [ 440 | "rgba(245, 54, 54, 0.9)", 441 | "rgba(237, 129, 40, 0.89)", 442 | "rgba(50, 172, 45, 0.97)" 443 | ], 444 | "dateFormat": "YYYY-MM-DD HH:mm:ss", 445 | "decimals": 2, 446 | "link": false, 447 | "mappingType": 1, 448 | "pattern": "instance", 449 | "preserveFormat": false, 450 | "sanitize": false, 451 | "thresholds": [], 452 | "type": "string", 453 | "unit": "short" 454 | }, 455 | { 456 | "alias": "", 457 | "align": "auto", 458 | "colorMode": null, 459 | "colors": [ 460 | "rgba(245, 54, 54, 0.9)", 461 | "rgba(237, 129, 40, 0.89)", 462 | "rgba(50, 172, 45, 0.97)" 463 | ], 464 | "decimals": 2, 465 | "pattern": "/.*/", 466 | "preserveFormat": true, 467 | "sanitize": false, 468 | "thresholds": [], 469 | "type": "hidden", 470 | "unit": "short" 471 | } 472 | ], 473 | "targets": [ 474 | { 475 | "expr": "node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext4|xfs\"}-0", 476 | "format": "table", 477 | "hide": false, 478 | "instant": true, 479 | "intervalFactor": 1, 480 | "legendFormat": "", 481 | "refId": "C" 482 | }, 483 | { 484 | "expr": "node_filesystem_avail_bytes {instance=~'$node',fstype=~\"ext4|xfs\"}-0", 485 | "format": "table", 486 | "hide": false, 487 | "instant": true, 488 | "interval": "10s", 489 | "intervalFactor": 1, 490 | "legendFormat": "", 491 | "refId": "A" 492 | }, 493 | { 494 | "expr": "1-(node_filesystem_free_bytes{instance=~'$node',fstype=~\"ext4|xfs\"} / node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext4|xfs\"})", 495 | "format": "table", 496 | "hide": false, 497 | "instant": true, 498 | "intervalFactor": 1, 499 | "legendFormat": "", 500 | "refId": "B" 501 | } 502 | ], 503 | "title": "Disk Space Used Basic(EXT4/XFS)", 504 | "transform": "table", 505 | "type": "table" 506 | }, 507 | { 508 | "aliasColors": { 509 | "filefd_192.168.200.241:9100": "super-light-green", 510 | "switches_192.168.200.241:9100": "semi-dark-red" 511 | }, 512 | "bars": false, 513 | "cacheTimeout": null, 514 | "dashLength": 10, 515 | "dashes": false, 516 | "datasource": "prometheus", 517 | "description": "", 518 | "fill": 0, 519 | "fillGradient": 1, 520 | "gridPos": { 521 | "h": 6, 522 | "w": 6, 523 | "x": 18, 524 | "y": 0 525 | }, 526 | "hiddenSeries": false, 527 | "hideTimeOverride": false, 528 | "id": 16, 529 | "legend": { 530 | "alignAsTable": false, 531 | "avg": false, 532 | "current": true, 533 | "max": true, 534 | "min": false, 535 | "rightSide": false, 536 | "show": true, 537 | "total": false, 538 | "values": true 539 | }, 540 | "lines": true, 541 | "linewidth": 2, 542 | "links": [], 543 | "nullPointMode": "null", 544 | "options": { 545 | "dataLinks": [] 546 | }, 547 | "percentage": false, 548 | "pluginVersion": "6.4.2", 549 | "pointradius": 1, 550 | "points": false, 551 | "renderer": "flot", 552 | "seriesOverrides": [ 553 | { 554 | "alias": "/filefd_.*/", 555 | "lines": false, 556 | "pointradius": 1, 557 | "points": true 558 | }, 559 | { 560 | "alias": "/switches_.*/", 561 | "color": "#F2495C", 562 | "yaxis": 2 563 | } 564 | ], 565 | "spaceLength": 10, 566 | "stack": false, 567 | "steppedLine": false, 568 | "targets": [ 569 | { 570 | "expr": "node_filefd_allocated{instance=~\"$node\"}", 571 | "format": "time_series", 572 | "instant": false, 573 | "interval": "", 574 | "intervalFactor": 5, 575 | "legendFormat": "filefd_{{instance}}", 576 | "refId": "B" 577 | }, 578 | { 579 | "expr": "irate(node_context_switches_total{instance=~\"$node\"}[30m])", 580 | "intervalFactor": 5, 581 | "legendFormat": "switches_{{instance}}", 582 | "refId": "A" 583 | }, 584 | { 585 | "expr": "node_filefd_maximum{instance=~\"$node\"}", 586 | "hide": true, 587 | "refId": "C" 588 | } 589 | ], 590 | "thresholds": [], 591 | "timeFrom": null, 592 | "timeRegions": [], 593 | "timeShift": null, 594 | "title": "Open File Descriptor(left)/Context switches(right)", 595 | "tooltip": { 596 | "shared": true, 597 | "sort": 2, 598 | "value_type": "individual" 599 | }, 600 | "type": "graph", 601 | "xaxis": { 602 | "buckets": null, 603 | "mode": "time", 604 | "name": null, 605 | "show": true, 606 | "values": [] 607 | }, 608 | "yaxes": [ 609 | { 610 | "format": "short", 611 | "label": "", 612 | "logBase": 1, 613 | "max": null, 614 | "min": null, 615 | "show": true 616 | }, 617 | { 618 | "format": "short", 619 | "label": "context_switches", 620 | "logBase": 1, 621 | "max": null, 622 | "min": null, 623 | "show": true 624 | } 625 | ], 626 | "yaxis": { 627 | "align": false, 628 | "alignLevel": null 629 | } 630 | }, 631 | { 632 | "cacheTimeout": null, 633 | "colorBackground": false, 634 | "colorPostfix": false, 635 | "colorValue": true, 636 | "colors": [ 637 | "rgba(245, 54, 54, 0.9)", 638 | "rgba(237, 129, 40, 0.89)", 639 | "rgba(50, 172, 45, 0.97)" 640 | ], 641 | "datasource": "prometheus", 642 | "description": "", 643 | "format": "short", 644 | "gauge": { 645 | "maxValue": 100, 646 | "minValue": 0, 647 | "show": false, 648 | "thresholdLabels": false, 649 | "thresholdMarkers": true 650 | }, 651 | "gridPos": { 652 | "h": 3, 653 | "w": 2, 654 | "x": 0, 655 | "y": 3 656 | }, 657 | "id": 14, 658 | "interval": null, 659 | "links": [], 660 | "mappingType": 1, 661 | "mappingTypes": [ 662 | { 663 | "name": "value to text", 664 | "value": 1 665 | }, 666 | { 667 | "name": "range to text", 668 | "value": 2 669 | } 670 | ], 671 | "maxDataPoints": 100, 672 | "maxPerRow": 6, 673 | "nullPointMode": "null", 674 | "nullText": null, 675 | "options": {}, 676 | "postfix": "", 677 | "postfixFontSize": "50%", 678 | "prefix": "", 679 | "prefixFontSize": "50%", 680 | "rangeMaps": [ 681 | { 682 | "from": "null", 683 | "text": "N/A", 684 | "to": "null" 685 | } 686 | ], 687 | "sparkline": { 688 | "fillColor": "rgba(31, 118, 189, 0.18)", 689 | "full": false, 690 | "lineColor": "rgb(31, 120, 193)", 691 | "show": false 692 | }, 693 | "tableColumn": "", 694 | "targets": [ 695 | { 696 | "expr": "sum(count(node_cpu_seconds_total{instance=~\"$node\", mode='system'}) by (cpu))", 697 | "format": "time_series", 698 | "instant": true, 699 | "intervalFactor": 1, 700 | "legendFormat": "", 701 | "refId": "A", 702 | "step": 20 703 | } 704 | ], 705 | "thresholds": "1,2", 706 | "title": "CPU Cores", 707 | "type": "singlestat", 708 | "valueFontSize": "100%", 709 | "valueMaps": [ 710 | { 711 | "op": "=", 712 | "text": "N/A", 713 | "value": "null" 714 | } 715 | ], 716 | "valueName": "current" 717 | }, 718 | { 719 | "cacheTimeout": null, 720 | "colorBackground": false, 721 | "colorValue": true, 722 | "colors": [ 723 | "#299c46", 724 | "rgba(237, 129, 40, 0.89)", 725 | "#d44a3a" 726 | ], 727 | "datasource": "prometheus", 728 | "decimals": 2, 729 | "description": "", 730 | "format": "percent", 731 | "gauge": { 732 | "maxValue": 100, 733 | "minValue": 0, 734 | "show": false, 735 | "thresholdLabels": false, 736 | "thresholdMarkers": true 737 | }, 738 | "gridPos": { 739 | "h": 3, 740 | "w": 3, 741 | "x": 2, 742 | "y": 3 743 | }, 744 | "id": 20, 745 | "interval": null, 746 | "links": [], 747 | "mappingType": 1, 748 | "mappingTypes": [ 749 | { 750 | "name": "value to text", 751 | "value": 1 752 | }, 753 | { 754 | "name": "range to text", 755 | "value": 2 756 | } 757 | ], 758 | "maxDataPoints": 100, 759 | "nullPointMode": "connected", 760 | "nullText": null, 761 | "options": {}, 762 | "pluginVersion": "6.4.2", 763 | "postfix": "", 764 | "postfixFontSize": "50%", 765 | "prefix": "", 766 | "prefixFontSize": "50%", 767 | "rangeMaps": [ 768 | { 769 | "from": "null", 770 | "text": "N/A", 771 | "to": "null" 772 | } 773 | ], 774 | "sparkline": { 775 | "fillColor": "rgba(31, 118, 189, 0.18)", 776 | "full": false, 777 | "lineColor": "#3274D9", 778 | "show": true, 779 | "ymax": null, 780 | "ymin": null 781 | }, 782 | "tableColumn": "", 783 | "targets": [ 784 | { 785 | "expr": "avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"iowait\"}[30m])) * 100", 786 | "format": "time_series", 787 | "hide": false, 788 | "instant": false, 789 | "interval": "", 790 | "intervalFactor": 1, 791 | "legendFormat": "", 792 | "refId": "A", 793 | "step": 20 794 | } 795 | ], 796 | "thresholds": "20,50", 797 | "timeFrom": null, 798 | "timeShift": null, 799 | "title": "CPU IOwait", 800 | "type": "singlestat", 801 | "valueFontSize": "100%", 802 | "valueMaps": [ 803 | { 804 | "op": "=", 805 | "text": "N/A", 806 | "value": "null" 807 | } 808 | ], 809 | "valueName": "avg" 810 | }, 811 | { 812 | "aliasColors": { 813 | "15分钟": "#6ED0E0", 814 | "1分钟": "#BF1B00", 815 | "5分钟": "#CCA300" 816 | }, 817 | "bars": false, 818 | "dashLength": 10, 819 | "dashes": false, 820 | "datasource": "prometheus", 821 | "editable": true, 822 | "error": false, 823 | "fill": 1, 824 | "fillGradient": 1, 825 | "grid": {}, 826 | "gridPos": { 827 | "h": 10, 828 | "w": 8, 829 | "x": 0, 830 | "y": 6 831 | }, 832 | "height": "300", 833 | "hiddenSeries": false, 834 | "id": 13, 835 | "legend": { 836 | "alignAsTable": true, 837 | "avg": true, 838 | "current": true, 839 | "max": true, 840 | "min": false, 841 | "rightSide": false, 842 | "show": true, 843 | "total": false, 844 | "values": true 845 | }, 846 | "lines": true, 847 | "linewidth": 2, 848 | "links": [], 849 | "maxPerRow": 6, 850 | "nullPointMode": "null as zero", 851 | "options": { 852 | "dataLinks": [] 853 | }, 854 | "percentage": false, 855 | "pointradius": 5, 856 | "points": false, 857 | "renderer": "flot", 858 | "repeat": null, 859 | "seriesOverrides": [], 860 | "spaceLength": 10, 861 | "stack": false, 862 | "steppedLine": false, 863 | "targets": [ 864 | { 865 | "expr": "node_load1{instance=~\"$node\"}", 866 | "format": "time_series", 867 | "instant": false, 868 | "interval": "", 869 | "intervalFactor": 1, 870 | "legendFormat": "{{instance}}_1m", 871 | "metric": "", 872 | "refId": "A", 873 | "step": 20, 874 | "target": "" 875 | }, 876 | { 877 | "expr": "node_load5{instance=~\"$node\"}", 878 | "format": "time_series", 879 | "instant": false, 880 | "interval": "", 881 | "intervalFactor": 1, 882 | "legendFormat": "{{instance}}_5m", 883 | "refId": "B", 884 | "step": 20 885 | }, 886 | { 887 | "expr": "node_load15{instance=~\"$node\"}", 888 | "format": "time_series", 889 | "instant": false, 890 | "interval": "", 891 | "intervalFactor": 1, 892 | "legendFormat": "{{instance}}_15m", 893 | "refId": "C", 894 | "step": 20 895 | } 896 | ], 897 | "thresholds": [], 898 | "timeFrom": null, 899 | "timeRegions": [], 900 | "timeShift": null, 901 | "title": "System Load", 902 | "tooltip": { 903 | "msResolution": false, 904 | "shared": true, 905 | "sort": 2, 906 | "value_type": "cumulative" 907 | }, 908 | "type": "graph", 909 | "xaxis": { 910 | "buckets": null, 911 | "mode": "time", 912 | "name": null, 913 | "show": true, 914 | "values": [] 915 | }, 916 | "yaxes": [ 917 | { 918 | "format": "short", 919 | "logBase": 1, 920 | "max": null, 921 | "min": null, 922 | "show": true 923 | }, 924 | { 925 | "format": "short", 926 | "logBase": 1, 927 | "max": null, 928 | "min": null, 929 | "show": true 930 | } 931 | ], 932 | "yaxis": { 933 | "align": false, 934 | "alignLevel": null 935 | } 936 | }, 937 | { 938 | "aliasColors": { 939 | "192.168.200.241:9100_Total": "dark-red", 940 | "Idle - Waiting for something to happen": "#052B51", 941 | "guest": "#9AC48A", 942 | "idle": "#052B51", 943 | "iowait": "#EAB839", 944 | "irq": "#BF1B00", 945 | "nice": "#C15C17", 946 | "sdb_每秒I/O操作%": "#d683ce", 947 | "softirq": "#E24D42", 948 | "steal": "#FCE2DE", 949 | "system": "#508642", 950 | "user": "#5195CE", 951 | "磁盘花费在I/O操作占比": "#ba43a9" 952 | }, 953 | "bars": false, 954 | "dashLength": 10, 955 | "dashes": false, 956 | "datasource": "prometheus", 957 | "decimals": 2, 958 | "description": "", 959 | "fill": 1, 960 | "fillGradient": 0, 961 | "gridPos": { 962 | "h": 10, 963 | "w": 8, 964 | "x": 8, 965 | "y": 6 966 | }, 967 | "hiddenSeries": false, 968 | "id": 7, 969 | "legend": { 970 | "alignAsTable": true, 971 | "avg": true, 972 | "current": true, 973 | "hideEmpty": true, 974 | "hideZero": true, 975 | "max": true, 976 | "min": false, 977 | "rightSide": false, 978 | "show": true, 979 | "sideWidth": null, 980 | "sort": "current", 981 | "sortDesc": true, 982 | "total": false, 983 | "values": true 984 | }, 985 | "lines": true, 986 | "linewidth": 2, 987 | "links": [], 988 | "maxPerRow": 6, 989 | "nullPointMode": "null", 990 | "options": { 991 | "dataLinks": [] 992 | }, 993 | "percentage": false, 994 | "pointradius": 5, 995 | "points": false, 996 | "renderer": "flot", 997 | "repeat": null, 998 | "seriesOverrides": [ 999 | { 1000 | "alias": "/.*_Total/", 1001 | "color": "#C4162A", 1002 | "fill": 0 1003 | } 1004 | ], 1005 | "spaceLength": 10, 1006 | "stack": false, 1007 | "steppedLine": false, 1008 | "targets": [ 1009 | { 1010 | "expr": "avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"system\"}[30m])) by (instance)", 1011 | "format": "time_series", 1012 | "hide": false, 1013 | "instant": false, 1014 | "interval": "", 1015 | "intervalFactor": 1, 1016 | "legendFormat": "{{instance}}_System", 1017 | "refId": "A", 1018 | "step": 20 1019 | }, 1020 | { 1021 | "expr": "avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"user\"}[30m])) by (instance)", 1022 | "format": "time_series", 1023 | "hide": false, 1024 | "intervalFactor": 1, 1025 | "legendFormat": "{{instance}}_User", 1026 | "refId": "B", 1027 | "step": 240 1028 | }, 1029 | { 1030 | "expr": "avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"iowait\"}[30m])) by (instance)", 1031 | "format": "time_series", 1032 | "hide": false, 1033 | "instant": false, 1034 | "intervalFactor": 1, 1035 | "legendFormat": "{{instance}}_Iowait", 1036 | "refId": "D", 1037 | "step": 240 1038 | }, 1039 | { 1040 | "expr": "1 - avg(irate(node_cpu_seconds_total{instance=~\"$node\",mode=\"idle\"}[30m])) by (instance)", 1041 | "format": "time_series", 1042 | "hide": false, 1043 | "intervalFactor": 1, 1044 | "legendFormat": "{{instance}}_Total", 1045 | "refId": "F", 1046 | "step": 240 1047 | } 1048 | ], 1049 | "thresholds": [], 1050 | "timeFrom": null, 1051 | "timeRegions": [], 1052 | "timeShift": null, 1053 | "title": "CPU Basic", 1054 | "tooltip": { 1055 | "shared": true, 1056 | "sort": 2, 1057 | "value_type": "individual" 1058 | }, 1059 | "type": "graph", 1060 | "xaxis": { 1061 | "buckets": null, 1062 | "mode": "time", 1063 | "name": null, 1064 | "show": true, 1065 | "values": [] 1066 | }, 1067 | "yaxes": [ 1068 | { 1069 | "decimals": 2, 1070 | "format": "percentunit", 1071 | "label": "", 1072 | "logBase": 1, 1073 | "max": null, 1074 | "min": null, 1075 | "show": true 1076 | }, 1077 | { 1078 | "format": "short", 1079 | "label": null, 1080 | "logBase": 1, 1081 | "max": null, 1082 | "min": null, 1083 | "show": false 1084 | } 1085 | ], 1086 | "yaxis": { 1087 | "align": false, 1088 | "alignLevel": null 1089 | } 1090 | }, 1091 | { 1092 | "aliasColors": { 1093 | "192.168.10.227:9100_em1_in下载": "super-light-green", 1094 | "192.168.10.227:9100_em1_out上传": "dark-blue" 1095 | }, 1096 | "bars": false, 1097 | "dashLength": 10, 1098 | "dashes": false, 1099 | "datasource": "prometheus", 1100 | "fill": 1, 1101 | "fillGradient": 3, 1102 | "gridPos": { 1103 | "h": 10, 1104 | "w": 8, 1105 | "x": 16, 1106 | "y": 6 1107 | }, 1108 | "height": "300", 1109 | "hiddenSeries": false, 1110 | "id": 157, 1111 | "legend": { 1112 | "alignAsTable": true, 1113 | "avg": false, 1114 | "current": true, 1115 | "hideEmpty": true, 1116 | "hideZero": true, 1117 | "max": true, 1118 | "min": false, 1119 | "rightSide": false, 1120 | "show": true, 1121 | "sort": "current", 1122 | "sortDesc": true, 1123 | "total": false, 1124 | "values": true 1125 | }, 1126 | "lines": true, 1127 | "linewidth": 2, 1128 | "links": [], 1129 | "nullPointMode": "null", 1130 | "options": { 1131 | "dataLinks": [] 1132 | }, 1133 | "percentage": false, 1134 | "pointradius": 2, 1135 | "points": false, 1136 | "renderer": "flot", 1137 | "seriesOverrides": [ 1138 | { 1139 | "alias": "/.*_transmit$/", 1140 | "transform": "negative-Y" 1141 | } 1142 | ], 1143 | "spaceLength": 10, 1144 | "stack": false, 1145 | "steppedLine": false, 1146 | "targets": [ 1147 | { 1148 | "expr": "irate(node_network_receive_bytes_total{instance=~'$node',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[30m])*8", 1149 | "format": "time_series", 1150 | "intervalFactor": 1, 1151 | "legendFormat": "{{instance}}_{{device}}_receive", 1152 | "refId": "A", 1153 | "step": 4 1154 | }, 1155 | { 1156 | "expr": "irate(node_network_transmit_bytes_total{instance=~'$node',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[30m])*8", 1157 | "format": "time_series", 1158 | "intervalFactor": 1, 1159 | "legendFormat": "{{instance}}_{{device}}_transmit", 1160 | "refId": "B", 1161 | "step": 4 1162 | } 1163 | ], 1164 | "thresholds": [], 1165 | "timeFrom": null, 1166 | "timeRegions": [], 1167 | "timeShift": null, 1168 | "title": "Network Traffic Basic", 1169 | "tooltip": { 1170 | "shared": true, 1171 | "sort": 2, 1172 | "value_type": "individual" 1173 | }, 1174 | "type": "graph", 1175 | "xaxis": { 1176 | "buckets": null, 1177 | "mode": "time", 1178 | "name": null, 1179 | "show": true, 1180 | "values": [] 1181 | }, 1182 | "yaxes": [ 1183 | { 1184 | "format": "bps", 1185 | "label": "transmit(-)/receive(+)", 1186 | "logBase": 1, 1187 | "max": null, 1188 | "min": null, 1189 | "show": true 1190 | }, 1191 | { 1192 | "format": "short", 1193 | "label": null, 1194 | "logBase": 1, 1195 | "max": null, 1196 | "min": null, 1197 | "show": false 1198 | } 1199 | ], 1200 | "yaxis": { 1201 | "align": false, 1202 | "alignLevel": null 1203 | } 1204 | }, 1205 | { 1206 | "aliasColors": {}, 1207 | "bars": false, 1208 | "dashLength": 10, 1209 | "dashes": false, 1210 | "datasource": "prometheus", 1211 | "fill": 1, 1212 | "fillGradient": 3, 1213 | "gridPos": { 1214 | "h": 8, 1215 | "w": 8, 1216 | "x": 0, 1217 | "y": 16 1218 | }, 1219 | "hiddenSeries": false, 1220 | "id": 174, 1221 | "legend": { 1222 | "alignAsTable": true, 1223 | "avg": false, 1224 | "current": true, 1225 | "hideEmpty": false, 1226 | "hideZero": false, 1227 | "max": false, 1228 | "min": false, 1229 | "rightSide": false, 1230 | "show": true, 1231 | "sideWidth": null, 1232 | "total": false, 1233 | "values": true 1234 | }, 1235 | "lines": true, 1236 | "linewidth": 2, 1237 | "links": [], 1238 | "nullPointMode": "null", 1239 | "options": { 1240 | "dataLinks": [] 1241 | }, 1242 | "percentage": false, 1243 | "pointradius": 5, 1244 | "points": false, 1245 | "renderer": "flot", 1246 | "seriesOverrides": [ 1247 | { 1248 | "alias": "/Inodes.*/", 1249 | "yaxis": 2 1250 | } 1251 | ], 1252 | "spaceLength": 10, 1253 | "stack": false, 1254 | "steppedLine": false, 1255 | "targets": [ 1256 | { 1257 | "expr": "1-(node_filesystem_free_bytes{instance=~'$node',fstype=~\"ext4|xfs\"} / node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext4|xfs\"})", 1258 | "format": "time_series", 1259 | "instant": false, 1260 | "intervalFactor": 1, 1261 | "legendFormat": "{{instance}}:{{mountpoint}}", 1262 | "refId": "A" 1263 | }, 1264 | { 1265 | "expr": "node_filesystem_files_free{instance=~'$node',fstype=~\"ext4|xfs\"} / node_filesystem_files{instance=~'$node',fstype=~\"ext4|xfs\"}", 1266 | "hide": true, 1267 | "legendFormat": "Inodes:{{instance}}:{{mountpoint}}", 1268 | "refId": "B" 1269 | } 1270 | ], 1271 | "thresholds": [], 1272 | "timeFrom": null, 1273 | "timeRegions": [], 1274 | "timeShift": null, 1275 | "title": "Disk Space Used Basic", 1276 | "tooltip": { 1277 | "shared": true, 1278 | "sort": 2, 1279 | "value_type": "individual" 1280 | }, 1281 | "type": "graph", 1282 | "xaxis": { 1283 | "buckets": null, 1284 | "mode": "time", 1285 | "name": null, 1286 | "show": true, 1287 | "values": [] 1288 | }, 1289 | "yaxes": [ 1290 | { 1291 | "decimals": 2, 1292 | "format": "percentunit", 1293 | "label": "", 1294 | "logBase": 1, 1295 | "max": null, 1296 | "min": null, 1297 | "show": true 1298 | }, 1299 | { 1300 | "decimals": 2, 1301 | "format": "percentunit", 1302 | "label": null, 1303 | "logBase": 1, 1304 | "max": "1", 1305 | "min": null, 1306 | "show": true 1307 | } 1308 | ], 1309 | "yaxis": { 1310 | "align": false, 1311 | "alignLevel": null 1312 | } 1313 | }, 1314 | { 1315 | "aliasColors": { 1316 | "192.168.200.241:9100_总内存": "dark-red", 1317 | "内存_Avaliable": "#6ED0E0", 1318 | "内存_Cached": "#EF843C", 1319 | "内存_Free": "#629E51", 1320 | "内存_Total": "#6d1f62", 1321 | "内存_Used": "#eab839", 1322 | "可用": "#9ac48a", 1323 | "总内存": "#bf1b00" 1324 | }, 1325 | "bars": false, 1326 | "dashLength": 10, 1327 | "dashes": false, 1328 | "datasource": "prometheus", 1329 | "decimals": 2, 1330 | "fill": 1, 1331 | "fillGradient": 0, 1332 | "gridPos": { 1333 | "h": 8, 1334 | "w": 8, 1335 | "x": 8, 1336 | "y": 16 1337 | }, 1338 | "height": "300", 1339 | "hiddenSeries": false, 1340 | "id": 156, 1341 | "legend": { 1342 | "alignAsTable": true, 1343 | "avg": false, 1344 | "current": true, 1345 | "max": false, 1346 | "min": false, 1347 | "rightSide": false, 1348 | "show": true, 1349 | "sort": "current", 1350 | "sortDesc": true, 1351 | "total": false, 1352 | "values": true 1353 | }, 1354 | "lines": true, 1355 | "linewidth": 2, 1356 | "links": [], 1357 | "nullPointMode": "null", 1358 | "options": { 1359 | "dataLinks": [] 1360 | }, 1361 | "percentage": false, 1362 | "pointradius": 5, 1363 | "points": false, 1364 | "renderer": "flot", 1365 | "seriesOverrides": [ 1366 | { 1367 | "alias": "/.*_Total/", 1368 | "color": "#C4162A", 1369 | "fill": 0 1370 | } 1371 | ], 1372 | "spaceLength": 10, 1373 | "stack": false, 1374 | "steppedLine": false, 1375 | "targets": [ 1376 | { 1377 | "expr": "node_memory_MemTotal_bytes{instance=~\"$node\"}", 1378 | "format": "time_series", 1379 | "hide": false, 1380 | "instant": false, 1381 | "intervalFactor": 1, 1382 | "legendFormat": "{{instance}}_Total", 1383 | "refId": "A", 1384 | "step": 4 1385 | }, 1386 | { 1387 | "expr": "node_memory_MemTotal_bytes{instance=~\"$node\"} - node_memory_MemAvailable_bytes{instance=~\"$node\"}", 1388 | "format": "time_series", 1389 | "hide": false, 1390 | "intervalFactor": 1, 1391 | "legendFormat": "{{instance}}_Used", 1392 | "refId": "B", 1393 | "step": 4 1394 | }, 1395 | { 1396 | "expr": "node_memory_MemAvailable_bytes{instance=~\"$node\"}", 1397 | "format": "time_series", 1398 | "hide": false, 1399 | "interval": "", 1400 | "intervalFactor": 1, 1401 | "legendFormat": "{{instance}}_Avaliable", 1402 | "refId": "F", 1403 | "step": 4 1404 | } 1405 | ], 1406 | "thresholds": [], 1407 | "timeFrom": null, 1408 | "timeRegions": [], 1409 | "timeShift": null, 1410 | "title": "Memory Basic", 1411 | "tooltip": { 1412 | "shared": true, 1413 | "sort": 2, 1414 | "value_type": "individual" 1415 | }, 1416 | "type": "graph", 1417 | "xaxis": { 1418 | "buckets": null, 1419 | "mode": "time", 1420 | "name": null, 1421 | "show": true, 1422 | "values": [] 1423 | }, 1424 | "yaxes": [ 1425 | { 1426 | "format": "bytes", 1427 | "label": null, 1428 | "logBase": 1, 1429 | "max": null, 1430 | "min": "0", 1431 | "show": true 1432 | }, 1433 | { 1434 | "format": "short", 1435 | "label": null, 1436 | "logBase": 1, 1437 | "max": null, 1438 | "min": null, 1439 | "show": true 1440 | } 1441 | ], 1442 | "yaxis": { 1443 | "align": false, 1444 | "alignLevel": null 1445 | } 1446 | }, 1447 | { 1448 | "aliasColors": { 1449 | "Idle - Waiting for something to happen": "#052B51", 1450 | "guest": "#9AC48A", 1451 | "idle": "#052B51", 1452 | "iowait": "#EAB839", 1453 | "irq": "#BF1B00", 1454 | "nice": "#C15C17", 1455 | "sdb_每秒I/O操作%": "#d683ce", 1456 | "softirq": "#E24D42", 1457 | "steal": "#FCE2DE", 1458 | "system": "#508642", 1459 | "user": "#5195CE", 1460 | "磁盘花费在I/O操作占比": "#ba43a9" 1461 | }, 1462 | "bars": false, 1463 | "dashLength": 10, 1464 | "dashes": false, 1465 | "datasource": "prometheus", 1466 | "decimals": null, 1467 | "description": "The time spent on I/O in the natural time of each second.(wall-clock time)", 1468 | "fill": 1, 1469 | "fillGradient": 5, 1470 | "gridPos": { 1471 | "h": 8, 1472 | "w": 8, 1473 | "x": 16, 1474 | "y": 16 1475 | }, 1476 | "hiddenSeries": false, 1477 | "id": 175, 1478 | "legend": { 1479 | "alignAsTable": true, 1480 | "avg": true, 1481 | "current": true, 1482 | "hideEmpty": true, 1483 | "hideZero": true, 1484 | "max": true, 1485 | "min": false, 1486 | "rightSide": false, 1487 | "show": true, 1488 | "sideWidth": null, 1489 | "sort": null, 1490 | "sortDesc": null, 1491 | "total": false, 1492 | "values": true 1493 | }, 1494 | "lines": true, 1495 | "linewidth": 2, 1496 | "links": [], 1497 | "maxPerRow": 6, 1498 | "nullPointMode": "null", 1499 | "options": { 1500 | "dataLinks": [] 1501 | }, 1502 | "percentage": false, 1503 | "pointradius": 5, 1504 | "points": false, 1505 | "renderer": "flot", 1506 | "seriesOverrides": [], 1507 | "spaceLength": 10, 1508 | "stack": false, 1509 | "steppedLine": false, 1510 | "targets": [ 1511 | { 1512 | "expr": "irate(node_disk_io_time_seconds_total{instance=~\"$node\"}[30m])", 1513 | "format": "time_series", 1514 | "intervalFactor": 1, 1515 | "legendFormat": "{{instance}}_{{device}}_ IO time", 1516 | "refId": "C" 1517 | } 1518 | ], 1519 | "thresholds": [], 1520 | "timeFrom": null, 1521 | "timeRegions": [], 1522 | "timeShift": null, 1523 | "title": "Time Spent Doing I/Os", 1524 | "tooltip": { 1525 | "shared": true, 1526 | "sort": 2, 1527 | "value_type": "individual" 1528 | }, 1529 | "type": "graph", 1530 | "xaxis": { 1531 | "buckets": null, 1532 | "mode": "time", 1533 | "name": null, 1534 | "show": true, 1535 | "values": [] 1536 | }, 1537 | "yaxes": [ 1538 | { 1539 | "decimals": null, 1540 | "format": "s", 1541 | "label": "", 1542 | "logBase": 1, 1543 | "max": null, 1544 | "min": null, 1545 | "show": true 1546 | }, 1547 | { 1548 | "format": "short", 1549 | "label": null, 1550 | "logBase": 1, 1551 | "max": null, 1552 | "min": null, 1553 | "show": false 1554 | } 1555 | ], 1556 | "yaxis": { 1557 | "align": false, 1558 | "alignLevel": null 1559 | } 1560 | }, 1561 | { 1562 | "aliasColors": { 1563 | "vda_write": "#6ED0E0" 1564 | }, 1565 | "bars": false, 1566 | "dashLength": 10, 1567 | "dashes": false, 1568 | "datasource": "prometheus", 1569 | "description": "Read/write completions per second", 1570 | "fill": 1, 1571 | "fillGradient": 1, 1572 | "gridPos": { 1573 | "h": 9, 1574 | "w": 8, 1575 | "x": 0, 1576 | "y": 24 1577 | }, 1578 | "height": "300", 1579 | "hiddenSeries": false, 1580 | "id": 161, 1581 | "legend": { 1582 | "alignAsTable": true, 1583 | "avg": true, 1584 | "current": true, 1585 | "hideEmpty": true, 1586 | "hideZero": true, 1587 | "max": true, 1588 | "min": false, 1589 | "show": true, 1590 | "sort": "current", 1591 | "sortDesc": true, 1592 | "total": false, 1593 | "values": true 1594 | }, 1595 | "lines": true, 1596 | "linewidth": 2, 1597 | "links": [], 1598 | "nullPointMode": "null", 1599 | "options": { 1600 | "dataLinks": [] 1601 | }, 1602 | "percentage": false, 1603 | "pointradius": 5, 1604 | "points": false, 1605 | "renderer": "flot", 1606 | "seriesOverrides": [ 1607 | { 1608 | "alias": "/.*_Reads completed$/", 1609 | "transform": "negative-Y" 1610 | } 1611 | ], 1612 | "spaceLength": 10, 1613 | "stack": false, 1614 | "steppedLine": false, 1615 | "targets": [ 1616 | { 1617 | "expr": "irate(node_disk_reads_completed_total{instance=~\"$node\"}[30m])", 1618 | "format": "time_series", 1619 | "hide": false, 1620 | "interval": "", 1621 | "intervalFactor": 1, 1622 | "legendFormat": "{{instance}}_{{device}}_Reads completed", 1623 | "refId": "A", 1624 | "step": 10 1625 | }, 1626 | { 1627 | "expr": "irate(node_disk_writes_completed_total{instance=~\"$node\"}[30m])", 1628 | "format": "time_series", 1629 | "hide": false, 1630 | "intervalFactor": 1, 1631 | "legendFormat": "{{instance}}_{{device}}_Writes completed", 1632 | "refId": "B", 1633 | "step": 10 1634 | } 1635 | ], 1636 | "thresholds": [], 1637 | "timeFrom": null, 1638 | "timeRegions": [], 1639 | "timeShift": null, 1640 | "title": "Disk IOps Completed", 1641 | "tooltip": { 1642 | "shared": true, 1643 | "sort": 2, 1644 | "value_type": "individual" 1645 | }, 1646 | "type": "graph", 1647 | "xaxis": { 1648 | "buckets": null, 1649 | "mode": "time", 1650 | "name": null, 1651 | "show": true, 1652 | "values": [] 1653 | }, 1654 | "yaxes": [ 1655 | { 1656 | "decimals": null, 1657 | "format": "iops", 1658 | "label": "IO read (-) / write (+)", 1659 | "logBase": 1, 1660 | "max": null, 1661 | "min": null, 1662 | "show": true 1663 | }, 1664 | { 1665 | "format": "short", 1666 | "label": null, 1667 | "logBase": 1, 1668 | "max": null, 1669 | "min": null, 1670 | "show": true 1671 | } 1672 | ], 1673 | "yaxis": { 1674 | "align": false, 1675 | "alignLevel": null 1676 | } 1677 | }, 1678 | { 1679 | "aliasColors": { 1680 | "vda_write": "#6ED0E0" 1681 | }, 1682 | "bars": false, 1683 | "dashLength": 10, 1684 | "dashes": false, 1685 | "datasource": "prometheus", 1686 | "description": "Per second read / write bytes ", 1687 | "fill": 1, 1688 | "fillGradient": 1, 1689 | "gridPos": { 1690 | "h": 9, 1691 | "w": 8, 1692 | "x": 8, 1693 | "y": 24 1694 | }, 1695 | "height": "300", 1696 | "hiddenSeries": false, 1697 | "id": 168, 1698 | "legend": { 1699 | "alignAsTable": true, 1700 | "avg": true, 1701 | "current": true, 1702 | "hideEmpty": true, 1703 | "hideZero": true, 1704 | "max": true, 1705 | "min": false, 1706 | "show": true, 1707 | "sort": "current", 1708 | "sortDesc": true, 1709 | "total": false, 1710 | "values": true 1711 | }, 1712 | "lines": true, 1713 | "linewidth": 2, 1714 | "links": [], 1715 | "nullPointMode": "null", 1716 | "options": { 1717 | "dataLinks": [] 1718 | }, 1719 | "percentage": false, 1720 | "pointradius": 5, 1721 | "points": false, 1722 | "renderer": "flot", 1723 | "seriesOverrides": [ 1724 | { 1725 | "alias": "/.*_Read bytes$/", 1726 | "transform": "negative-Y" 1727 | } 1728 | ], 1729 | "spaceLength": 10, 1730 | "stack": false, 1731 | "steppedLine": false, 1732 | "targets": [ 1733 | { 1734 | "expr": "irate(node_disk_read_bytes_total{instance=~\"$node\"}[30m])", 1735 | "format": "time_series", 1736 | "interval": "", 1737 | "intervalFactor": 1, 1738 | "legendFormat": "{{instance}}_{{device}}_Read bytes", 1739 | "refId": "A", 1740 | "step": 10 1741 | }, 1742 | { 1743 | "expr": "irate(node_disk_written_bytes_total{instance=~\"$node\"}[30m])", 1744 | "format": "time_series", 1745 | "hide": false, 1746 | "intervalFactor": 1, 1747 | "legendFormat": "{{instance}}_{{device}}_Written bytes", 1748 | "refId": "B", 1749 | "step": 10 1750 | } 1751 | ], 1752 | "thresholds": [], 1753 | "timeFrom": null, 1754 | "timeRegions": [], 1755 | "timeShift": null, 1756 | "title": "Disk R/W Data", 1757 | "tooltip": { 1758 | "shared": true, 1759 | "sort": 2, 1760 | "value_type": "individual" 1761 | }, 1762 | "type": "graph", 1763 | "xaxis": { 1764 | "buckets": null, 1765 | "mode": "time", 1766 | "name": null, 1767 | "show": true, 1768 | "values": [] 1769 | }, 1770 | "yaxes": [ 1771 | { 1772 | "decimals": null, 1773 | "format": "Bps", 1774 | "label": "Bytes read (-) / write (+)", 1775 | "logBase": 1, 1776 | "max": null, 1777 | "min": null, 1778 | "show": true 1779 | }, 1780 | { 1781 | "format": "short", 1782 | "label": null, 1783 | "logBase": 1, 1784 | "max": null, 1785 | "min": null, 1786 | "show": false 1787 | } 1788 | ], 1789 | "yaxis": { 1790 | "align": false, 1791 | "alignLevel": null 1792 | } 1793 | }, 1794 | { 1795 | "aliasColors": { 1796 | "vda": "#6ED0E0" 1797 | }, 1798 | "bars": false, 1799 | "dashLength": 10, 1800 | "dashes": false, 1801 | "datasource": "prometheus", 1802 | "description": "Time spent on each read/write operation", 1803 | "fill": 1, 1804 | "fillGradient": 1, 1805 | "gridPos": { 1806 | "h": 9, 1807 | "w": 8, 1808 | "x": 16, 1809 | "y": 24 1810 | }, 1811 | "height": "300", 1812 | "hiddenSeries": false, 1813 | "id": 160, 1814 | "legend": { 1815 | "alignAsTable": true, 1816 | "avg": true, 1817 | "current": true, 1818 | "hideEmpty": true, 1819 | "hideZero": true, 1820 | "max": true, 1821 | "min": false, 1822 | "show": true, 1823 | "sort": "current", 1824 | "sortDesc": true, 1825 | "total": false, 1826 | "values": true 1827 | }, 1828 | "lines": true, 1829 | "linewidth": 2, 1830 | "links": [], 1831 | "nullPointMode": "null as zero", 1832 | "options": { 1833 | "dataLinks": [] 1834 | }, 1835 | "percentage": false, 1836 | "pointradius": 5, 1837 | "points": false, 1838 | "renderer": "flot", 1839 | "seriesOverrides": [ 1840 | { 1841 | "alias": "/,*_Read time$/", 1842 | "transform": "negative-Y" 1843 | } 1844 | ], 1845 | "spaceLength": 10, 1846 | "stack": false, 1847 | "steppedLine": false, 1848 | "targets": [ 1849 | { 1850 | "expr": "irate(node_disk_read_time_seconds_total{instance=~\"$node\"}[30m]) / irate(node_disk_reads_completed_total{instance=~\"$node\"}[30m])", 1851 | "format": "time_series", 1852 | "hide": false, 1853 | "instant": false, 1854 | "interval": "", 1855 | "intervalFactor": 1, 1856 | "legendFormat": "{{instance}}_{{device}}_Read time", 1857 | "refId": "B" 1858 | }, 1859 | { 1860 | "expr": "irate(node_disk_write_time_seconds_total{instance=~\"$node\"}[30m]) / irate(node_disk_writes_completed_total{instance=~\"$node\"}[30m])", 1861 | "format": "time_series", 1862 | "hide": false, 1863 | "instant": false, 1864 | "intervalFactor": 1, 1865 | "legendFormat": "{{instance}}_{{device}}_Write time", 1866 | "refId": "C" 1867 | } 1868 | ], 1869 | "thresholds": [], 1870 | "timeFrom": null, 1871 | "timeRegions": [], 1872 | "timeShift": null, 1873 | "title": "Disk R/W Time(Reference: less than 100ms)(beta)", 1874 | "tooltip": { 1875 | "shared": true, 1876 | "sort": 2, 1877 | "value_type": "individual" 1878 | }, 1879 | "type": "graph", 1880 | "xaxis": { 1881 | "buckets": null, 1882 | "mode": "time", 1883 | "name": null, 1884 | "show": true, 1885 | "values": [] 1886 | }, 1887 | "yaxes": [ 1888 | { 1889 | "format": "s", 1890 | "label": "Time. read (-) / write (+)", 1891 | "logBase": 1, 1892 | "max": null, 1893 | "min": null, 1894 | "show": true 1895 | }, 1896 | { 1897 | "format": "short", 1898 | "label": null, 1899 | "logBase": 1, 1900 | "max": null, 1901 | "min": null, 1902 | "show": false 1903 | } 1904 | ], 1905 | "yaxis": { 1906 | "align": false, 1907 | "alignLevel": null 1908 | } 1909 | }, 1910 | { 1911 | "aliasColors": { 1912 | "TCP": "#6ED0E0" 1913 | }, 1914 | "bars": false, 1915 | "dashLength": 10, 1916 | "dashes": false, 1917 | "datasource": "prometheus", 1918 | "description": "TCP_alloc - Allocated sockets\n\nCurrEstab - TCP connections for which the current state is either ESTABLISHED or CLOSE- WAIT\n\nTCP_tw - Sockets wating close\n\nUDP_inuse - Udp sockets currently in use\n\nSockets_used - Sockets currently in use", 1919 | "fill": 1, 1920 | "fillGradient": 0, 1921 | "gridPos": { 1922 | "h": 12, 1923 | "w": 24, 1924 | "x": 0, 1925 | "y": 33 1926 | }, 1927 | "height": "300", 1928 | "hiddenSeries": false, 1929 | "id": 158, 1930 | "interval": "", 1931 | "legend": { 1932 | "alignAsTable": true, 1933 | "avg": true, 1934 | "current": true, 1935 | "hideEmpty": true, 1936 | "hideZero": true, 1937 | "max": true, 1938 | "min": false, 1939 | "rightSide": false, 1940 | "show": true, 1941 | "sort": "current", 1942 | "sortDesc": true, 1943 | "total": false, 1944 | "values": true 1945 | }, 1946 | "lines": true, 1947 | "linewidth": 2, 1948 | "links": [], 1949 | "nullPointMode": "null", 1950 | "options": { 1951 | "dataLinks": [] 1952 | }, 1953 | "percentage": false, 1954 | "pointradius": 5, 1955 | "points": false, 1956 | "renderer": "flot", 1957 | "seriesOverrides": [ 1958 | { 1959 | "alias": "/.*_Sockets_used/", 1960 | "color": "#C4162A", 1961 | "fill": 0 1962 | } 1963 | ], 1964 | "spaceLength": 10, 1965 | "stack": false, 1966 | "steppedLine": false, 1967 | "targets": [ 1968 | { 1969 | "expr": "node_netstat_Tcp_CurrEstab{instance=~'$node'}", 1970 | "format": "time_series", 1971 | "hide": false, 1972 | "instant": false, 1973 | "interval": "", 1974 | "intervalFactor": 1, 1975 | "legendFormat": "{{instance}}_CurrEstab", 1976 | "refId": "A", 1977 | "step": 20 1978 | }, 1979 | { 1980 | "expr": "node_sockstat_TCP_tw{instance=~'$node'}", 1981 | "format": "time_series", 1982 | "intervalFactor": 1, 1983 | "legendFormat": "{{instance}}_TCP_tw", 1984 | "refId": "D" 1985 | }, 1986 | { 1987 | "expr": "node_sockstat_sockets_used{instance=~'$node'}", 1988 | "legendFormat": "{{instance}}_Sockets_used", 1989 | "refId": "B" 1990 | }, 1991 | { 1992 | "expr": "node_sockstat_UDP_inuse{instance=~'$node'}", 1993 | "legendFormat": "{{instance}}_UDP_inuse", 1994 | "refId": "C" 1995 | }, 1996 | { 1997 | "expr": "node_sockstat_TCP_alloc{instance=~'$node'}", 1998 | "legendFormat": "{{instance}}_TCP_alloc", 1999 | "refId": "E" 2000 | } 2001 | ], 2002 | "thresholds": [], 2003 | "timeFrom": null, 2004 | "timeRegions": [], 2005 | "timeShift": null, 2006 | "title": "Network Sockstat", 2007 | "tooltip": { 2008 | "shared": true, 2009 | "sort": 2, 2010 | "value_type": "individual" 2011 | }, 2012 | "type": "graph", 2013 | "xaxis": { 2014 | "buckets": null, 2015 | "mode": "time", 2016 | "name": null, 2017 | "show": true, 2018 | "values": [] 2019 | }, 2020 | "yaxes": [ 2021 | { 2022 | "format": "short", 2023 | "label": null, 2024 | "logBase": 1, 2025 | "max": null, 2026 | "min": null, 2027 | "show": true 2028 | }, 2029 | { 2030 | "format": "short", 2031 | "label": null, 2032 | "logBase": 1, 2033 | "max": null, 2034 | "min": null, 2035 | "show": true 2036 | } 2037 | ], 2038 | "yaxis": { 2039 | "align": false, 2040 | "alignLevel": null 2041 | } 2042 | } 2043 | ], 2044 | "refresh": false, 2045 | "schemaVersion": 22, 2046 | "style": "dark", 2047 | "tags": [ 2048 | "Prometheus", 2049 | "node-exporter" 2050 | ], 2051 | "templating": { 2052 | "list": [ 2053 | { 2054 | "allValue": null, 2055 | "current": { 2056 | "text": "nodeexporter", 2057 | "value": "nodeexporter" 2058 | }, 2059 | "datasource": "prometheus", 2060 | "definition": "label_values(node_uname_info, job)", 2061 | "hide": 0, 2062 | "includeAll": false, 2063 | "label": "JOB", 2064 | "multi": false, 2065 | "name": "job", 2066 | "options": [], 2067 | "query": "label_values(node_uname_info, job)", 2068 | "refresh": 1, 2069 | "regex": "", 2070 | "skipUrlSync": false, 2071 | "sort": 1, 2072 | "tagValuesQuery": "", 2073 | "tags": [], 2074 | "tagsQuery": "", 2075 | "type": "query", 2076 | "useTags": false 2077 | }, 2078 | { 2079 | "allValue": null, 2080 | "current": { 2081 | "selected": false, 2082 | "text": "All", 2083 | "value": "$__all" 2084 | }, 2085 | "datasource": "prometheus", 2086 | "definition": "label_values(node_uname_info{job=~\"$job\"}, nodename)", 2087 | "hide": 0, 2088 | "includeAll": true, 2089 | "label": "Host", 2090 | "multi": true, 2091 | "name": "hostname", 2092 | "options": [], 2093 | "query": "label_values(node_uname_info{job=~\"$job\"}, nodename)", 2094 | "refresh": 1, 2095 | "regex": "", 2096 | "skipUrlSync": false, 2097 | "sort": 0, 2098 | "tagValuesQuery": "", 2099 | "tags": [], 2100 | "tagsQuery": "", 2101 | "type": "query", 2102 | "useTags": false 2103 | }, 2104 | { 2105 | "allFormat": "glob", 2106 | "allValue": null, 2107 | "current": { 2108 | "selected": false, 2109 | "text": "All", 2110 | "value": "$__all" 2111 | }, 2112 | "datasource": "prometheus", 2113 | "definition": "label_values(node_uname_info{nodename=~\"$hostname\"},instance)", 2114 | "hide": 0, 2115 | "includeAll": true, 2116 | "label": "IP", 2117 | "multi": false, 2118 | "multiFormat": "regex values", 2119 | "name": "node", 2120 | "options": [], 2121 | "query": "label_values(node_uname_info{nodename=~\"$hostname\"},instance)", 2122 | "refresh": 2, 2123 | "regex": "", 2124 | "skipUrlSync": false, 2125 | "sort": 1, 2126 | "tagValuesQuery": "", 2127 | "tags": [], 2128 | "tagsQuery": "", 2129 | "type": "query", 2130 | "useTags": false 2131 | }, 2132 | { 2133 | "allValue": null, 2134 | "current": { 2135 | "text": "/", 2136 | "value": "/" 2137 | }, 2138 | "datasource": "prometheus", 2139 | "definition": "", 2140 | "hide": 2, 2141 | "includeAll": false, 2142 | "label": "", 2143 | "multi": false, 2144 | "name": "maxmount", 2145 | "options": [], 2146 | "query": "query_result(topk(1,sort_desc (max(node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext4|xfs\"}) by (mountpoint))))", 2147 | "refresh": 2, 2148 | "regex": "/.*\\\"(.*)\\\".*/", 2149 | "skipUrlSync": false, 2150 | "sort": 0, 2151 | "tagValuesQuery": "", 2152 | "tags": [], 2153 | "tagsQuery": "", 2154 | "type": "query", 2155 | "useTags": false 2156 | }, 2157 | { 2158 | "allFormat": "glob", 2159 | "allValue": null, 2160 | "current": { 2161 | "isNone": true, 2162 | "selected": false, 2163 | "text": "None", 2164 | "value": "" 2165 | }, 2166 | "datasource": "prometheus", 2167 | "definition": "", 2168 | "hide": 2, 2169 | "includeAll": false, 2170 | "label": "环境", 2171 | "multi": false, 2172 | "multiFormat": "regex values", 2173 | "name": "env", 2174 | "options": [], 2175 | "query": "label_values(node_exporter_build_info,env)", 2176 | "refresh": 2, 2177 | "regex": "", 2178 | "skipUrlSync": false, 2179 | "sort": 1, 2180 | "tagValuesQuery": "", 2181 | "tags": [], 2182 | "tagsQuery": "", 2183 | "type": "query", 2184 | "useTags": false 2185 | }, 2186 | { 2187 | "allFormat": "glob", 2188 | "allValue": "", 2189 | "current": { 2190 | "isNone": true, 2191 | "selected": false, 2192 | "text": "None", 2193 | "value": "" 2194 | }, 2195 | "datasource": "prometheus", 2196 | "definition": "label_values(node_exporter_build_info{env=~'$env'},name)", 2197 | "hide": 2, 2198 | "includeAll": false, 2199 | "label": "名称", 2200 | "multi": true, 2201 | "multiFormat": "regex values", 2202 | "name": "name", 2203 | "options": [], 2204 | "query": "label_values(node_exporter_build_info{env=~'$env'},name)", 2205 | "refresh": 2, 2206 | "regex": "", 2207 | "skipUrlSync": false, 2208 | "sort": 1, 2209 | "tagValuesQuery": "/.*/", 2210 | "tags": [], 2211 | "tagsQuery": "", 2212 | "type": "query", 2213 | "useTags": false 2214 | } 2215 | ] 2216 | }, 2217 | "time": { 2218 | "from": "now-2d", 2219 | "to": "now" 2220 | }, 2221 | "timepicker": { 2222 | "now": true, 2223 | "refresh_intervals": [ 2224 | "5s", 2225 | "10s", 2226 | "30s", 2227 | "1m", 2228 | "5m", 2229 | "15m", 2230 | "30m", 2231 | "1h", 2232 | "2h", 2233 | "1d" 2234 | ], 2235 | "time_options": [ 2236 | "5m", 2237 | "15m", 2238 | "1h", 2239 | "6h", 2240 | "12h", 2241 | "24h", 2242 | "2d", 2243 | "7d", 2244 | "30d" 2245 | ] 2246 | }, 2247 | "timezone": "browser", 2248 | "title": "System Status Dashboard", 2249 | "uid": "hb7fSE0Zz", 2250 | "version": 7 2251 | } --------------------------------------------------------------------------------