new graf, prom, dashboard, exporters! (#12)

* new graf, prom, dashboard, exporters!

* update readme and static images
pull/13/head
lalanza808 2 years ago committed by GitHub
parent 038c40012c
commit 109f2cad80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -2,7 +2,7 @@
Simple way to run a Monero node with some basic monitoring tools packaged in. Simple way to run a Monero node with some basic monitoring tools packaged in.
Leverages [Prometheus](https://prometheus.io/docs/introduction/overview/), [Grafana](https://grafana.com/), and [ExcitableAardvark/monerod_exporter](https://github.com/ExcitableAardvark/monerod_exporter.git) on top of `monerod`. Leverages [Prometheus](https://prometheus.io/docs/introduction/overview/), [Grafana](https://grafana.com/), and [monero-exporter](https://github.com/cirocosta/monero-exporter) on top of `monerod`.
## Setup ## Setup
@ -13,7 +13,7 @@ The only requirements are [Docker](https://docs.docker.com/get-docker/) and [Doc
git clone https://github.com/lalanza808/docker-monero-node git clone https://github.com/lalanza808/docker-monero-node
cd docker-monero-node cd docker-monero-node
# OPTIONAL: Setup Grafana password, blockchain storage location, or port overrides # OPTIONAL: Setup Grafana password, blockchain storage location, or port and container image tag overrides
cp env-example .env cp env-example .env
vim .env vim .env
@ -27,8 +27,15 @@ The following ports will be bound for `monerod` by default, but you can override
- 18082 # zmq - 18082 # zmq
- 18083 # unrestricted rpc - 18083 # unrestricted rpc
The following ports will be bound for other services:
- 9090 # prometheus web ui
- 3000 # grafana web ui
- 9000 # exporter web api (/metrics)
You will want to open/allow ports 18080 and 18081 in your firewall for usage as a remote/public node (or whichever p2p and restricted ports you picked). You will want to open/allow ports 18080 and 18081 in your firewall for usage as a remote/public node (or whichever p2p and restricted ports you picked).
Also, you may want to setup a reverse proxy to Grafana if you would like to expose the visualizations for the world to see. Be sure to lock down the administrative settings or leave login disabled!
## Usage ## Usage
It's fairly simple, use `docker-compose` to bring the containers up and down and look at logs. It's fairly simple, use `docker-compose` to bring the containers up and down and look at logs.
@ -38,15 +45,15 @@ It's fairly simple, use `docker-compose` to bring the containers up and down and
docker-compose up -d # make up docker-compose up -d # make up
# Check all logs # Check all logs
docker-compose logs -f # make logs docker-compose logs -f
# Check monerod logs # Check monerod logs
docker-compose logs -f monerod docker-compose logs -f monerod # make logs
``` ```
Navigate to http://localhost:3000 and log into Grafana. Find the `Daemon Stats` dashboard to get those sweet, sweet graphs. Navigate to http://localhost:3000 and log into Grafana. Find the `Node Stats` dashboard to get those sweet, sweet graphs.
If you've installed this on another system you will want to use [SSH tunnels](https://www.ssh.com/ssh/tunneling/example) (local forwarding) to reach Grafana: If you've installed this on another system you will want to use [SSH tunnels](https://www.ssh.com/ssh/tunneling/example) (local forwarding) to reach Grafana (if not exposing via reverse proxy):
``` ```
ssh <VPS OR SERVER IP> -L 3000:localhost:3000 ssh <VPS OR SERVER IP> -L 3000:localhost:3000
@ -54,4 +61,6 @@ ssh <VPS OR SERVER IP> -L 3000:localhost:3000
Then navigate to http://localhost:3000. Here is what the graph looks like: Then navigate to http://localhost:3000. Here is what the graph looks like:
![](static/monerod_grafana.png) ![](static/graf1.png)
![](static/graf2.png)

@ -1,64 +1,76 @@
version: '3' version: "3.7"
volumes: volumes:
grafana: grafana:
prometheus: prometheus:
x-log-config: &log-config
logging:
driver: json-file
options:
max-size: "50m"
max-file: "20"
services: services:
prometheus: prometheus:
image: prom/prometheus:v2.18.0 image: prom/prometheus:${PROM_TAG:-v2.36.0}
container_name: prometheus
restart: unless-stopped
command: command:
- --config.file=/etc/prometheus/prometheus.yml - --config.file=/etc/prometheus/config.yaml
- --storage.tsdb.path=/prometheus - --storage.tsdb.path=/prometheus
- --web.console.libraries=/usr/share/prometheus/console_libraries - --storage.tsdb.retention.time=360d
- --web.console.templates=/usr/share/prometheus/consoles container_name: monerod_prometheus
- --web.enable-admin-api restart: unless-stopped
volumes:
- prometheus:/prometheus
- ./files/prometheus:/etc/prometheus
ports: ports:
- 127.0.0.1:9090:9090 - 127.0.0.1:9090:9090
volumes:
- prometheus:/prometheus
- ./files/prometheus/config.yaml:/etc/prometheus/config.yaml:ro
<<: *log-config
grafana: grafana:
image: grafana/grafana:6.5.0 user: "1000"
container_name: grafana command:
- -config=/etc/grafana/grafana.ini
container_name: monerod_grafana
restart: unless-stopped restart: unless-stopped
image: grafana/grafana:${GRAFANA_TAG:-8.5.4}
ports: ports:
- 127.0.0.1:3000:3000 - 127.0.0.1:3000:3000
volumes:
- grafana:/var/lib/grafana
- ./files/grafana/grafana.ini:/etc/grafana/grafana.ini:ro
- ./files/grafana/provisioning:/etc/grafana/provisioning:ro
- ./files/grafana/dashboards:/var/lib/grafana/dashboards:ro
environment: environment:
HOSTNAME: grafana HOSTNAME: grafana
GF_SERVER_ROOT_URL: "${GRAFANA_URL}" GF_SERVER_ROOT_URL: ${GRAFANA_URL}
GF_ANALYTICS_REPORTING_ENABLED: "false" GF_ANALYTICS_REPORTING_ENABLED: "false"
GF_ANALYTICS_CHECK_FOR_UPDATES: "false" GF_ANALYTICS_CHECK_FOR_UPDATES: "false"
GF_USERS_ALLOW_SIGN_UP: "false" GF_USERS_ALLOW_SIGN_UP: "false"
GF_USERS_ALLOW_ORG_CREATE: "false" GF_USERS_ALLOW_ORG_CREATE: "false"
GF_LOG_LEVEL: "debug"
GF_AUTH_ANONYMOUS_ENABLED: "${GF_AUTH_ANONYMOUS_ENABLED:-true}" GF_AUTH_ANONYMOUS_ENABLED: "${GF_AUTH_ANONYMOUS_ENABLED:-true}"
GF_AUTH_BASIC_ENABLED: "${GF_AUTH_BASIC_ENABLED:-false}" GF_AUTH_BASIC_ENABLED: "${GF_AUTH_BASIC_ENABLED:-false}"
GF_AUTH_DISABLE_LOGIN_FORM: "${GF_AUTH_DISABLE_LOGIN_FORM:-true}" GF_AUTH_DISABLE_LOGIN_FORM: "${GF_AUTH_DISABLE_LOGIN_FORM:-true}"
GF_SECURITY_ADMIN_PASSWORD: "${GF_SECURITY_ADMIN_PASSWORD}" GF_SECURITY_ADMIN_PASSWORD: "${GF_SECURITY_ADMIN_PASSWORD}"
GF_SECURITY_ADMIN_USER: "${GF_SECURITY_ADMIN_USER}" GF_SECURITY_ADMIN_USER: "${GF_SECURITY_ADMIN_USER}"
volumes: <<: *log-config
- ./files/grafana/dashboards.yaml:/etc/grafana/provisioning/dashboards/default.yaml:ro
- ./files/grafana/prometheus.yaml:/etc/grafana/provisioning/datasources/prometheus.yaml:ro
- ./files/grafana/daemon_metrics.json:/var/lib/grafana/dashboards/daemon_metrics.json:ro
- grafana:/var/lib/grafana
exporter: exporter:
container_name: exporter container_name: monerod_exporter
build: build:
context: dockerfiles context: dockerfiles
dockerfile: monerod_exporter dockerfile: monerod_exporter
restart: unless-stopped restart: unless-stopped
environment:
DAEMON_HOST: http://monerod:18083
PORT: 8080
ports: ports:
- 127.0.0.1:8080:8080 - 127.0.0.1:9000:9000
command:
- --monero-addr=http://monerod:${UNRESTRICTED_PORT:-18083}
<<: *log-config
monerod: monerod:
container_name: monerod container_name: monerod
build: build:
context: dockerfiles context: dockerfiles
dockerfile: monero_compile dockerfile: monero_compile
args: args: ${THREADS:-2}
threads: ${THREADS:-1}
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- ${DATA_DIR:-./data}:/data - ${DATA_DIR:-./data}:/data
@ -68,4 +80,5 @@ services:
- 127.0.0.1:${ZMQ_PORT:-18082}:18082 # zmq - 127.0.0.1:${ZMQ_PORT:-18082}:18082 # zmq
- 127.0.0.1:${UNRESTRICTED_PORT:-18083}:18083 # unrestricted rpc - 127.0.0.1:${UNRESTRICTED_PORT:-18083}:18083 # unrestricted rpc
command: command:
monerod --data-dir=/data --p2p-bind-ip=0.0.0.0 --p2p-bind-port=18080 --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18081 --zmq-rpc-bind-ip=0.0.0.0 --zmq-rpc-bind-port=18082 --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18083 --non-interactive --confirm-external-bind --public-node --log-level=0 --enable-dns-blocklist monerod --data-dir=/data --p2p-bind-ip=0.0.0.0 --p2p-bind-port=18080 --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18081 --zmq-rpc-bind-ip=0.0.0.0 --zmq-rpc-bind-port=18082 --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18083 --non-interactive --confirm-external-bind --public-node --log-level=0 --enable-dns-blocklist --rpc-ssl=disabled
<<: *log-config

@ -1,60 +1,70 @@
version: '3' version: "3.7"
volumes: volumes:
grafana: grafana:
prometheus: prometheus:
x-log-config: &log-config
logging:
driver: json-file
options:
max-size: "50m"
max-file: "20"
services: services:
prometheus: prometheus:
image: prom/prometheus:v2.18.0 image: prom/prometheus:${PROM_TAG:-v2.36.0}
container_name: prometheus
restart: unless-stopped
command: command:
- --config.file=/etc/prometheus/prometheus.yml - --config.file=/etc/prometheus/config.yaml
- --storage.tsdb.path=/prometheus - --storage.tsdb.path=/prometheus
- --web.console.libraries=/usr/share/prometheus/console_libraries
- --web.console.templates=/usr/share/prometheus/consoles
- --web.enable-admin-api
- --storage.tsdb.retention.time=360d - --storage.tsdb.retention.time=360d
volumes: container_name: monerod_prometheus
- prometheus:/prometheus restart: unless-stopped
- ./files/prometheus:/etc/prometheus
ports: ports:
- 127.0.0.1:9090:9090 - 127.0.0.1:9090:9090
volumes:
- prometheus:/prometheus
- ./files/prometheus/config.yaml:/etc/prometheus/config.yaml:ro
<<: *log-config
grafana: grafana:
image: grafana/grafana:6.5.0 user: "1000"
container_name: grafana command:
- -config=/etc/grafana/grafana.ini
container_name: monerod_grafana
restart: unless-stopped restart: unless-stopped
image: grafana/grafana:${GRAFANA_TAG:-8.5.4}
ports: ports:
- 127.0.0.1:3000:3000 - 127.0.0.1:3000:3000
volumes:
- grafana:/var/lib/grafana
- ./files/grafana/grafana.ini:/etc/grafana/grafana.ini:ro
- ./files/grafana/provisioning:/etc/grafana/provisioning:ro
- ./files/grafana/dashboards:/var/lib/grafana/dashboards:ro
environment: environment:
HOSTNAME: grafana HOSTNAME: grafana
GF_SERVER_ROOT_URL: "${GRAFANA_URL}" GF_SERVER_ROOT_URL: ${GRAFANA_URL}
GF_SERVER_SERVE_FROM_SUB_PATH: "${GF_SERVER_SERVE_FROM_SUB_PATH:-false}"
GF_ANALYTICS_REPORTING_ENABLED: "false" GF_ANALYTICS_REPORTING_ENABLED: "false"
GF_ANALYTICS_CHECK_FOR_UPDATES: "false" GF_ANALYTICS_CHECK_FOR_UPDATES: "false"
GF_USERS_ALLOW_SIGN_UP: "false" GF_USERS_ALLOW_SIGN_UP: "false"
GF_USERS_ALLOW_ORG_CREATE: "false" GF_USERS_ALLOW_ORG_CREATE: "false"
GF_LOG_LEVEL: "debug"
GF_AUTH_ANONYMOUS_ENABLED: "${GF_AUTH_ANONYMOUS_ENABLED:-true}" GF_AUTH_ANONYMOUS_ENABLED: "${GF_AUTH_ANONYMOUS_ENABLED:-true}"
GF_AUTH_BASIC_ENABLED: "${GF_AUTH_BASIC_ENABLED:-false}" GF_AUTH_BASIC_ENABLED: "${GF_AUTH_BASIC_ENABLED:-false}"
GF_AUTH_DISABLE_LOGIN_FORM: "${GF_AUTH_DISABLE_LOGIN_FORM:-true}" GF_AUTH_DISABLE_LOGIN_FORM: "${GF_AUTH_DISABLE_LOGIN_FORM:-true}"
GF_SECURITY_ADMIN_PASSWORD: "${GF_SECURITY_ADMIN_PASSWORD}" GF_SECURITY_ADMIN_PASSWORD: "${GF_SECURITY_ADMIN_PASSWORD}"
GF_SECURITY_ADMIN_USER: "${GF_SECURITY_ADMIN_USER}" GF_SECURITY_ADMIN_USER: "${GF_SECURITY_ADMIN_USER}"
GF_INSTALL_PLUGINS: "${GF_INSTALL_PLUGINS}" <<: *log-config
volumes:
- ./files/grafana/dashboards.yaml:/etc/grafana/provisioning/dashboards/default.yaml:ro
- ./files/grafana/prometheus.yaml:/etc/grafana/provisioning/datasources/prometheus.yaml:ro
- ./files/grafana/daemon_metrics.json:/var/lib/grafana/dashboards/daemon_metrics.json:ro
- grafana:/var/lib/grafana
exporter: exporter:
container_name: exporter container_name: monerod_exporter
build: build:
context: dockerfiles context: dockerfiles
dockerfile: monerod_exporter dockerfile: monerod_exporter
restart: unless-stopped restart: unless-stopped
environment:
DAEMON_HOST: http://monerod:18083
PORT: 8080
ports: ports:
- 127.0.0.1:8080:8080 - 127.0.0.1:9000:9000
command:
- --monero-addr=http://monerod:${UNRESTRICTED_PORT:-18083}
<<: *log-config
monerod: monerod:
container_name: monerod container_name: monerod
build: build:
@ -70,3 +80,4 @@ services:
- 127.0.0.1:${UNRESTRICTED_PORT:-18083}:18083 # unrestricted rpc - 127.0.0.1:${UNRESTRICTED_PORT:-18083}:18083 # unrestricted rpc
command: command:
monerod --data-dir=/data --p2p-bind-ip=0.0.0.0 --p2p-bind-port=18080 --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18081 --zmq-rpc-bind-ip=0.0.0.0 --zmq-rpc-bind-port=18082 --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18083 --non-interactive --confirm-external-bind --public-node --log-level=0 --enable-dns-blocklist --rpc-ssl=disabled monerod --data-dir=/data --p2p-bind-ip=0.0.0.0 --p2p-bind-port=18080 --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18081 --zmq-rpc-bind-ip=0.0.0.0 --zmq-rpc-bind-port=18082 --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18083 --non-interactive --confirm-external-bind --public-node --log-level=0 --enable-dns-blocklist --rpc-ssl=disabled
<<: *log-config

@ -1,11 +1,9 @@
FROM node:8 FROM golang:bullseye
WORKDIR /opt/monerod_exporter # Install exporter from Golang source
RUN go install github.com/cirocosta/monero-exporter/cmd/monero-exporter@master
RUN git clone https://github.com/lalanza808/monerod_exporter.git --branch=master --depth=1 . # Install GeoLite database
RUN wget https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-City.mmdb -O /geoip.mmdb
RUN npm install ENTRYPOINT [ "monero-exporter", "--geoip-filepath", "/geoip.mmdb" ]
EXPOSE 8080
ENTRYPOINT ["node", "index.js"]

@ -1,603 +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": 1,
"links": [],
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 18,
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 4,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 3,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(monerod_connections_incoming)",
"legendFormat": "Incoming",
"refId": "A"
},
{
"expr": "avg(monerod_connections_outgoing)",
"legendFormat": "Outgoing",
"refId": "B"
},
{
"expr": "avg(monerod_rpc_connections_count)",
"legendFormat": "RPC",
"refId": "C"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Connections",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"decimals": null,
"format": "none",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 6,
"x": 18,
"y": 0
},
"hiddenSeries": false,
"id": 8,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": false,
"total": false,
"values": false
},
"lines": false,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*/",
"color": "#FA6400"
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "avg(monerod_block_reward)",
"legendFormat": "Block Reward (XMR)",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Block Reward (XMR)",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"decimals": null,
"format": "none",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": false
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 9
},
"hiddenSeries": false,
"id": 6,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": false,
"total": false,
"values": false
},
"lines": false,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": true,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*/",
"color": "#8F3BB8"
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": true,
"targets": [
{
"expr": "avg(monerod_tx_mempool)",
"legendFormat": "Pool Transactions",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Mempool Transactions",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 9
},
"hiddenSeries": false,
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": false,
"total": false,
"values": false
},
"lines": true,
"linewidth": 3,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*/",
"color": "#C4162A"
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": true,
"targets": [
{
"expr": "avg(monerod_block_difficulty)",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Difficulty",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "none",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 20,
"x": 0,
"y": 18
},
"hiddenSeries": false,
"id": 12,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 3,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "/.*/",
"color": "#1F60C4"
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "monerod_database_size",
"legendFormat": "Chain Size",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Chain Size",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "decbytes",
"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
}
},
{
"cacheTimeout": null,
"colorBackground": false,
"colorPostfix": false,
"colorPrefix": false,
"colorValue": false,
"colors": [
"#299c46",
"rgba(237, 129, 40, 0.89)",
"#d44a3a"
],
"datasource": null,
"format": "none",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": {
"h": 8,
"w": 4,
"x": 20,
"y": 18
},
"id": 10,
"interval": null,
"links": [],
"mappingType": 1,
"mappingTypes": [
{
"name": "value to text",
"value": 1
},
{
"name": "range to text",
"value": 2
}
],
"maxDataPoints": 100,
"nullPointMode": "null",
"nullText": null,
"options": {},
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [
{
"from": "null",
"text": "N/A",
"to": "null"
}
],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": false,
"lineColor": "rgb(31, 120, 193)",
"show": false,
"ymax": null,
"ymin": null
},
"tableColumn": "",
"targets": [
{
"expr": "avg(monerod_tx_chain)",
"instant": true,
"refId": "A"
}
],
"thresholds": "",
"timeFrom": null,
"timeShift": null,
"title": "Total Transactions",
"type": "singlestat",
"valueFontSize": "100%",
"valueMaps": [
{
"op": "=",
"text": "N/A",
"value": "null"
}
],
"valueName": "current"
}
],
"refresh": "30s",
"schemaVersion": 21,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-2d",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
]
},
"timezone": "",
"title": "Daemon Stats",
"uid": "0ktA4KDGk",
"version": 4
}

@ -1,13 +0,0 @@
apiVersion: 1
providers:
- name: 'default'
orgId: 1
folder: ''
type: file
disableDeletion: true
editable: true
updateIntervalSeconds: 60
allowUiUpdates: true
options:
path: /var/lib/grafana/dashboards

File diff suppressed because it is too large Load Diff

@ -0,0 +1,29 @@
[analytics]
reporting_enabled = false
check_for_updates = false
[auth]
disable_login_form = false
; [auth.anonymous]
; enabled = true
; org_role = Admin
[dashboards]
min_refresh_interval = 1m
default_home_dashboard_path = /var/lib/grafana/dashboards/node_stats.json
[paths]
provisioning = /etc/grafana/provisioning
[server]
root_url = https://127.0.0.1
enable_gzip = true
read_timeout = 2m
[snapshots]
external_enabled = false
[security]
admin_user = admin
admin_password = admin

@ -1,9 +0,0 @@
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
access: proxy
isDefault: true
timeInterval: 10s

@ -0,0 +1,12 @@
apiVersion: 1
providers:
- name: 'fs'
orgId: 1
folder: ''
type: 'file'
updateIntervalSeconds: 30
allowUiUpdates: true
options:
path: '/var/lib/grafana/dashboards'
foldersFromFilesStructure: true

@ -0,0 +1,12 @@
apiVersion: 1
datasources:
- name: prometheus
type: prometheus
access: proxy
orgId: 1
url: http://prometheus:9090
isDefault: true
version: 1
editable: false
timeInterval: 30s

@ -0,0 +1,9 @@
global:
scrape_interval: 10s
evaluation_interval: 10s
external_labels:
monitor: node-exporter
scrape_configs:
- job_name: "node-exporter"
static_configs:
- targets: ["exporter:9000"]

@ -1,17 +0,0 @@
global:
scrape_interval: 30s
evaluation_interval: 60s
external_labels:
monitor: monerod-exporter
scrape_configs:
- job_name: "monerod-exporter"
static_configs:
- targets: ["exporter:8080"]
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 981 KiB

Loading…
Cancel
Save