my own changes

Added my own ports checker docker
, let anonymous users to publicly access Grafana
, removed unused dashboards
, added my own tuned dashboard
This commit is contained in:
Xavier Fontanet 2022-06-30 19:36:18 +02:00
parent 38993e14b6
commit 64a20f97c1
11 changed files with 1169 additions and 2815 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.DS_Store

View File

@ -25,6 +25,7 @@ services:
links: links:
- ping:ping - ping:ping
- speedtest:speedtest - speedtest:speedtest
- portschecker:portschecker
networks: networks:
- back-tier - back-tier
@ -89,3 +90,19 @@ services:
- "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)" - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
networks: networks:
- back-tier - back-tier
portschecker:
tty: true
stdin_open: true
image: xeviff/python-prometheus-canyouseeme
volumes:
- ./pyPrometheusPortChecker/config:/config
depends_on:
- speedtest
expose:
- 9116
ports:
- 9116:9116
restart: always
networks:
- back-tier

View File

@ -1,3 +1,4 @@
GF_SECURITY_ADMIN_PASSWORD=wonka GF_SECURITY_ADMIN_PASSWORD=grafana123
GF_USERS_ALLOW_SIGN_UP=false GF_USERS_ALLOW_SIGN_UP=true
GF_INSTALL_PLUGINS=flant-statusmap-panel,ae3e-plotly-panel GF_INSTALL_PLUGINS=flant-statusmap-panel,ae3e-plotly-panel
GF_AUTH_ANONYMOUS_ENABLED=true

File diff suppressed because it is too large Load Diff

View File

@ -1,560 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"limit": 100,
"name": "Annotations & Alerts",
"showIn": 0,
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"links": [],
"panels": [
{
"cacheTimeout": null,
"datasource": "prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"id": 0,
"op": "=",
"text": "N/A",
"type": 1,
"value": "null"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#299c46",
"value": null
},
{
"color": "blue",
"value": 100
}
]
},
"unit": "bps"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 6,
"x": 0,
"y": 0
},
"id": 8,
"interval": null,
"links": [],
"maxDataPoints": 50000,
"options": {
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"mean"
],
"fields": "",
"values": false
},
"showThresholdLabels": false,
"showThresholdMarkers": true,
"text": {}
},
"pluginVersion": "7.5.6",
"targets": [
{
"expr": "speedtest_download_bits_per_second{}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "",
"refId": "A"
}
],
"title": "Download",
"type": "gauge"
},
{
"cacheTimeout": null,
"datasource": "prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"id": 0,
"op": "=",
"text": "N/A",
"type": 1,
"value": "null"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "blue",
"value": 20
}
]
},
"unit": "bps"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 6,
"x": 6,
"y": 0
},
"id": 10,
"interval": null,
"links": [],
"maxDataPoints": 50000,
"options": {
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"mean"
],
"fields": "",
"values": false
},
"showThresholdLabels": false,
"showThresholdMarkers": true,
"text": {}
},
"pluginVersion": "7.5.6",
"targets": [
{
"expr": "speedtest_upload_bits_per_second{}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "",
"refId": "A"
}
],
"title": "Upload",
"type": "gauge"
},
{
"cacheTimeout": null,
"datasource": "prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 2,
"mappings": [
{
"id": 0,
"op": "=",
"text": "N/A",
"type": 1,
"value": "null"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "ms"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 0
},
"id": 12,
"interval": null,
"links": [],
"maxDataPoints": 50000,
"options": {
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"mean"
],
"fields": "",
"values": false
},
"showThresholdLabels": false,
"showThresholdMarkers": true,
"text": {}
},
"pluginVersion": "7.5.6",
"targets": [
{
"expr": "speedtest_ping_latency_milliseconds",
"format": "time_series",
"instant": false,
"interval": "",
"intervalFactor": 1,
"legendFormat": "",
"refId": "A"
}
],
"title": "Speedtest Ping",
"type": "gauge"
},
{
"datasource": "prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 50,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
},
"lineInterpolation": "linear",
"lineWidth": 0,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bps"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 9
},
"id": 6,
"links": [],
"maxDataPoints": 50000,
"options": {
"graph": {},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "right"
},
"tooltipOptions": {
"mode": "multi"
}
},
"pluginVersion": "7.4.5",
"repeat": null,
"targets": [
{
"expr": "speedtest_download_bits_per_second{}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "Download",
"refId": "A"
},
{
"expr": "speedtest_upload_bits_per_second{}",
"hide": false,
"interval": "",
"legendFormat": "Upload",
"refId": "B"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Speedtest Graph",
"type": "timeseries"
},
{
"cards": {
"cardHSpacing": 2,
"cardMinWidth": 5,
"cardRound": null,
"cardVSpacing": 2
},
"color": {
"cardColor": "#b4ff00",
"colorScale": "sqrt",
"colorScheme": "interpolateGnYlRd",
"defaultColor": "#757575",
"exponent": 0.5,
"max": 1,
"min": 0,
"mode": "discrete",
"thresholds": [
{
"$$hashKey": "object:68",
"color": "#37872D",
"tooltip": "Up",
"value": "1"
},
{
"$$hashKey": "object:72",
"color": "#C4162A",
"tooltip": "Down",
"value": "0"
}
]
},
"datasource": "prometheus",
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 9
},
"highlightCards": true,
"id": 14,
"legend": {
"show": false
},
"links": [],
"nullPointMode": "as empty",
"pageSize": 15,
"seriesFilterIndex": -1,
"statusmap": {
"ConfigVersion": "v1"
},
"targets": [
{
"expr": "probe_success",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
"legendFormat": "{{instance}}",
"refId": "A"
}
],
"title": "Uptime",
"tooltip": {
"extraInfo": "",
"freezeOnClick": true,
"items": [],
"show": true,
"showExtraInfo": false,
"showItems": false
},
"type": "flant-statusmap-panel",
"useMax": true,
"usingPagination": false,
"xAxis": {
"show": true
},
"yAxis": {
"maxWidth": -1,
"minWidth": -1,
"show": true
},
"yAxisSort": "metrics",
"yLabel": {
"delimiter": "",
"labelTemplate": "",
"usingSplitLabel": false
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"fieldConfig": {
"defaults": {},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 24,
"x": 0,
"y": 18
},
"hiddenSeries": false,
"id": 4,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"maxPerRow": 12,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "7.5.6",
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": "host",
"repeatDirection": "h",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "sum(probe_http_duration_seconds) by (instance)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "{{instance}}",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "HTTP Request Duration",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "5m",
"schemaVersion": 27,
"style": "dark",
"tags": [
"speedtest",
"ping"
],
"templating": {
"list": []
},
"time": {
"from": "now-7d",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "browser",
"title": "Internet connection",
"uid": "o9mIe_Aik",
"version": 12
}

View File

@ -1,271 +0,0 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 2,
"links": [],
"panels": [
{
"datasource": "prometheus",
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"max": 500,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "#EAB839",
"value": 150
},
{
"color": "red",
"value": 300
}
]
},
"unit": "watt"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 6,
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showThresholdLabels": false,
"showThresholdMarkers": true,
"text": {}
},
"pluginVersion": "7.4.5",
"targets": [
{
"expr": "power",
"interval": "",
"legendFormat": "Watts",
"queryType": "randomWalk",
"refId": "A"
}
],
"title": "Power Consumption (Latest)",
"type": "gauge"
},
{
"datasource": "prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"max": 500,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "#EAB839",
"value": 150
},
{
"color": "red",
"value": 300
}
]
},
"unit": "watt"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 4,
"options": {
"reduceOptions": {
"calcs": [
"mean"
],
"fields": "",
"values": false
},
"showThresholdLabels": false,
"showThresholdMarkers": true,
"text": {}
},
"pluginVersion": "7.4.5",
"targets": [
{
"expr": "power",
"interval": "",
"legendFormat": "Watts",
"queryType": "randomWalk",
"refId": "A"
}
],
"title": "Power Consumption (Average)",
"type": "gauge"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "prometheus",
"description": "",
"fieldConfig": {
"defaults": {
"custom": {},
"unit": "watt"
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 8
},
"hiddenSeries": false,
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": false,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "7.4.5",
"pointradius": 1,
"points": true,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "power",
"interval": "",
"legendFormat": "Watts",
"queryType": "randomWalk",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Power Consumption",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:169",
"decimals": null,
"format": "watt",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"$$hashKey": "object:170",
"decimals": null,
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"refresh": "5m",
"schemaVersion": 27,
"style": "dark",
"tags": [
"power"
],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Power consumption",
"uid": "i_aeo-uMz",
"version": 3
}

File diff suppressed because one or more lines are too long

BIN
images/dashboard.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

View File

@ -1,7 +1,8 @@
- targets: # url;humanname;routing;switch - targets: # url;humanname;routing;switch
- http://www.google.com/;google.com;external;internetbox - http://www.google.com/;google.com;external;internetbox
- https://github.com/;github.com;external;internetbox #- https://github.com/;github.com;external;internetbox
- https://www.apple.com/;apple.com;external;internetbox - https://www.apple.com/;apple.com;external;internetbox
- https://www.fibracat.cat/;fibracat.cat;external;internetbox
# - http://192.168.1.1;internetbox;local;internetbox # - http://192.168.1.1;internetbox;local;internetbox
# - http://192.168.1.42;blackdata;local;orbirouter-attic # - http://192.168.1.42;blackdata;local;orbirouter-attic
# - http://192.168.1.101;orbirouter;local;orbirouter # - http://192.168.1.101;orbirouter;local;orbirouter

View File

@ -11,7 +11,7 @@ rule_files:
scrape_configs: scrape_configs:
- job_name: 'prometheus' - job_name: 'prometheus'
scrape_interval: 5s scrape_interval: 60s
static_configs: static_configs:
- targets: ['localhost:9090'] - targets: ['localhost:9090']
@ -22,28 +22,9 @@ scrape_configs:
static_configs: static_configs:
- targets: ['speedtest:9798'] - targets: ['speedtest:9798']
# This job config only works with my internet-pi configuration currently,
# if you also have the shelly plug enabled there. It will just error out
# by default if you don't have a Shelly Plug on your network. Someday I'll
# work on making this more configurable...
- job_name: 'shelly-plug'
metrics_path: /metrics
scrape_interval: 1m
static_configs:
- targets: ['172.17.0.1:9924']
# This job config only works with my internet-pi configuration currently,
# if you also have starlink enabled there. It will just error out by default
# if you don't have Starlink. Someday I'll work on making this more
# configurable...
- job_name: 'starlink'
metrics_path: /metrics
static_configs:
- targets: ['172.17.0.1:9817']
- job_name: 'ping' - job_name: 'ping'
metrics_path: /probe metrics_path: /probe
scrape_interval: 5s scrape_interval: 60s
params: params:
module: [http_2xx] # Look for a HTTP 200 response. module: [http_2xx] # Look for a HTTP 200 response.
file_sd_configs: file_sd_configs:
@ -74,3 +55,7 @@ scrape_configs:
- job_name: 'nodeexp' - job_name: 'nodeexp'
static_configs: static_configs:
- targets: ['nodeexp:9100'] - targets: ['nodeexp:9100']
- job_name: 'python-portschecker'
static_configs:
- targets: ['portschecker:9116']

View File

@ -0,0 +1,10 @@
service_port: 9116
scrape_frequency: 3600
host_to_check: yourdomain.is
ports_tocheck:
- 25
- 80
- 443
- 32400
- 22
- 51413