From 3961039736b017a09aa90506cbb94942e0ebb2d6 Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Thu, 16 May 2024 12:27:40 +0400 Subject: [PATCH 01/16] fix: contribution instructions and repo links --- CONTRIBUTING.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 69ccce0e5..20118358f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -67,8 +67,9 @@ Contributing to the Avail Documentation is simple. You'll need a GitHub account For those who want to quickly install and start the Avail Documentation locally, you can follow these steps: ```bash -yarn -yarn start +npm i +npm run build +npm start ``` ### Setup Steps @@ -86,13 +87,13 @@ yarn start 2. **Clone Your Fork** ```bash - git clone git@github.com:availproject/availproject.github.io.git + git clone git@github.com:availproject/docs.git ``` 3. **Navigate to the Repository** ```bash - cd availproject.github.io + cd docs ``` 4. **Add Upstream Remote** @@ -100,7 +101,7 @@ yarn start > Refer to [GitHub Docs: Configuring a remote for a fork](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/configuring-a-remote-for-a-fork). ```bash - git remote add upstream https://github.com/availproject/availproject.github.io + git remote add upstream https://github.com/availproject/docs ``` 5. **Sync Your Fork** @@ -108,15 +109,15 @@ yarn start > See [GitHub Docs: Syncing a fork](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/syncing-a-fork). ```bash - git checkout master + git checkout main git fetch upstream - git merge upstream/master + git merge upstream/main ``` 6. **Install Dependencies** ```bash - pnpm install + npm install ``` The site is built using Nextra. @@ -124,7 +125,7 @@ yarn start 7. **Run the Docs Locally** ```bash - pnpm run dev + npm run dev ``` This will start a local dev derver at `http://localhost:3000` on your machine. From 29f57e222f7d1bf534ed3947573b4149bbae36b7 Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Thu, 16 May 2024 18:53:24 +0400 Subject: [PATCH 02/16] update: Goldberg references on accounts page --- pages/docs/end-user-guide/accounts.mdx | 12 ++++++------ public/img/subwallet/subwallet_6.jpeg | Bin 76662 -> 39332 bytes public/img/subwallet/subwallet_7.jpeg | Bin 60984 -> 29130 bytes 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pages/docs/end-user-guide/accounts.mdx b/pages/docs/end-user-guide/accounts.mdx index f337ab36f..ce9f0bef4 100644 --- a/pages/docs/end-user-guide/accounts.mdx +++ b/pages/docs/end-user-guide/accounts.mdx @@ -32,13 +32,13 @@ NEVER EVER share your seed phrase with anyone and keep it in a secure location. ## Creating an Account on Avail DA -In this guide, we will walk you through two different ways of creating an account on the Goldberg testnet of Avail DA. +In this guide, we will walk you through two different ways of creating an account on Avail DA. -1. **Using a compatible wallet**: You can create an account on the Goldberg testnet by using wallets like +1. **Using a compatible wallet**: You can create an account by using wallets like [SubWallet](https://www.subwallet.app/), [Talisman](https://www.talisman.xyz/), [PolkadotJS](https://polkadot.js.org/) and others. This guide will be using Subwallet as an example. -2. **Using the Goldberg Testnet Explorer**: Advanced users can also create an account on the Goldberg testnet straight from the explorer. +2. **Using the Explorer**: Advanced users can also create an account straight from the explorer. @@ -71,12 +71,12 @@ Make sure to store it in a safe place as it is the only way to recover your acco
-6. Search for the Goldberg testnet either by name or by token symbol. Make sure the network is toggled on. +6. Search for Avail testnets either by name or by token symbol. Make sure the network is toggled on.
7. Next go to your extension's homepage and click on the `Get address` button. -Again, search for the Goldberg testnet by name or token symbol, and click on the `copy address` button. +Again, search for Avail testnets by name or token symbol, and click on the `copy address` button.

@@ -135,4 +135,4 @@ Always keep your JSON file in a secure and offline location. Losing this file an Congratulations on successfully creating and managing your Avail account! Remember to always safeguard your account details, JSON file, and seed phrase to ensure the security of your assets. -Ready to explore further? Navigate to the next guide to learn [how to use the Goldberg Testnet Explorer](/docs/end-user-guide/explorer) and get hands-on experience with the network. +Ready to explore further? Navigate to the next guide to learn [how to use the Avail Explorer](/docs/end-user-guide/explorer) and get hands-on experience with the network. diff --git a/public/img/subwallet/subwallet_6.jpeg b/public/img/subwallet/subwallet_6.jpeg index a71fbeba7b775d6b53f95ddd4a7473fe7fca6c30..aabc64d384fbc2a4779b58e34f3d664d02dc88f5 100644 GIT binary patch literal 39332 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 E0Pn)3DgXcg literal 60984 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 L&}YT;^~?VOx&mm^ From b36ccf7c15e22fc911688125f0da3238c84804da Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Thu, 16 May 2024 19:07:12 +0400 Subject: [PATCH 03/16] fix: minor changes to explorer page --- pages/docs/end-user-guide/explorer.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/docs/end-user-guide/explorer.mdx b/pages/docs/end-user-guide/explorer.mdx index a2dca6d2c..167629dd8 100644 --- a/pages/docs/end-user-guide/explorer.mdx +++ b/pages/docs/end-user-guide/explorer.mdx @@ -1,6 +1,6 @@ --- id: explorer -title: How to Use the Goldberg Testnet Explorer +title: How to Use the Avail Explorer sidebar_label: Use the Explorer description: A comprehensive guide on using the Avail Explorer to interact with the Avail network. keywords: @@ -12,11 +12,11 @@ image: https://docs.availproject.org/img/avail/AvailDocs.png --- import { Callout } from 'nextra/components' -# How to Use the Goldberg Testnet Explorer +# How to Use the Avail Explorer ## Introduction -The [Goldberg Testnet Explorer](https://explorer.avail.so/) serves as a powerful interface for interacting with the Avail network. Whether you're a developer, a validator, or an end-user, the explorer provides you with the tools to inspect network activities, manage accounts, and participate in governance. This guide will walk you through its key features. +The [Avail Explorer](https://explorer.avail.so/) serves as a powerful interface for interacting with the Avail network. Whether you're a developer, a validator, or an end-user, the explorer provides you with the tools to inspect network activities, manage accounts, and participate in governance. This guide will walk you through its key features. ### Quick Navigation From 11397dfa386480a77d35fc674899100548d0166d Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Thu, 16 May 2024 19:59:41 +0400 Subject: [PATCH 04/16] fix: node metrics file --- .../monitor-your-validator.mdx | 2 +- static/validator_metrics.json | 4048 +++++++++++++++++ 2 files changed, 4049 insertions(+), 1 deletion(-) create mode 100644 static/validator_metrics.json diff --git a/pages/docs/operate-a-node/become-a-validator/monitor-your-validator.mdx b/pages/docs/operate-a-node/become-a-validator/monitor-your-validator.mdx index eb1e99186..c668c0043 100644 --- a/pages/docs/operate-a-node/become-a-validator/monitor-your-validator.mdx +++ b/pages/docs/operate-a-node/become-a-validator/monitor-your-validator.mdx @@ -179,7 +179,7 @@ Navigate back to your home page, on the top right in the menu select **Import da
-Import the [Avail Node Metrics file](https://github.com/availproject/availproject.github.io/blob/6ff2c1862ede87225a1b6ee296ea5762f56f4042/static/grafana/Avail-Node-Metrics.json) +Import the [Avail Node Metrics file](/static/validator_metrics.json)
diff --git a/static/validator_metrics.json b/static/validator_metrics.json new file mode 100644 index 000000000..c414cd260 --- /dev/null +++ b/static/validator_metrics.json @@ -0,0 +1,4048 @@ +{ + "__inputs": [ + { + "name": "DS_PROMETHEUS", + "label": "Prometheus", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + }, + { + "name": "DS_EXPRESSION", + "label": "Expression", + "description": "", + "type": "datasource", + "pluginId": "__expr__" + } + ], + "__elements": {}, + "__requires": [ + { + "type": "datasource", + "id": "__expr__", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "gauge", + "name": "Gauge", + "version": "" + }, + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "10.2.0" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "stat", + "name": "Stat", + "version": "" + }, + { + "type": "panel", + "id": "timeseries", + "name": "Time series", + "version": "" + } + ], + "annotations": { + "list": [ + { + "$$hashKey": "object:263", + "builtIn": 1, + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "limit": 100, + "name": "Annotations & Alerts", + "showIn": 0, + "type": "dashboard" + } + ] + }, + "description": "Avail network node metrics", + "editable": true, + "fiscalYearStartMonth": 0, + "gnetId": 12425, + "graphTooltip": 0, + "id": null, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "datasource": { + "type": "prometheus", + "uid": "e08f015d-9239-4caf-9524-cfeab13bc823" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 62, + "panels": [], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "e08f015d-9239-4caf-9524-cfeab13bc823" + }, + "refId": "A" + } + ], + "title": "Server Stats", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Busy state of all CPU cores together", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 85 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 95 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 0, + "y": 1 + }, + "id": 34, + "links": [], + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": true, + "expr": "(sum by(instance) (irate(node_cpu_seconds_total{mode!=\"idle\"}[$__rate_interval])) / on(instance) group_left sum by (instance)((irate(node_cpu_seconds_total[$__rate_interval])))) * 100", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "range": true, + "refId": "A", + "step": 240 + } + ], + "title": "CPU Busy", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Busy state of all CPU cores together (5 min average)", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 85 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 95 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 3, + "y": 1 + }, + "id": 36, + "links": [], + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "avg(node_load5) / count(count(node_cpu_seconds_total) by (cpu)) * 100", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A", + "step": 240 + } + ], + "title": "Sys Load (5m avg)", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Busy state of all CPU cores together (15 min average)", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 85 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 95 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 6, + "y": 1 + }, + "id": 38, + "links": [], + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "avg(node_load15)/count(count(node_cpu_seconds_total) by (cpu)) * 100 ", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A", + "step": 240 + } + ], + "title": "Sys Load (15m avg)", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Non available RAM memory", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 90 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 9, + "y": 1 + }, + "hideTimeOverride": false, + "id": 40, + "links": [], + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "((node_memory_MemTotal_bytes - node_memory_MemFree_bytes) / (node_memory_MemTotal_bytes )) * 100", + "format": "time_series", + "hide": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "100 - ((node_memory_MemAvailable_bytes * 100) / node_memory_MemTotal_bytes)", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "B", + "step": 240 + } + ], + "title": "RAM Used", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Used Root FS", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 90 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 12, + "y": 1 + }, + "id": 42, + "links": [], + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "text": {} + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "100 - ((node_filesystem_avail_bytes{mountpoint=\"/\",fstype!=\"rootfs\"} * 100) / node_filesystem_size_bytes{mountpoint=\"/\",fstype!=\"rootfs\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A", + "step": 240 + } + ], + "title": "Root FS Used", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Total number of CPU cores", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 3, + "x": 15, + "y": 1 + }, + "id": 44, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "count(count(node_cpu_seconds_total) by (cpu))", + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A", + "step": 240 + } + ], + "title": "CPU Cores", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "System uptime", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 1, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 6, + "x": 18, + "y": 1 + }, + "hideTimeOverride": true, + "id": 48, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "node_time_seconds-node_boot_time_seconds", + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A", + "step": 240 + } + ], + "title": "Uptime", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Total RootFS", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 3, + "x": 15, + "y": 3 + }, + "id": 46, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "node_filesystem_size_bytes{mountpoint=\"/\",fstype!=\"rootfs\"}", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A", + "step": 240 + } + ], + "title": "RootFS Total", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Total RAM", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 3, + "x": 18, + "y": 3 + }, + "id": 50, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "node_memory_MemTotal_bytes", + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A", + "step": 240 + } + ], + "title": "RAM Total", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Total SWAP", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 3, + "x": 21, + "y": 3 + }, + "id": 52, + "links": [], + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "node_memory_SwapTotal_bytes", + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A", + "step": 240 + } + ], + "title": "SWAP Total", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Basic CPU info", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 40, + "gradientMode": "none", + "hideFrom": { + "graph": false, + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "smooth", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Busy Iowait" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#890F02", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Idle" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#052B51", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Busy Iowait" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#890F02", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Idle" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#7EB26D", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Busy System" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#EAB839", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Busy User" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#0A437C", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Busy Other" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#6D1F62", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 0, + "y": 5 + }, + "id": 54, + "links": [], + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true, + "width": 250 + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum by(instance) (irate(node_cpu_seconds_total{ mode=\"system\"}[$__rate_interval])) / on(instance) group_left sum by (instance)((irate(node_cpu_seconds_total[$__rate_interval])))", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Busy System", + "range": true, + "refId": "A", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum by(instance) (irate(node_cpu_seconds_total{mode=\"user\"}[$__rate_interval])) / on(instance) group_left sum by (instance)((irate(node_cpu_seconds_total[$__rate_interval])))", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Busy User", + "range": true, + "refId": "B", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum by(instance) (irate(node_cpu_seconds_total{ mode=\"iowait\"}[$__rate_interval])) / on(instance) group_left sum by (instance)((irate(node_cpu_seconds_total[$__rate_interval])))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Busy Iowait", + "range": true, + "refId": "C", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum by(instance) (irate(node_cpu_seconds_total{ mode=~\".*irq\"}[$__rate_interval])) / on(instance) group_left sum by (instance)((irate(node_cpu_seconds_total[$__rate_interval])))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Busy IRQs", + "range": true, + "refId": "D", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum by(instance) (irate(node_cpu_seconds_total{mode!='idle',mode!='user',mode!='system',mode!='iowait',mode!='irq',mode!='softirq'}[$__rate_interval])) / on(instance) group_left sum by (instance)((irate(node_cpu_seconds_total[$__rate_interval])))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Busy Other", + "range": true, + "refId": "E", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum by(instance) (irate(node_cpu_seconds_total{ mode=\"idle\"}[$__rate_interval])) / on(instance) group_left sum by (instance)((irate(node_cpu_seconds_total[$__rate_interval])))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "Idle", + "range": true, + "refId": "F", + "step": 240 + } + ], + "title": "CPU ", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Basic memory usage", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 40, + "gradientMode": "none", + "hideFrom": { + "graph": false, + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Apps" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#629E51", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Buffers" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#614D93", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Cache" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#6D1F62", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Cached" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#511749", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Committed" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#508642", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Free" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#0A437C", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Hardware Corrupted - Amount of RAM that the kernel identified as corrupted / not working" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#CFFAFF", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Inactive" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#584477", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "PageTables" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#0A50A1", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Page_Tables" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#0A50A1", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "RAM_Free" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E0F9D7", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "SWAP Used" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Slab" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#806EB7", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Slab_Cache" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E0752D", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Swap" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Swap Used" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Swap_Cache" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#C15C17", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Swap_Free" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#2F575E", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Unused" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#EAB839", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "RAM Total" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E0F9D7", + "mode": "fixed" + } + }, + { + "id": "custom.fillOpacity", + "value": 0 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "RAM Cache + Buffer" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#052B51", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "RAM Free" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#7EB26D", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Avaliable" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#DEDAF7", + "mode": "fixed" + } + }, + { + "id": "custom.fillOpacity", + "value": 0 + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 6, + "y": 5 + }, + "id": 56, + "links": [], + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true, + "width": 350 + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "node_memory_MemTotal_bytes", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "RAM Total", + "refId": "A", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "node_memory_MemTotal_bytes - node_memory_MemFree_bytes - (node_memory_Cached_bytes + node_memory_Buffers_bytes + node_memory_SReclaimable_bytes )", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "RAM Used", + "refId": "B", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "node_memory_Cached_bytes + node_memory_Buffers_bytes + node_memory_SReclaimable_bytes", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "RAM Cache + Buffer", + "refId": "C", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "node_memory_MemFree_bytes", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "RAM Free", + "refId": "D", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "(node_memory_SwapTotal_bytes - node_memory_SwapFree_bytes)", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "SWAP Used", + "refId": "E", + "step": 240 + } + ], + "title": "Memory", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Disk space used of all filesystems mounted", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 40, + "gradientMode": "none", + "hideFrom": { + "graph": false, + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 12, + "y": 5 + }, + "id": 58, + "links": [], + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "100 - ((node_filesystem_avail_bytes{device!~'rootfs'} * 100) / node_filesystem_size_bytes{device!~'rootfs'})", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{mountpoint}}", + "refId": "A", + "step": 240 + } + ], + "title": "Disk Space Used", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "Basic network info per interface", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 40, + "gradientMode": "none", + "hideFrom": { + "graph": false, + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Recv_bytes_eth2" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#7EB26D", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Recv_bytes_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#0A50A1", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Recv_drop_eth2" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#6ED0E0", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Recv_drop_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E0F9D7", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Recv_errs_eth2" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Recv_errs_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#CCA300", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Trans_bytes_eth2" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#7EB26D", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Trans_bytes_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#0A50A1", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Trans_drop_eth2" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#6ED0E0", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Trans_drop_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#E0F9D7", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Trans_errs_eth2" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Trans_errs_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#CCA300", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "recv_bytes_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#0A50A1", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "recv_drop_eth0" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#99440A", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "recv_drop_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#967302", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "recv_errs_eth0" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "recv_errs_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#890F02", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "trans_bytes_eth0" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#7EB26D", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "trans_bytes_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#0A50A1", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "trans_drop_eth0" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#99440A", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "trans_drop_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#967302", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "trans_errs_eth0" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#BF1B00", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "trans_errs_lo" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#890F02", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 6, + "x": 18, + "y": 5 + }, + "id": 60, + "links": [], + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(node_network_receive_bytes_total[$__rate_interval])*8", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "recv {{device}}", + "refId": "A", + "step": 240 + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "irate(node_network_transmit_bytes_total[$__rate_interval])*8", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "trans {{device}} ", + "refId": "B", + "step": 240 + } + ], + "title": "Network Traffic", + "type": "timeseries" + }, + { + "collapsed": false, + "datasource": { + "type": "prometheus", + "uid": "e08f015d-9239-4caf-9524-cfeab13bc823" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 11 + }, + "id": 64, + "panels": [], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "e08f015d-9239-4caf-9524-cfeab13bc823" + }, + "refId": "A" + } + ], + "title": "Avail Node Stats", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "links": [ + { + "title": "", + "url": "" + } + ], + "mappings": [ + { + "options": { + "1492283": { + "text": "Stuck" + } + }, + "type": "value" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgb(222, 101, 171)", + "value": null + } + ] + }, + "unit": "locale" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 6, + "links": [], + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "center", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": true, + "expr": "substrate_block_height", + "interval": "", + "legendFormat": "{{status}}", + "range": true, + "refId": "B" + } + ], + "title": "Height of the chain", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 38, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "{__name__=\"substrate_block_height\", chain=\"avail_goldberg_testnet\", instance=\"localhost:9615\", job=\"avail_node\", status=\"best\"}" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 18 + }, + "id": 67, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "substrate_block_height{status=\"best\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Sync Best", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 40, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 8, + "y": 18 + }, + "id": 68, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "substrate_block_height{status=\"sync_target\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Sync Target", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 40, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 18 + }, + "id": 69, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "substrate_block_height{status=\"finalized\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Sync Finalized", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "dashed" + } + }, + "decimals": 0, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 10 + } + ] + } + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "C" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "C" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "green", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 26 + }, + "id": 65, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "substrate_block_height{status=\"sync_target\"}", + "fullMetaSearch": false, + "hide": true, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "substrate_block_height{status=\"best\"}", + "hide": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "__expr__", + "uid": "${DS_EXPRESSION}" + }, + "expression": "$A - $B", + "hide": false, + "refId": "C", + "type": "math" + } + ], + "title": "Best Sync LAG", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 8, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "dashed" + } + }, + "decimals": 0, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 10 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 26 + }, + "id": 66, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "substrate_block_height{status=\"sync_target\"}", + "fullMetaSearch": false, + "hide": true, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "substrate_block_height{status=\"finalized\"}", + "fullMetaSearch": false, + "hide": true, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "B", + "useBackend": false + }, + { + "datasource": { + "type": "__expr__", + "uid": "${DS_EXPRESSION}" + }, + "expression": "$A - $B", + "hide": false, + "refId": "C", + "type": "math" + } + ], + "title": "Finalized Sync LAG", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 34 + }, + "id": 30, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "rate(substrate_tasks_polling_duration_bucket[5m])", + "interval": "", + "legendFormat": "{{task_name}}", + "refId": "A" + } + ], + "title": "Tasks rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 34 + }, + "id": 14, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "rate(substrate_tasks_polling_started_total[1m]) - rate(substrate_tasks_polling_duration_count[1m])", + "interval": "", + "legendFormat": "{{task_name}}", + "refId": "A" + } + ], + "title": "Running Tasks", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": -2, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 42 + }, + "id": 10, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max", + "min" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "substrate_sub_libp2p_peers_count", + "instant": false, + "interval": "", + "legendFormat": "Peers count", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "substrate_sub_libp2p_peerset_num_discovered", + "interval": "", + "legendFormat": "Discovered peers", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "substrate_sub_libp2p_peerset_num_requested", + "interval": "", + "legendFormat": "Requested peers", + "refId": "B" + } + ], + "title": "Peers connected, discovered, and requested", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 0, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 5.0002 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 42 + }, + "id": 32, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "substrate_sync_peers", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Connected peers", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 50 + }, + "id": 26, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": true, + "expr": "substrate_database_cache_bytes", + "fullMetaSearch": false, + "includeNullMetadata": true, + "interval": "", + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "State Cache DB", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 50 + }, + "id": 18, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "rate(substrate_finality_grandpa_communication_gossip_validator_messages[5m])", + "interval": "", + "legendFormat": "{{message}}", + "refId": "A" + } + ], + "title": "GRANDPA Validator Messages", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 58 + }, + "id": 24, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "substrate_state_cache_bytes", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "State Cache", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 58 + }, + "id": 16, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "substrate_sync_queued_blocks", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Queued Blocks (sync)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 66 + }, + "id": 12, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "substrate_ready_transactions_number", + "interval": "", + "legendFormat": "Number of transactions in the ready queue", + "refId": "A" + } + ], + "title": "Number of transactions in the ready queue", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 0, + "links": [], + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 66 + }, + "id": 28, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": true, + "expr": "substrate_number_leaves", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Number of Leaves", + "type": "timeseries" + } + ], + "refresh": "30s", + "schemaVersion": 38, + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-3h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Avail Validator", + "uid": "availvalidator", + "version": 11, + "weekStart": "" +} \ No newline at end of file From e88aaca2f9573c506b43d036b6bff636df3cc9b8 Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Tue, 21 May 2024 13:34:41 +0400 Subject: [PATCH 05/16] fix: balance transfer page - CoN and Subwallet --- .../docs/end-user-guide/balance-transfers.mdx | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/pages/docs/end-user-guide/balance-transfers.mdx b/pages/docs/end-user-guide/balance-transfers.mdx index 23977ef7f..744dca440 100644 --- a/pages/docs/end-user-guide/balance-transfers.mdx +++ b/pages/docs/end-user-guide/balance-transfers.mdx @@ -2,7 +2,7 @@ id: balance-transfers title: How to Perform Balance Transfers on Avail sidebar_label: Balance Transfers -description: 'Learn how to perform balance transfers on the Goldberg testnet.' +description: 'Learn how to perform balance transfers on the Avail Network.' keywords: - docs - avail @@ -22,21 +22,6 @@ import { Callout } from 'nextra/components' Balance transfers are a method for transferring funds from one account to another. This guide will walk you through the process using [Avail-JS UI](https://explorer.avail.so/). Before you begin, ensure you have [created an account](/docs/end-user-guide/accounts) and have [funds available](/docs/end-user-guide/faucet) for transfer. - -CLASH OF NODES
-In the balance transfer challenge part of Clash of Nodes, participants must follow these guidelines: - -1. **Token Acquisition**: To participate in balance transfers, tokens must be acquired through the designated [faucet](/docs/end-user-guide/faucet). -2. **Faucet Transfer Limit**: Participants can obtain tokens from the [faucet](/docs/end-user-guide/faucet) only once per day. -3. **Regular Engagement**: Participants are encouraged to engage with the challenge daily. The daily acquisition of tokens from the faucet and subsequent transfers cultivate consistent participation. -
- - -USING SUBWALLET
-[SubWallet](https://www.subwallet.app/) currently supports the Goldberg testnet and can be used for balance transfers. - -Please view the third-party content disclaimer [here](https://github.com/availproject/availproject.github.io/blob/main/CONTENT_DISCLAIMER.md). -
## Transferring Funds Using Avail-JS @@ -48,7 +33,7 @@ Please view the third-party content disclaimer [here](https://github. MINIMUM BALANCE
-On Avail, similar to other Substrate-based chains, an account must hold a minimum balance to stay active. This minimum, known as the Existential Deposit (ED), is set at **0.00001 AVAIL on the Goldberg testnet**. The ED helps prevent blockchain bloat from accounts with tiny or zero balances, thereby maintaining network efficiency and low fees. If an account's balance falls below this threshold, it gets deactivated, and the remaining balance is removed. Reactivating the account requires a deposit larger than the ED, but this won't restore the lost funds. +On Avail, similar to other Substrate-based chains, an account must hold a minimum balance to stay active. This minimum, known as the Existential Deposit (ED), is set at **0.000001 AVAIL on the Turing testnet**. The ED helps prevent blockchain bloat from accounts with tiny or zero balances, thereby maintaining network efficiency and low fees. If an account's balance falls below this threshold, it gets deactivated, and the remaining balance is removed. Reactivating the account requires a deposit larger than the ED, but this won't restore the lost funds.
4. When you are ready to execute your transaction, enter your password and click on the "Sign and Submit" button. From b7db02d1907f2a0c29ad80211f2d94efee8d84fd Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Tue, 21 May 2024 13:35:46 +0400 Subject: [PATCH 06/16] fix: make identity network agnostic --- pages/docs/end-user-guide/identity.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/docs/end-user-guide/identity.mdx b/pages/docs/end-user-guide/identity.mdx index 7a2b72cfa..ce76333a7 100644 --- a/pages/docs/end-user-guide/identity.mdx +++ b/pages/docs/end-user-guide/identity.mdx @@ -2,7 +2,7 @@ id: identity title: How to Set an On-Chain Identity sidebar_label: Set Your Identity -description: 'Learn how to set an on-chain identity on the Goldberg testnet.' +description: 'Learn how to set an on-chain identity on the Avail Network.' keywords: - docs - avail @@ -15,13 +15,13 @@ image: https://docs.availproject.org/img/avail/AvailDocs.png ## Introduction -This guide will walk you through the process of setting an on-chain identity on the Goldberg testnet. +This guide will walk you through the process of setting an on-chain identity on the Avail network. ## Reserve Funds for Identity Bonding To store personal information on-chain, users are required to lock a specific amount of funds as a bond. This bond is refundable upon the clearance of the identity. -Retrieve the necessary bond amounts by querying the [Chain state constants](https://explorer.avail.so/#/chainstate) on the [Goldberg Explorer](/docs/end-user-guide/explorer). +Retrieve the necessary bond amounts by querying the [Chain state constants](https://explorer.avail.so/#/chainstate) on the [Avail Explorer](/docs/end-user-guide/explorer). ### Accessing Chain State Constants From 436ad968ba942aa44e717c8003763100c45a06b3 Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Tue, 21 May 2024 13:42:40 +0400 Subject: [PATCH 07/16] remove: hosted deployment on Goldberg --- pages/docs/operate-a-node/deployment-options.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pages/docs/operate-a-node/deployment-options.mdx b/pages/docs/operate-a-node/deployment-options.mdx index c74da5088..7b5eca42f 100644 --- a/pages/docs/operate-a-node/deployment-options.mdx +++ b/pages/docs/operate-a-node/deployment-options.mdx @@ -18,5 +18,4 @@ Different service providers offer hosted deployment options for Avail. These pla | Service | Description | Deployment Type | Documentation | | ---------- |-----------------------------------------------------------------------------------------------------------------------| --------------- |-------------------------------------------------------------------------------------------------------------------------------------------------| -| Spheron | Cloud-based, decentralized, infrastructure services for blockchain applications, offering simplicity and scalability. | Hosted | [Deploy and Operate an Avail Testnet Validator](https://blog.spheron.network/deploy-an-avail-node-in-minutes-using-spheron-compute) | -| OnFinality | Provides infrastructure for blockchain networks. Specialized in setting up validators. | Hosted | [Set up an Avail Goldberg Testnet Validator](https://documentation.onfinality.io/support/set-up-an-avail-goldberg-testnet-validator) | +| Spheron | Cloud-based, decentralized, infrastructure services for blockchain applications, offering simplicity and scalability. | Hosted | [Deploy and Operate an Avail Testnet Validator](https://blog.spheron.network/deploy-an-avail-node-in-minutes-using-spheron-compute) | \ No newline at end of file From a70ca288220bac21bac31b43df7ce8424e2b790e Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Tue, 21 May 2024 17:11:26 +0400 Subject: [PATCH 08/16] fix: binary name + goldberg ref in val docs --- .../become-a-validator/0010-basics.mdx | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/pages/docs/operate-a-node/become-a-validator/0010-basics.mdx b/pages/docs/operate-a-node/become-a-validator/0010-basics.mdx index a82e71979..0cf46d782 100644 --- a/pages/docs/operate-a-node/become-a-validator/0010-basics.mdx +++ b/pages/docs/operate-a-node/become-a-validator/0010-basics.mdx @@ -44,13 +44,13 @@ wget https://github.com/availproject/avail/releases/download//, 2017-2024 2023-11-27 16:26:31 📋 Chain specification: Avail Development Network 2023-11-27 16:26:31 🏷 Node name: cagey-owl-5997 2023-11-27 16:26:31 👤 Role: FULL @@ -124,7 +124,7 @@ The last line, `👤 Role: FULL`, reveals that our node is in Full mode, meaning To change our node's name, use the `--name` flag. Before proceeding, make sure to stop your node with `Ctrl-C`. Now, let's rerun it with a more appealing name: ```bash -./data-avail --chain dev --name KingMagnifico +./avail-node --chain dev --name KingMagnifico ``` Output: @@ -146,7 +146,7 @@ To run our node in validator mode, add the `--validator` flag along with the oth Stop your node again with Ctrl+C and rerun it with the `--validator` flag:: ```bash -./data-avail --chain dev --name KingMagnifico --validator +./avail-node --chain dev --name KingMagnifico --validator ``` Output: @@ -177,7 +177,7 @@ Our node is operating in validator mode, but the network expects validator 'Alic Let's stop our node again with Ctrl+C and rerun it with the `--alice` flag: ```bash -./data-avail --chain dev --name KingMagnifico --validator --alice +./avail-node --chain dev --name KingMagnifico --validator --alice ``` Output: @@ -222,7 +222,7 @@ Although we've used several flags to run a development network, there's an easie Stop the node again with Ctrl+C and rerun it with the `--dev` flag: ```bash -./data-avail --dev --name KingMagnifico +./avail-node --dev --name KingMagnifico ``` Output: @@ -242,14 +242,14 @@ Output: And we get the same result. -### Temporary and Persistante Storage +### Temporary and Persistent Storage When our node runs a network, it needs to store network-related data. By not specifying a location, it stores the data in a default location, which is often not what we want. Using the `--tmp` flag makes it use a different location each time we run our network. This is implied when using `--dev` and is useful when we don't care about preserving our state. To make our storage persistent through runs, we can use the `-d` flag. ```bash -./data-avail --dev --name KingMagnifico -d ./node-data +./avail-node --dev --name KingMagnifico -d ./node-data ``` Output @@ -279,7 +279,7 @@ With all this preliminary knowledge ready to be used, we can now finally take th Before running our node, ensure that our storage folder is removed or empty, and that we don't have any previous nodes already running. With that said, let's finally do what we've been waiting for since the beginning: ```bash -./data-avail --chain turing --name KingMagnifico --validator -d ./node-data +./avail-node --chain turing --name KingMagnifico --validator -d ./node-data ``` Output: @@ -288,10 +288,10 @@ Output: 2023-11-27 17:24:41 Avail Node 2023-11-27 17:24:41 ✌️ version 1.8.3-6d8aff28012 2023-11-27 17:24:41 ❤️ by Anonymous, 2017-2023 -2023-11-27 17:24:41 📋 Chain specification: Avail Goldberg Testnet +2023-11-27 17:24:41 📋 Chain specification: Avail Turing Testnet 2023-11-27 17:24:41 🏷 Node name: KingMagnifico 2023-11-27 17:24:41 👤 Role: AUTHORITY -2023-11-27 17:24:41 💾 Database: RocksDb at ./node-data/chains/avail_goldberg_testnet/db/full +2023-11-27 17:24:41 💾 Database: RocksDb at ./node-data/chains/avail_turing_testnet/db/full ``` Okay, so far so good. Our role is `AUTHORITY`, which means that we are running in validator mode. Our name is clearly the correct one, KingMagnifico, and our database location is correct. Let's see the next few log lines: From e1db0d480c6dc2fa018ae895bb0f7217621de932 Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Tue, 21 May 2024 19:45:48 +0400 Subject: [PATCH 09/16] fix: typos and LC params --- .../run-a-light-client/0010-light-client.mdx | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pages/docs/operate-a-node/run-a-light-client/0010-light-client.mdx b/pages/docs/operate-a-node/run-a-light-client/0010-light-client.mdx index 8c73f7974..e891c29ae 100644 --- a/pages/docs/operate-a-node/run-a-light-client/0010-light-client.mdx +++ b/pages/docs/operate-a-node/run-a-light-client/0010-light-client.mdx @@ -17,7 +17,7 @@ import { Callout } from 'nextra/components' # How to Run the Avail Light Client -The guide outlines how to set up an Avail light client to connect with the [goldberg testnet](/docs/end-user-guide/explorer). You can either: +The guide outlines how to set up an Avail light client to connect with the [Avail Explorer](/docs/end-user-guide/explorer). You can either: 1. Use [Availup](https://github.com/availproject/availup) to run the light client. 2. Download and run a pre-built binary. @@ -80,7 +80,7 @@ curl --version ``` -1. To spin up an Avail light client on the Goldberg testnet, just run this one command in your terminal: +1. To spin up an Avail light client on the Turing testnet, just run this one command in your terminal: ```sh curl -sL1 avail.sh | bash @@ -141,7 +141,7 @@ using `availup`, you can always check out [our Github repo](https://github.com/a For linux machines that run on `x86_64` based Intel or `amd64` based AMD processors, run: ```sh - ./avail-light-linux-amd64 --network goldberg + ./avail-light-linux-amd64 --network turing ``` @@ -149,7 +149,7 @@ using `availup`, you can always check out [our Github repo](https://github.com/a For linux machines that run on `arm64` based processors, run: ```sh - ./avail-light-linux-arm64 --network goldberg + ./avail-light-linux-arm64 --network turing ``` @@ -163,7 +163,7 @@ using `availup`, you can always check out [our Github repo](https://github.com/a For MacOS machines that run on `x86_64` based Intel processors, run: ```sh - ./avail-light-apple-x86_64 --network goldberg + ./avail-light-apple-x86_64 --network turing ``` @@ -171,7 +171,7 @@ using `availup`, you can always check out [our Github repo](https://github.com/a For MacOS machines that run on newer `arm64` based M-series processors, run: ```sh - ./avail-light-apple-arm64 --network goldberg + ./avail-light-apple-arm64 --network turing ``` @@ -239,7 +239,7 @@ using `availup`, you can always check out [our Github repo](https://github.com/a 4. Here you will find the `avail-light` build. Run the build using: ```sh - ./avail-light --network goldberg + ./avail-light --network turing ``` 5. If everything goes well, the client output will look like this: @@ -278,9 +278,9 @@ using `availup`, you can always check out [our Github repo](https://github.com/a ## Running the light client (Windows) [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/about) is a Windows feature that allows you to run a Linux distribution directly on Windows, -without having to set up a seperate virtual machine or a dual-boot system. +without having to set up a separate virtual machine or a dual-boot system. -However, we realise that working with WSL might be inconvinient for some users. We have therefore also included +However, we realise that working with WSL might be inconvenient for some users. We have therefore also included instructions on how to run the Avail light client natively on Windows without having to go through any technical hassles. @@ -348,14 +348,14 @@ wsl --list --online ```sh wsl --install ubuntu ``` -This step will promt you to enter a username and password for your local Ubuntu installation. +This step will prompt you to enter a username and password for your local Ubuntu installation. -5. Once inside the Ubuntu terminal, run the following command to install the required depdendencies: +5. Once inside the Ubuntu terminal, run the following command to install the required dependencies: ```sh sudo apt install build-essential && sudo apt install clang ``` -It is also highly recommended to updgrade all your dependencies to their latest recommended versions whenever +It is also highly recommended to upgrade all your dependencies to their latest recommended versions whenever you set up a new Linux machine. You can do that by running: ```sh From f1af691a4748b2fa9aeef4417c4e98cfdec3a5f6 Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Tue, 21 May 2024 19:47:31 +0400 Subject: [PATCH 10/16] fix: nom pool page header --- pages/docs/stake-on-avail/nomination-pools.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/docs/stake-on-avail/nomination-pools.mdx b/pages/docs/stake-on-avail/nomination-pools.mdx index a2d3cfaf7..b9ab75614 100644 --- a/pages/docs/stake-on-avail/nomination-pools.mdx +++ b/pages/docs/stake-on-avail/nomination-pools.mdx @@ -2,7 +2,7 @@ id: nomination-pools title: How to Create Nomination Pools on Avail sidebar_label: Nomination Pools -description: 'Learn how to create and join nomination pools on the Goldberg testnet.' +description: 'Learn how to create and join nomination pools on the Avail network.' keywords: - docs - avail From ae2ac7f6fd849018262c628d2254fc86f6fa8c3a Mon Sep 17 00:00:00 2001 From: Prabal Banerjee Date: Tue, 21 May 2024 21:29:17 +0400 Subject: [PATCH 11/16] update: make ED clear for all networks --- pages/docs/end-user-guide/balance-transfers.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/docs/end-user-guide/balance-transfers.mdx b/pages/docs/end-user-guide/balance-transfers.mdx index 744dca440..3e20fec2f 100644 --- a/pages/docs/end-user-guide/balance-transfers.mdx +++ b/pages/docs/end-user-guide/balance-transfers.mdx @@ -33,7 +33,7 @@ Balance transfers are a method for transferring funds from one account to anothe MINIMUM BALANCE
-On Avail, similar to other Substrate-based chains, an account must hold a minimum balance to stay active. This minimum, known as the Existential Deposit (ED), is set at **0.000001 AVAIL on the Turing testnet**. The ED helps prevent blockchain bloat from accounts with tiny or zero balances, thereby maintaining network efficiency and low fees. If an account's balance falls below this threshold, it gets deactivated, and the remaining balance is removed. Reactivating the account requires a deposit larger than the ED, but this won't restore the lost funds. +On Avail, similar to other Substrate-based chains, an account must hold a minimum balance to stay active. This minimum, known as the Existential Deposit (ED), is set at **0.000001 AVAIL on the Avail Network**. The ED helps prevent blockchain bloat from accounts with tiny or zero balances, thereby maintaining network efficiency and low fees. If an account's balance falls below this threshold, it gets deactivated, and the remaining balance is removed. Reactivating the account requires a deposit larger than the ED, but this won't restore the lost funds.
4. When you are ready to execute your transaction, enter your password and click on the "Sign and Submit" button. From d5e93218a75a1debb7da26e64b322708072d3730 Mon Sep 17 00:00:00 2001 From: Priyank Gupta Date: Tue, 21 May 2024 23:10:57 +0530 Subject: [PATCH 12/16] resolving conflict with main --- .../operate-a-node/run-a-light-client/0010-light-client.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/docs/operate-a-node/run-a-light-client/0010-light-client.mdx b/pages/docs/operate-a-node/run-a-light-client/0010-light-client.mdx index 11ff070da..d4210603c 100644 --- a/pages/docs/operate-a-node/run-a-light-client/0010-light-client.mdx +++ b/pages/docs/operate-a-node/run-a-light-client/0010-light-client.mdx @@ -17,7 +17,7 @@ import { Callout } from 'nextra/components' # How to Run the Avail Light Client -The guide outlines how to set up an Avail light client to connect with the [Avail Explorer](/docs/end-user-guide/explorer). You can either: +The guide outlines how to set up an Avail light client to connect with the [Avail Network](/docs/end-user-guide/explorer). You can either: 1. Use [Availup](https://github.com/availproject/availup) to run the light client. From a37ad8f9924bb06165f1ea3f4849efb77a4e34ba Mon Sep 17 00:00:00 2001 From: Priyank Gupta Date: Fri, 24 May 2024 11:28:14 +0530 Subject: [PATCH 13/16] improving & simpyfying contribution guidelines --- CONTRIBUTING.md | 67 ++++++++----------------------------------------- 1 file changed, 10 insertions(+), 57 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 20118358f..947bde0f2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,48 +2,10 @@ The Documentation team at Avail are the primary maintainers of the Avail Documentation and will review all issues and pull requests created in this repository. +| ℹ️ Please make sure to create an issue outlining your feedback/content request for the docs before creating a PR. +PRs created without approval will be rejected. We are open to technical articles on a wide variety of topics related to Avail and Web3 in general. If you have something in mind, please feel free to jump in with an issue on the repo.| -- [Contribution Guidelines](#contribution-guidelines) - - [Ways to Contribute to the Avail Documentation](#ways-to-contribute-to-the-avail-documentation) - - [How to Contribute Changes via the Avail Documentation Website](#how-to-contribute-changes-via-the-avail-documentation-website) - - [How to Locally Run the Avail Documentation](#how-to-locally-run-the-avail-documentation) - - [Quick Run](#quick-run) - - [Setup Steps](#setup-steps) - - [License](#license) - - -## Ways to Contribute to the Avail Documentation - -If you spot typos or grammar mistakes, please go ahead and submit a pull request with the fixes. For more significant changes, it's advisable to start with a GitHub issue to discuss it with the maintainers. We generally prefer pull requests over issues for suggesting changes to the Docs. - -| ❗ We are in the process of setting guidelines to ensure all new contributions continue to improve the Docs without compromising its quality. Please stay tuned. | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | - -Before making a contribution, please consult any existing issues or initiate a new discussion to ensure alignment with the documentation's objectives. -Your contributions can significantly enrich the Docs in the following ways: - -1. **General Overviews**: Introductory articles that provide a comprehensive understanding of Avail's data availability layer and modular approach to blockchains. - -2. **Technical Deep Dives**: Detailed explorations into specific components of Avail's architecture, such as its data availability layer, modularity, and consensus algorithms. - -3. **Use-Case Scenarios**: Articles that showcase real-world applications of Avail in solutions like validiums, appchains, and sovereign rollups. - -4. **Tooling**: Documentation or guides on tools that facilitate development, testing, or deployment on Avail. This could include IDE plugins, testing frameworks, or monitoring tools. - -5. **Third-Party Services and Deployments**: Information on external services, deployments, and implementations that integrate with Avail. This could include oracles, data analytics platforms, liquidity providers, as well as infrastructure solutions that provide Avail-based infrastructure. - -6. **Community Contributions**: Lists of active Avail communities, educational resources, or upcoming events that enrich the ecosystem. - -7. **Governance & Economics**: Insights into the governance model and tokenomics that underpin Avail's network. - -8. **Security Practices**: Guidelines and resources for ensuring the security and integrity of applications, smart contracts, and general infrastructure on Avail. - -9. **Troubleshooting Guides**: Solutions to common challenges, FAQs, and other resources that assist both newcomers and experienced users. - -10. **Emerging Technologies**: Articles on upcoming features, advancements, or experimental technologies in the Avail pipeline. For instance, contributions could explore the impact of "Dank Sharding" on Avail's scalability, transaction costs, and its enablement of new decentralized applications. - -> Note: This is a general overview and the actual repository may contain additional files and folders for specific functionalities. ## How to Contribute Changes via the Avail Documentation Website @@ -62,33 +24,22 @@ Contributing to the Avail Documentation is simple. You'll need a GitHub account ## How to Locally Run the Avail Documentation -### Quick Run - -For those who want to quickly install and start the Avail Documentation locally, you can follow these steps: - -```bash -npm i -npm run build -npm start -``` - -### Setup Steps - > **Prerequisites**: > > - [Node.js](https://nodejs.org/en/download/) (version >= 16.14.1) > - [pnpm](https://pnpm.io/installation) > **Note for macOS Users**: Xcode and Command Line Tools are required. -1. **Fork the Repository** +1. **Fork the repository** > See [GitHub Docs: Fork a repo](https://help.github.com/en/articles/fork-a-repo) for guidance. -2. **Clone Your Fork** +2. **Clone your fork** ```bash - git clone git@github.com:availproject/docs.git + git clone https://github.com/Genesis3800/docs.git ``` + This will create a repo named `docs` in your current directory. 3. **Navigate to the Repository** @@ -104,6 +55,8 @@ npm start git remote add upstream https://github.com/availproject/docs ``` + | ℹ️ You can check if the upstream was added correctly by running `git remote -v`.| + 5. **Sync Your Fork** > See [GitHub Docs: Syncing a fork](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/syncing-a-fork). @@ -117,7 +70,7 @@ npm start 6. **Install Dependencies** ```bash - npm install + pnpm install ``` The site is built using Nextra. @@ -125,7 +78,7 @@ npm start 7. **Run the Docs Locally** ```bash - npm run dev + pnpm run dev ``` This will start a local dev derver at `http://localhost:3000` on your machine. From 065c6ac00dd5e30c5ba4a93c6253dc01de00ea39 Mon Sep 17 00:00:00 2001 From: Priyank Gupta Date: Fri, 24 May 2024 11:31:22 +0530 Subject: [PATCH 14/16] fixing markdown format in contribution guidelines --- CONTRIBUTING.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 947bde0f2..ae6975948 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,11 +2,10 @@ The Documentation team at Avail are the primary maintainers of the Avail Documentation and will review all issues and pull requests created in this repository. -| ℹ️ Please make sure to create an issue outlining your feedback/content request for the docs before creating a PR. -PRs created without approval will be rejected. We are open to technical articles on a wide variety of topics related to Avail and Web3 in general. If you have something in mind, please feel free to jump in with an issue on the repo.| +> ℹ️ Please make sure to create an issue outlining your feedback/content request for the docs before creating a PR. +> PRs created without approval will be closed. We are open to technical articles on a wide variety of topics related to Avail and Web3 in general. If you have something in mind, please feel free to jump in with an issue on the repo. - ## How to Contribute Changes via the Avail Documentation Website Contributing to the Avail Documentation is simple. You'll need a GitHub account and a basic understanding of Markdown syntax to get started. @@ -55,7 +54,7 @@ Contributing to the Avail Documentation is simple. You'll need a GitHub account git remote add upstream https://github.com/availproject/docs ``` - | ℹ️ You can check if the upstream was added correctly by running `git remote -v`.| + > ℹ️ You can check if the upstream was added correctly by running `git remote -v` 5. **Sync Your Fork** From 0db7ad6c548d720208093f081f5ff0fccbe3372f Mon Sep 17 00:00:00 2001 From: Priyank Gupta Date: Fri, 24 May 2024 11:34:13 +0530 Subject: [PATCH 15/16] Adding MIT license to docs --- CONTRIBUTING.md | 8 +++++--- LICENSE | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 LICENSE diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ae6975948..7be6c74aa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,6 @@ The Documentation team at Avail are the primary maintainers of the Avail Documen > ℹ️ Please make sure to create an issue outlining your feedback/content request for the docs before creating a PR. > PRs created without approval will be closed. We are open to technical articles on a wide variety of topics related to Avail and Web3 in general. If you have something in mind, please feel free to jump in with an issue on the repo. - ## How to Contribute Changes via the Avail Documentation Website @@ -17,7 +16,9 @@ Contributing to the Avail Documentation is simple. You'll need a GitHub account 5. **Initiate Pull Request**: Scroll to the bottom and click on **Create pull request**. 6. **Title Your PR**: Give your pull request a descriptive title. For example, if you're editing the "Getting Started" page, you could title it _Update /docs/getting-started.md_. 7. **Describe Changes**: In the pull request description, specify the issue your changes resolve. + > See [GitHub Docs on Linking a Pull Request to an Issue](https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) for guidance. + 8. **Additional Information**: Provide a concise summary of the changes you've made. Include screenshots or references if applicable. 9. **Submit**: Click **Propose changes** to finalize your pull request. This will create a new branch in your fork. @@ -38,6 +39,7 @@ Contributing to the Avail Documentation is simple. You'll need a GitHub account ```bash git clone https://github.com/Genesis3800/docs.git ``` + This will create a repo named `docs` in your current directory. 3. **Navigate to the Repository** @@ -80,8 +82,8 @@ Contributing to the Avail Documentation is simple. You'll need a GitHub account pnpm run dev ``` - This will start a local dev derver at `http://localhost:3000` on your machine. + This will start a local dev derver at `http://localhost:3000` on your machine. ## License -The Avail Project Developer Documentation is licensed under the [MIT License](./LICENSE) free software license.### How to Contribute Changes via the Avail Documentation Website \ No newline at end of file +The Avail Project Developer Documentation is licensed under the [MIT License](./LICENSE) free software license.### How to Contribute Changes via the Avail Documentation Website. diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..d5a72935e --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Avail Project Documentation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file From d564c798ed63bc184a7f431cf322050bd3c3a6ae Mon Sep 17 00:00:00 2001 From: Priyank Gupta Date: Fri, 24 May 2024 11:38:47 +0530 Subject: [PATCH 16/16] Adding more instructions to CONTRIBUTING.md --- CONTRIBUTING.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7be6c74aa..b836c0749 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -84,6 +84,30 @@ Contributing to the Avail Documentation is simple. You'll need a GitHub account This will start a local dev derver at `http://localhost:3000` on your machine. +## Push changes and create PR + +Once you are done with all the changes, save all you files and run: + +1. ```bash + git add . + ``` + + to stage all the changes. + +2. ```bash + git commit -m "Your commit message" + ``` + + to commit the changes with ann appropriate commit message. + +3. Once you have committed all the changes, push the changes to your forked repository by running: + + ```bash + git push origin main + ``` + + Now you can use the Github UI to create a PR from your forked repository to the `staging` branch of the upstream repository. + ## License The Avail Project Developer Documentation is licensed under the [MIT License](./LICENSE) free software license.### How to Contribute Changes via the Avail Documentation Website.