mirror of
https://github.com/fluencelabs/node-distro
synced 2024-12-04 23:30:17 +00:00
Add Prometheus and Grafana configs and dashboards (#26)
This commit is contained in:
parent
afb6ef9a20
commit
fe38d07fe8
@ -44,6 +44,7 @@ CONFIG = {
|
||||
'{ipfs_port}:5001',
|
||||
'{ipfs_swarm_port}:4001',
|
||||
'{ipfs_gateway_port}:8080',
|
||||
'{metrics_port}:18080'
|
||||
],
|
||||
'restart': 'always'
|
||||
}
|
||||
@ -65,6 +66,7 @@ def gen_compose_file(out, container_tag, scale, is_bootstrap, bootstraps, host,
|
||||
ipfs_port = 5550
|
||||
ipfs_swarm_port = 4440
|
||||
ipfs_gateway_port = 8880
|
||||
metrics_port = 28880
|
||||
else:
|
||||
container = 'fluence'
|
||||
tcp_port = 7001
|
||||
@ -72,6 +74,8 @@ def gen_compose_file(out, container_tag, scale, is_bootstrap, bootstraps, host,
|
||||
ipfs_port = 5001
|
||||
ipfs_swarm_port = 4001
|
||||
ipfs_gateway_port = 8001
|
||||
metrics_port = 28081
|
||||
|
||||
|
||||
config = copy.deepcopy(CONFIG)
|
||||
service = config['services']['fluence']
|
||||
@ -109,6 +113,7 @@ def gen_compose_file(out, container_tag, scale, is_bootstrap, bootstraps, host,
|
||||
ipfs_port=ipfs_port,
|
||||
ipfs_swarm_port=ipfs_swarm_port,
|
||||
ipfs_gateway_port=ipfs_gateway_port,
|
||||
metrics_port=metrics_port
|
||||
), container_config['ports'])
|
||||
|
||||
for key in container_config['environment']:
|
||||
@ -128,6 +133,7 @@ def gen_compose_file(out, container_tag, scale, is_bootstrap, bootstraps, host,
|
||||
ipfs_port += 1
|
||||
ipfs_swarm_port += 1
|
||||
ipfs_gateway_port += 1
|
||||
metrics_port += 1
|
||||
|
||||
puts("Writing config to {}".format(out))
|
||||
with hide('running'):
|
||||
|
@ -4,7 +4,7 @@
|
||||
"environments": [
|
||||
{
|
||||
"name": "krasnodar",
|
||||
"container_tag": "v0.0.25_23",
|
||||
"container_tag": "v0.0.27_25",
|
||||
"containers_per_host": 1,
|
||||
"external_bootstraps": [
|
||||
"/ip4/165.227.164.206/tcp/7001",
|
||||
@ -69,7 +69,7 @@
|
||||
},
|
||||
{
|
||||
"name": "testnet",
|
||||
"container_tag": "v0.0.25_23",
|
||||
"container_tag": "v0.0.27_25",
|
||||
"containers_per_host": 1,
|
||||
"external_bootstraps": [],
|
||||
"hosts": [
|
||||
@ -130,7 +130,7 @@
|
||||
},
|
||||
{
|
||||
"name": "stage",
|
||||
"container_tag": "v0.0.25_23",
|
||||
"container_tag": "v0.0.27_25",
|
||||
"containers_per_host": 5,
|
||||
"hosts": [
|
||||
"134.209.186.43"
|
||||
|
@ -120,3 +120,21 @@ wss://{}:{}{} {{
|
||||
run('docker rm -f {} || true'.format(container))
|
||||
run('docker pull caddy:latest')
|
||||
run('docker run --name {} -d -p 80:80 {} -v $PWD/Caddyfile:/etc/caddy/Caddyfile -v caddy_data:/data caddy:latest'.format(container, open_ports))
|
||||
|
||||
@task
|
||||
@runs_once
|
||||
def deploy_cadvisor():
|
||||
load_config()
|
||||
execute(do_deploy_cadvisor)
|
||||
|
||||
@task
|
||||
@parallel
|
||||
def do_deploy_cadvisor():
|
||||
volumes = "--volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro"
|
||||
devices = "--device=/dev/kmsg"
|
||||
name = "--name=cadvisor"
|
||||
ports = "-p 16000:8080"
|
||||
container = "gcr.io/cadvisor/cadvisor:v0.39.3"
|
||||
|
||||
command = "docker run -d {} {} {} {} {}".format(volumes, devices, name, ports, container)
|
||||
run(command)
|
||||
|
8
fluence/deploy/prometheus/README.md
Normal file
8
fluence/deploy/prometheus/README.md
Normal file
@ -0,0 +1,8 @@
|
||||
# Prometheus and Grafana setup
|
||||
```bash
|
||||
git clone https://github.com/fluencelabs/node-distro
|
||||
git checkout prometheus # TODO: remove this line after merge
|
||||
cd fluence/deploy/prometheus
|
||||
export PROMETHEUS_HOST=134.209.186.43
|
||||
docker-compose up -d
|
||||
```
|
36
fluence/deploy/prometheus/docker-compose.yml
Normal file
36
fluence/deploy/prometheus/docker-compose.yml
Normal file
@ -0,0 +1,36 @@
|
||||
version: '3.2'
|
||||
services:
|
||||
prometheus:
|
||||
image: prom/prometheus:latest
|
||||
container_name: prometheus
|
||||
ports:
|
||||
- 9090:9090
|
||||
command:
|
||||
- --config.file=/etc/prometheus/prometheus.yml
|
||||
volumes:
|
||||
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
||||
- prometheus:/prometheus
|
||||
networks:
|
||||
- prometheus
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana:latest
|
||||
container_name: grafana
|
||||
environment:
|
||||
- PROMETHEUS_HOST=${PROMETHEUS_HOST:?You must set PROMETHEUS_HOST env variable to the public URL of the Prometheus host}
|
||||
ports:
|
||||
- 3000:3000
|
||||
volumes:
|
||||
- ./grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml
|
||||
- ./grafana/dashboard.yml:/etc/grafana/provisioning/dashboards/dashboard.yml
|
||||
- ./grafana/docker_monitoring_dashboard.json:/etc/grafana/provisioning/dashboards/docker_monitoring_dashboard.json
|
||||
- ./grafana/docker_cadvisor.json:/etc/grafana/provisioning/dashboards/docker_cadvisor.json
|
||||
- ./grafana/cadvisor_exporter.json:/etc/grafana/provisioning/dashboards/cadvisor_exporter.json
|
||||
networks:
|
||||
- prometheus
|
||||
|
||||
networks:
|
||||
prometheus:
|
||||
|
||||
volumes:
|
||||
prometheus:
|
747
fluence/deploy/prometheus/grafana/cadvisor_exporter.json
Normal file
747
fluence/deploy/prometheus/grafana/cadvisor_exporter.json
Normal file
@ -0,0 +1,747 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": "-- Grafana --",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": [],
|
||||
"type": "dashboard"
|
||||
},
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"description": "Simple exporter for cadvisor only",
|
||||
"editable": true,
|
||||
"fiscalYearStartMonth": 0,
|
||||
"gnetId": 14282,
|
||||
"graphTooltip": 0,
|
||||
"id": 2,
|
||||
"iteration": 1643033800391,
|
||||
"links": [],
|
||||
"liveNow": false,
|
||||
"panels": [
|
||||
{
|
||||
"collapsed": false,
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 1,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"id": 8,
|
||||
"panels": [],
|
||||
"title": "CPU",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 7,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 15,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": false,
|
||||
"max": true,
|
||||
"min": false,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null as zero",
|
||||
"options": {
|
||||
"alertThreshold": true
|
||||
},
|
||||
"percentage": false,
|
||||
"pluginVersion": "8.3.4",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(rate(container_cpu_usage_seconds_total{instance=~\"$host\",name=~\"$container\",name=~\".+\"}[5m])) by (name) *100",
|
||||
"hide": false,
|
||||
"interval": "",
|
||||
"legendFormat": "{{name}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeRegions": [],
|
||||
"title": "CPU Usage",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:606",
|
||||
"format": "percent",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:607",
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 1,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 8
|
||||
},
|
||||
"id": 11,
|
||||
"panels": [],
|
||||
"title": "Memory",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 9
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 9,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": false,
|
||||
"max": true,
|
||||
"min": false,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null as zero",
|
||||
"options": {
|
||||
"alertThreshold": true
|
||||
},
|
||||
"percentage": false,
|
||||
"pluginVersion": "8.3.4",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(container_memory_rss{instance=~\"$host\",name=~\"$container\",name=~\".+\"}) by (name)",
|
||||
"hide": false,
|
||||
"interval": "",
|
||||
"legendFormat": "{{name}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeRegions": [],
|
||||
"title": "Memory Usage",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:606",
|
||||
"format": "bytes",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:607",
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 9
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 14,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": false,
|
||||
"max": true,
|
||||
"min": false,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null as zero",
|
||||
"options": {
|
||||
"alertThreshold": true
|
||||
},
|
||||
"percentage": false,
|
||||
"pluginVersion": "8.3.4",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": true,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(container_memory_cache{instance=~\"$host\",name=~\"$container\",name=~\".+\"}) by (name)",
|
||||
"hide": false,
|
||||
"interval": "",
|
||||
"legendFormat": "{{name}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeRegions": [],
|
||||
"title": "Memory Cached",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:606",
|
||||
"format": "bytes",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:607",
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 1,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 17
|
||||
},
|
||||
"id": 2,
|
||||
"panels": [],
|
||||
"title": "Network",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 18
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 4,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": false,
|
||||
"hideEmpty": false,
|
||||
"hideZero": false,
|
||||
"max": true,
|
||||
"min": false,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"options": {
|
||||
"alertThreshold": true
|
||||
},
|
||||
"percentage": false,
|
||||
"pluginVersion": "8.3.4",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(rate(container_network_receive_bytes_total{instance=~\"$host\",name=~\"$container\",name=~\".+\"}[5m])) by (name)",
|
||||
"hide": false,
|
||||
"interval": "",
|
||||
"legendFormat": "{{name}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeRegions": [],
|
||||
"title": "Received Network Traffic",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:674",
|
||||
"format": "Bps",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:675",
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"aliasColors": {},
|
||||
"bars": false,
|
||||
"dashLength": 10,
|
||||
"dashes": false,
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"fill": 1,
|
||||
"fillGradient": 0,
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 18
|
||||
},
|
||||
"hiddenSeries": false,
|
||||
"id": 6,
|
||||
"legend": {
|
||||
"alignAsTable": true,
|
||||
"avg": true,
|
||||
"current": false,
|
||||
"max": true,
|
||||
"min": false,
|
||||
"rightSide": true,
|
||||
"show": true,
|
||||
"total": false,
|
||||
"values": true
|
||||
},
|
||||
"lines": true,
|
||||
"linewidth": 1,
|
||||
"nullPointMode": "null",
|
||||
"options": {
|
||||
"alertThreshold": true
|
||||
},
|
||||
"percentage": false,
|
||||
"pluginVersion": "8.3.4",
|
||||
"pointradius": 2,
|
||||
"points": false,
|
||||
"renderer": "flot",
|
||||
"seriesOverrides": [],
|
||||
"spaceLength": 10,
|
||||
"stack": false,
|
||||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(rate(container_network_transmit_bytes_total{instance=~\"$host\",name=~\"$container\",name=~\".+\"}[5m])) by (name)",
|
||||
"interval": "",
|
||||
"legendFormat": "{{name}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"thresholds": [],
|
||||
"timeRegions": [],
|
||||
"title": "Sent Network Traffic",
|
||||
"tooltip": {
|
||||
"shared": true,
|
||||
"sort": 0,
|
||||
"value_type": "individual"
|
||||
},
|
||||
"type": "graph",
|
||||
"xaxis": {
|
||||
"mode": "time",
|
||||
"show": true,
|
||||
"values": []
|
||||
},
|
||||
"yaxes": [
|
||||
{
|
||||
"$$hashKey": "object:832",
|
||||
"format": "Bps",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"$$hashKey": "object:833",
|
||||
"format": "short",
|
||||
"logBase": 1,
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"yaxis": {
|
||||
"align": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 1,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 26
|
||||
},
|
||||
"id": 19,
|
||||
"panels": [],
|
||||
"title": "Misc",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"custom": {
|
||||
"displayMode": "auto",
|
||||
"filterable": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "red",
|
||||
"value": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byName",
|
||||
"options": "id"
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "custom.width",
|
||||
"value": 260
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byName",
|
||||
"options": "Running"
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "unit",
|
||||
"value": "d"
|
||||
},
|
||||
{
|
||||
"id": "decimals",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"id": "custom.displayMode",
|
||||
"value": "color-text"
|
||||
},
|
||||
{
|
||||
"id": "color",
|
||||
"value": {
|
||||
"fixedColor": "dark-green",
|
||||
"mode": "fixed"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 10,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 27
|
||||
},
|
||||
"id": 17,
|
||||
"options": {
|
||||
"footer": {
|
||||
"fields": "",
|
||||
"reducer": [
|
||||
"sum"
|
||||
],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": true,
|
||||
"sortBy": []
|
||||
},
|
||||
"pluginVersion": "8.3.4",
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(time() - container_start_time_seconds{instance=~\"$host\",name=~\"$container\",name=~\".+\"})/86400",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"interval": "",
|
||||
"legendFormat": "{{name}}",
|
||||
"refId": "A"
|
||||
}
|
||||
],
|
||||
"title": "Containers Info",
|
||||
"transformations": [
|
||||
{
|
||||
"id": "filterFieldsByName",
|
||||
"options": {
|
||||
"include": {
|
||||
"names": [
|
||||
"container_label_com_docker_compose_project",
|
||||
"container_label_com_docker_compose_project_working_dir",
|
||||
"image",
|
||||
"instance",
|
||||
"name",
|
||||
"Value",
|
||||
"container_label_com_docker_compose_service"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "organize",
|
||||
"options": {
|
||||
"excludeByName": {},
|
||||
"indexByName": {},
|
||||
"renameByName": {
|
||||
"Value": "Running",
|
||||
"container_label_com_docker_compose_project": "Label",
|
||||
"container_label_com_docker_compose_project_working_dir": "Working dir",
|
||||
"container_label_com_docker_compose_service": "Service",
|
||||
"image": "Registry Image",
|
||||
"instance": "Instance",
|
||||
"name": "Name"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "table"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 34,
|
||||
"style": "dark",
|
||||
"tags": [
|
||||
"cadvisor",
|
||||
"docker"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": false,
|
||||
"text": "All",
|
||||
"value": "$__all"
|
||||
},
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"definition": "label_values({__name__=~\"container.*\"},instance)",
|
||||
"hide": 0,
|
||||
"includeAll": true,
|
||||
"label": "Host",
|
||||
"multi": false,
|
||||
"name": "host",
|
||||
"options": [],
|
||||
"query": {
|
||||
"query": "label_values({__name__=~\"container.*\"},instance)",
|
||||
"refId": "Prometheus-host-Variable-Query"
|
||||
},
|
||||
"refresh": 1,
|
||||
"regex": "",
|
||||
"skipUrlSync": false,
|
||||
"sort": 5,
|
||||
"tagValuesQuery": "",
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": false,
|
||||
"text": "All",
|
||||
"value": "$__all"
|
||||
},
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus_grafana_fluence"
|
||||
},
|
||||
"definition": "label_values({__name__=~\"container.*\", instance=~\"$host\"},name)",
|
||||
"hide": 0,
|
||||
"includeAll": true,
|
||||
"label": "Container",
|
||||
"multi": false,
|
||||
"name": "container",
|
||||
"options": [],
|
||||
"query": {
|
||||
"query": "label_values({__name__=~\"container.*\", instance=~\"$host\"},name)",
|
||||
"refId": "Prometheus-container-Variable-Query"
|
||||
},
|
||||
"refresh": 1,
|
||||
"regex": "",
|
||||
"skipUrlSync": false,
|
||||
"sort": 0,
|
||||
"tagValuesQuery": "",
|
||||
"tagsQuery": "",
|
||||
"type": "query",
|
||||
"useTags": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-6h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Cadvisor exporter",
|
||||
"uid": "pMEd7m0Mz",
|
||||
"version": 1,
|
||||
"weekStart": ""
|
||||
}
|
11
fluence/deploy/prometheus/grafana/dashboard.yml
Normal file
11
fluence/deploy/prometheus/grafana/dashboard.yml
Normal file
@ -0,0 +1,11 @@
|
||||
apiVersion: 1
|
||||
|
||||
providers:
|
||||
- name: 'Prometheus'
|
||||
orgId: 1
|
||||
folder: ''
|
||||
type: file
|
||||
disableDeletion: false
|
||||
editable: true
|
||||
options:
|
||||
path: /etc/grafana/provisioning/dashboards
|
24
fluence/deploy/prometheus/grafana/datasource.yml
Normal file
24
fluence/deploy/prometheus/grafana/datasource.yml
Normal file
@ -0,0 +1,24 @@
|
||||
# config file version
|
||||
apiVersion: 1
|
||||
|
||||
# list of datasources that should be deleted from the database
|
||||
deleteDatasources:
|
||||
- name: Graphite
|
||||
orgId: 1
|
||||
|
||||
# list of datasources to insert/update depending
|
||||
# what's available in the database
|
||||
datasources:
|
||||
# <string, required> name of the datasource. Required
|
||||
- name: Prometheus
|
||||
# <string, required> datasource type. Required
|
||||
type: prometheus
|
||||
# <string, required> access mode. proxy or direct (Server or Browser in the UI). Required
|
||||
access: proxy
|
||||
# <string> custom UID which can be used to reference this datasource in other parts of the configuration, if not specified will be generated automatically
|
||||
uid: prometheus_grafana_fluence
|
||||
# <string> url
|
||||
url: http://$PROMETHEUS_HOST:9090
|
||||
version: 1
|
||||
# <bool> allow users to edit datasources from the UI.
|
||||
editable: true
|
1184
fluence/deploy/prometheus/grafana/docker_cadvisor.json
Normal file
1184
fluence/deploy/prometheus/grafana/docker_cadvisor.json
Normal file
File diff suppressed because it is too large
Load Diff
2260
fluence/deploy/prometheus/grafana/docker_monitoring_dashboard.json
Normal file
2260
fluence/deploy/prometheus/grafana/docker_monitoring_dashboard.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,18 +1,57 @@
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
evaluation_interval: 15s
|
||||
|
||||
rule_files:
|
||||
# - "first.rules"
|
||||
# - "second.rules"
|
||||
|
||||
scrape_configs:
|
||||
- job_name: node
|
||||
- job_name: "docker"
|
||||
static_configs:
|
||||
- targets: ['localhost:19999']
|
||||
- targets: ['localhost:29999']
|
||||
- targets: ['localhost:39999']
|
||||
- { targets: [ "165.227.164.206:16000" ], labels: { hostname: "net-01", env: "testnet" } }
|
||||
- { targets: [ "138.197.189.50:16000" ], labels: { hostname: "net-02", env: "testnet" } }
|
||||
- { targets: [ "157.230.23.49:16000" ], labels: { hostname: "net-03", env: "testnet" } }
|
||||
- { targets: [ "159.65.126.102:16000" ], labels: { hostname: "net-04", env: "testnet" } }
|
||||
- { targets: [ "142.93.169.49:16000" ], labels: { hostname: "net-05", env: "testnet" } }
|
||||
- { targets: [ "139.59.148.53:16000" ], labels: { hostname: "net-06", env: "testnet" } }
|
||||
- { targets: [ "206.81.30.129:16000" ], labels: { hostname: "net-07", env: "testnet" } }
|
||||
- { targets: [ "157.230.98.51:16000" ], labels: { hostname: "net-08", env: "testnet" } }
|
||||
- { targets: [ "159.89.2.70:16000" ], labels: { hostname: "net-09", env: "testnet" } }
|
||||
- { targets: [ "157.230.98.75:16000" ], labels: { hostname: "net-10", env: "testnet" } }
|
||||
|
||||
# histogram_quantile(0.95, sum(irate(kademlia_exporter_random_node_lookup_duration_bucket[10s])) by (le))
|
||||
# histogram_quantile(0.95, sum(rate(kademlia_exporter_ping_duration_bucket[5m])) by (le))
|
||||
- { targets: [ "164.90.171.139:16000" ], labels: { hostname: "krasnodar-00", env: "krasnodar" } }
|
||||
- { targets: [ "178.128.194.190:16000" ], labels: { hostname: "krasnodar-01", env: "krasnodar" } }
|
||||
- { targets: [ "46.101.159.139:16000" ], labels: { hostname: "krasnodar-02", env: "krasnodar" } }
|
||||
- { targets: [ "161.35.222.178:16000" ], labels: { hostname: "krasnodar-03", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.164.229:16000" ], labels: { hostname: "krasnodar-04", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.168.55:16000" ], labels: { hostname: "krasnodar-05", env: "krasnodar" } }
|
||||
- { targets: [ "161.35.212.85:16000" ], labels: { hostname: "krasnodar-06", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.165.150:16000" ], labels: { hostname: "krasnodar-07", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.172.126:16000" ], labels: { hostname: "krasnodar-08", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.171.156:16000" ], labels: { hostname: "krasnodar-09", env: "krasnodar" } }
|
||||
|
||||
- job_name: "fluence"
|
||||
static_configs:
|
||||
- { targets: [ "165.227.164.206:28880" ], labels: { hostname: "net-01-bootstrap", env: "testnet" } }
|
||||
- { targets: [ "165.227.164.206:28081" ], labels: { hostname: "net-01", env: "testnet" } }
|
||||
- { targets: [ "138.197.189.50:28081" ], labels: { hostname: "net-02", env: "testnet" } }
|
||||
- { targets: [ "157.230.23.49:28081" ], labels: { hostname: "net-03", env: "testnet" } }
|
||||
- { targets: [ "159.65.126.102:28081" ], labels: { hostname: "net-04", env: "testnet" } }
|
||||
- { targets: [ "142.93.169.49:28081" ], labels: { hostname: "net-05", env: "testnet" } }
|
||||
- { targets: [ "139.59.148.53:28081" ], labels: { hostname: "net-06", env: "testnet" } }
|
||||
- { targets: [ "206.81.30.129:28081" ], labels: { hostname: "net-07", env: "testnet" } }
|
||||
- { targets: [ "157.230.98.51:28081" ], labels: { hostname: "net-08", env: "testnet" } }
|
||||
- { targets: [ "159.89.2.70:28081" ], labels: { hostname: "net-09", env: "testnet" } }
|
||||
- { targets: [ "157.230.98.75:28081" ], labels: { hostname: "net-10", env: "testnet" } }
|
||||
|
||||
- { targets: [ "134.209.186.43:28880" ], labels: { hostname: "stage-01-bootstrap", env: "stage" } }
|
||||
- { targets: [ "134.209.186.43:28081" ], labels: { hostname: "stage-01", env: "stage" } }
|
||||
- { targets: [ "134.209.186.43:28082" ], labels: { hostname: "stage-02", env: "stage" } }
|
||||
- { targets: [ "134.209.186.43:28083" ], labels: { hostname: "stage-03", env: "stage" } }
|
||||
- { targets: [ "134.209.186.43:28084" ], labels: { hostname: "stage-04", env: "stage" } }
|
||||
- { targets: [ "134.209.186.43:28085" ], labels: { hostname: "stage-05", env: "stage" } }
|
||||
|
||||
- { targets: [ "164.90.171.139:28880" ], labels: { hostname: "krasnodar-00", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.171.139:28081" ], labels: { hostname: "krasnodar-00", env: "krasnodar" } }
|
||||
- { targets: [ "178.128.194.190:28081" ], labels: { hostname: "krasnodar-01", env: "krasnodar" } }
|
||||
- { targets: [ "46.101.159.139:28081" ], labels: { hostname: "krasnodar-02", env: "krasnodar" } }
|
||||
- { targets: [ "161.35.222.178:28081" ], labels: { hostname: "krasnodar-03", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.164.229:28081" ], labels: { hostname: "krasnodar-04", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.168.55:28081" ], labels: { hostname: "krasnodar-05", env: "krasnodar" } }
|
||||
- { targets: [ "161.35.212.85:28081" ], labels: { hostname: "krasnodar-06", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.165.150:28081" ], labels: { hostname: "krasnodar-07", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.172.126:28081" ], labels: { hostname: "krasnodar-08", env: "krasnodar" } }
|
||||
- { targets: [ "164.90.171.156:28081" ], labels: { hostname: "krasnodar-09", env: "krasnodar" } }
|
||||
|
@ -7,7 +7,7 @@ services:
|
||||
RUST_BACKTRACE: full
|
||||
RUST_LOG: info,network=trace,aquamarine=info,aquamarine::actor=info,tokio_threadpool=info,tokio_reactor=info,mio=info,tokio_io=info,soketto=info,yamux=info,multistream_select=info,libp2p_secio=info,libp2p_websocket::framed=info,libp2p_ping=info,libp2p_core::upgrade::apply=info,libp2p_kad::kbucket=info,cranelift_codegen=info,wasmer_wasi=info,async_io=info,polling=info,wasmer_interface_types_fl=info,cranelift_codegen=info,wasmer_wasi=info,async_io=info,polling=info,wasmer_interface_types_fl=info,particle_server::behaviour::identify=info,libp2p_mplex=info,libp2p_identify=info,walrus=info,particle_protocol::libp2p_protocol::upgrade=info,kademlia::behaviour=info
|
||||
WASM_LOG: info
|
||||
image: fluencelabs/node:latest
|
||||
image: fluencelabs/node:metrics_v351
|
||||
ports:
|
||||
- 7770:7770 # tcp
|
||||
- 9990:9990 # ws
|
||||
@ -28,7 +28,7 @@ services:
|
||||
RUST_BACKTRACE: full
|
||||
RUST_LOG: info,network=trace,aquamarine=info,aquamarine::actor=info,tokio_threadpool=info,tokio_reactor=info,mio=info,tokio_io=info,soketto=info,yamux=info,multistream_select=info,libp2p_secio=info,libp2p_websocket::framed=info,libp2p_ping=info,libp2p_core::upgrade::apply=info,libp2p_kad::kbucket=info,cranelift_codegen=info,wasmer_wasi=info,async_io=info,polling=info,wasmer_interface_types_fl=info,cranelift_codegen=info,wasmer_wasi=info,async_io=info,polling=info,wasmer_interface_types_fl=info,particle_server::behaviour::identify=info,libp2p_mplex=info,libp2p_identify=info,walrus=info,particle_protocol::libp2p_protocol::upgrade=info,kademlia::behaviour=info
|
||||
WASM_LOG: info
|
||||
image: fluencelabs/node:latest
|
||||
image: fluencelabs/node:metrics_v351
|
||||
ports:
|
||||
- 7771:7771 # tcp
|
||||
- 9991:9991 # ws
|
||||
@ -49,7 +49,7 @@ services:
|
||||
RUST_BACKTRACE: full
|
||||
RUST_LOG: info,network=trace,aquamarine=info,aquamarine::actor=info,tokio_threadpool=info,tokio_reactor=info,mio=info,tokio_io=info,soketto=info,yamux=info,multistream_select=info,libp2p_secio=info,libp2p_websocket::framed=info,libp2p_ping=info,libp2p_core::upgrade::apply=info,libp2p_kad::kbucket=info,cranelift_codegen=info,wasmer_wasi=info,async_io=info,polling=info,wasmer_interface_types_fl=info,cranelift_codegen=info,wasmer_wasi=info,async_io=info,polling=info,wasmer_interface_types_fl=info,particle_server::behaviour::identify=info,libp2p_mplex=info,libp2p_identify=info,walrus=info,particle_protocol::libp2p_protocol::upgrade=info,kademlia::behaviour=info
|
||||
WASM_LOG: info
|
||||
image: fluencelabs/node:latest
|
||||
image: fluencelabs/node:metrics_v351
|
||||
ports:
|
||||
- 7772:7772 # tcp
|
||||
- 9992:9992 # ws
|
||||
@ -63,8 +63,52 @@ services:
|
||||
networks:
|
||||
- fluence
|
||||
|
||||
|
||||
env.json:
|
||||
restart: "no"
|
||||
# depends_on:
|
||||
# - fluence
|
||||
image: busybox:stable
|
||||
volumes:
|
||||
- env.json:/env
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- |
|
||||
cat <<EOF > /env/env.json
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"multiaddr": "/ip4/127.0.0.1/tcp/9990/ws/p2p/12D3KooWHBG9oaVx4i3vi6c1rSBUm7MLBmyGmmbHoZ23pmjDCnvK",
|
||||
"peerId": "12D3KooWHBG9oaVx4i3vi6c1rSBUm7MLBmyGmmbHoZ23pmjDCnvK"
|
||||
},
|
||||
{
|
||||
"multiaddr": "/ip4/127.0.0.1/tcp/9991/ws/p2p/12D3KooWRABanQHUn28dxavN9ZS1zZghqoZVAYtFpoN7FdtoGTFv",
|
||||
"peerId": "12D3KooWRABanQHUn28dxavN9ZS1zZghqoZVAYtFpoN7FdtoGTFv"
|
||||
},
|
||||
{
|
||||
"multiaddr": "/ip4/127.0.0.1/tcp/9992/ws/p2p/12D3KooWFpQ7LHxcC9FEBUh3k4nSCC12jBhijJv3gJbi7wsNYzJ5",
|
||||
"peerId": "12D3KooWFpQ7LHxcC9FEBUh3k4nSCC12jBhijJv3gJbi7wsNYzJ5"
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
dashboard:
|
||||
depends_on:
|
||||
- env.json
|
||||
image: fluencelabs/dashboard:latest
|
||||
volumes:
|
||||
- env.json:/dist/env
|
||||
networks:
|
||||
- fluence
|
||||
ports:
|
||||
- 8080:8080
|
||||
|
||||
version: "3.5"
|
||||
volumes:
|
||||
fluence: null
|
||||
env.json: null
|
||||
fluence-0:
|
||||
fluence-1:
|
||||
fluence-2:
|
||||
|
Loading…
Reference in New Issue
Block a user