{"id":15587676,"url":"https://github.com/icyleaf/bandwagon-exporter","last_synced_at":"2025-09-25T22:13:23.818Z","repository":{"id":61212332,"uuid":"539941248","full_name":"icyleaf/bandwagon-exporter","owner":"icyleaf","description":"A Prometheus Exporter for Bandwagon KiwiVM written with Rust","archived":false,"fork":false,"pushed_at":"2025-04-21T22:06:51.000Z","size":583,"stargazers_count":9,"open_issues_count":5,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-24T04:50:04.826Z","etag":null,"topics":["bandwagon","prometheus-exporter","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/icyleaf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-22T11:14:05.000Z","updated_at":"2025-03-12T15:57:40.000Z","dependencies_parsed_at":"2023-02-16T12:00:55.776Z","dependency_job_id":"8b5b3681-ffc9-4f90-ac53-cb34f62bfde7","html_url":"https://github.com/icyleaf/bandwagon-exporter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icyleaf%2Fbandwagon-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icyleaf%2Fbandwagon-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icyleaf%2Fbandwagon-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icyleaf%2Fbandwagon-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/icyleaf","download_url":"https://codeload.github.com/icyleaf/bandwagon-exporter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250566445,"owners_count":21451230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bandwagon","prometheus-exporter","rust"],"created_at":"2024-10-02T22:02:51.024Z","updated_at":"2025-09-25T22:13:18.771Z","avatar_url":"https://github.com/icyleaf.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bandwagon exporter\n\nA Prometheus Exporter for BandwagonHost KiwiVM. Inspired from [bandwagonhost_cloud_exporter](https://github.com/weiqiang333/bandwagonhost_cloud_exporter) by Go language.\n\n## Usage\n\nStart the binary with `-h` to get the complete syntax. The parameters are:\n\n| Parameter | Required | Valid values | Default | Description |\n| -- | -- | -- | -- | -- |\n| `-c`\u003cbr /\u003e`--config-path` | yes | *.json/yaml/toml | | Config path, see [examples](config/).\n| `-m`\u003cbr /\u003e`--metrics-server` | no | HOST:PORT | 0.0.0.0:9103 | Specify the serivce with port. This is the target your Prometheus instance should point to.\n| `--metrics-path` | no | URI Path | /metrics | This is the path of URI, must starts with `/` char.\n\nOnce started, the tool will listen on the specified port (or the default one, 9103, if not specified) and return a Prometheus valid response at the url `/metrics`. So to check if the tool is working properly simply browse the `http://0.0.0.0:9103` (or whichever address with port you choose).\n\n## Deopy\n\n### Docker\n\n```bash\ndocker run --name bandwagon-exporter \\\n  -p 9103:9103 \\\n  -v /etc/bandwagon/config.yml:/etc/bandwagon/config.yml \\\n  ghcr.io/icyleaf/bandwagon-exporter:snapshot \\\n  --config-path=/etc/bandwagon/config.yml\n```\n\n### Docker Compose\n\n```yaml\nversion: \"3\"\nservices:\n  bandwagon-exporter:\n    restart: unless-stopped\n    image: ghcr.io/icyleaf/bandwagon-exporter:snapshot\n    command:\n      - '--config-path=/etc/bandwagon/config.yml'\n    volumes:\n      - ./config/config.yml:/etc/bandwagon/config.yml\n    ports:\n      - \"9103:9103\"\n```\n\n## Prometheus Metrics\n\n```text\n# HELP bandwagon_api_rate_limit_remaining_points_15min API rate limit number of 'points' available to use in the current 15-minutes interval\n# TYPE bandwagon_api_rate_limit_remaining_points_15min gauge\nbandwagon_api_rate_limit_remaining_points_15min{veid=\"1234567\"} 900\n# HELP bandwagon_api_rate_limit_remaining_points_24h API rate limit number of 'points' available to use in the current 24-hour interval\n# TYPE bandwagon_api_rate_limit_remaining_points_24h gauge\nbandwagon_api_rate_limit_remaining_points_24h{veid=\"1234567\"} 19900\n# HELP bandwagon_api_request_total The total of request bandwagon API since run this CLI\n# TYPE bandwagon_api_request_total counter\nbandwagon_api_request_total{veid=\"1234567\"} 22\n# HELP bandwagon_data_counter Data transfer used in the current billing month (bytes).\n# TYPE bandwagon_data_counter gauge\nbandwagon_data_counter{hostname=\"hostname\",ip_address=\"1.2.3.4\"} 112214184728\n# HELP bandwagon_data_next_reset Date and time of transfer counter reset (UNIX timestamp)\n# TYPE bandwagon_data_next_reset gauge\nbandwagon_data_next_reset{hostname=\"hostname\",ip_address=\"1.2.3.4\"} 1666319224\n# HELP bandwagon_node_info Node information\n# TYPE bandwagon_node_info gauge\nbandwagon_node_info{disk=\"21474836480\",hostname=\"hostname\",ip_address=\"1.2.3.4\",location=\"US, California\",os=\"debian-11-x86_64\",plan=\"kvmv3-20g-1g-500g-ca-cn2gia-dc9\",ram=\"1073741824\",suspended=\"0\",swap=\"0\",vm_type=\"kvm\"} 1\n# HELP bandwagon_plan_monthly_data Allowed monthly data transfer (bytes)\n# TYPE bandwagon_plan_monthly_data gauge\nbandwagon_plan_monthly_data{hostname=\"hostname\",ip_address=\"1.2.3.4\"} 536870912000\n```\n\n### Grafana Dashboard\n\n![Bandwagon dashboard preview](grafana-dashboard.png)\n\n## Using Dashboard ID\n\nDashboard ID: `17089`\n\n\u003e [How do I import this dashboard?](https://grafana.com/docs/grafana/latest/dashboards/export-import/#import-dashboard)\n\n## Using JSON data\n\n\u003cdetails\u003e\n  \u003csummary\u003eView JSON Data\u003c/summary\u003e\n\n```json\n{\n  \"annotations\": {\n    \"list\": [\n      {\n        \"builtIn\": 1,\n        \"datasource\": {\n          \"type\": \"grafana\",\n          \"uid\": \"-- Grafana --\"\n        },\n        \"enable\": true,\n        \"hide\": true,\n        \"iconColor\": \"rgba(0, 211, 255, 1)\",\n        \"name\": \"Annotations \u0026 Alerts\",\n        \"target\": {\n          \"limit\": 100,\n          \"matchAny\": false,\n          \"tags\": [],\n          \"type\": \"dashboard\"\n        },\n        \"type\": \"dashboard\"\n      }\n    ]\n  },\n  \"editable\": true,\n  \"fiscalYearStartMonth\": 0,\n  \"graphTooltip\": 0,\n  \"id\": 3,\n  \"links\": [],\n  \"liveNow\": false,\n  \"panels\": [\n    {\n      \"datasource\": {\n        \"type\": \"prometheus\",\n        \"uid\": \"HfdV9N44z\"\n      },\n      \"description\": \"\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"continuous-YlRd\"\n          },\n          \"mappings\": [],\n          \"thresholds\": {\n            \"mode\": \"percentage\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"orange\",\n                \"value\": 70\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 85\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 6,\n        \"w\": 3,\n        \"x\": 0,\n        \"y\": 0\n      },\n      \"id\": 4,\n      \"options\": {\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"showThresholdLabels\": false,\n        \"showThresholdMarkers\": true\n      },\n      \"pluginVersion\": \"9.1.6\",\n      \"targets\": [\n        {\n          \"datasource\": {\n            \"type\": \"prometheus\",\n            \"uid\": \"HfdV9N44z\"\n          },\n          \"editorMode\": \"code\",\n          \"expr\": \"count(bandwagon_node_info)\",\n          \"format\": \"time_series\",\n          \"legendFormat\": \"__auto\",\n          \"range\": true,\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Node Count\",\n      \"type\": \"gauge\"\n    },\n    {\n      \"datasource\": {\n        \"type\": \"prometheus\",\n        \"uid\": \"HfdV9N44z\"\n      },\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"dark-red\",\n                \"value\": null\n              },\n              {\n                \"color\": \"green\",\n                \"value\": 5\n              }\n            ]\n          }\n        },\n        \"overrides\": [\n          {\n            \"matcher\": {\n              \"id\": \"byType\",\n              \"options\": \"number\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"unit\",\n                \"value\": \"bits\"\n              }\n            ]\n          }\n        ]\n      },\n      \"gridPos\": {\n        \"h\": 6,\n        \"w\": 3,\n        \"x\": 3,\n        \"y\": 0\n      },\n      \"id\": 6,\n      \"options\": {\n        \"colorMode\": \"value\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"9.1.6\",\n      \"targets\": [\n        {\n          \"datasource\": {\n            \"type\": \"prometheus\",\n            \"uid\": \"HfdV9N44z\"\n          },\n          \"editorMode\": \"code\",\n          \"expr\": \"sum(bandwagon_plan_monthly_data{hostname=~\\\"$region.*\\\"})\",\n          \"legendFormat\": \"__auto\",\n          \"range\": true,\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Bandwidth Monthly\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": {\n        \"type\": \"prometheus\",\n        \"uid\": \"HfdV9N44z\"\n      },\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [],\n          \"max\": 1,\n          \"min\": 0,\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"orange\",\n                \"value\": 0.8\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 0.9\n              }\n            ]\n          },\n          \"unit\": \"percentunit\"\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 6,\n        \"w\": 6,\n        \"x\": 6,\n        \"y\": 0\n      },\n      \"id\": 14,\n      \"options\": {\n        \"orientation\": \"horizontal\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"showThresholdLabels\": false,\n        \"showThresholdMarkers\": true,\n        \"text\": {}\n      },\n      \"pluginVersion\": \"9.1.6\",\n      \"targets\": [\n        {\n          \"datasource\": {\n            \"type\": \"prometheus\",\n            \"uid\": \"HfdV9N44z\"\n          },\n          \"editorMode\": \"code\",\n          \"expr\": \"bandwagon_data_counter{hostname=~\\\"$region.*\\\"} / bandwagon_plan_monthly_data{hostname=~\\\"$region.*\\\"}\",\n          \"legendFormat\": \"\",\n          \"range\": true,\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Bandwidth Used\",\n      \"type\": \"gauge\"\n    },\n    {\n      \"datasource\": {\n        \"type\": \"prometheus\",\n        \"uid\": \"HfdV9N44z\"\n      },\n      \"description\": \"\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [],\n          \"max\": 1,\n          \"min\": 0,\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"#EAB839\",\n                \"value\": 0.7\n              },\n              {\n                \"color\": \"orange\",\n                \"value\": 0.8\n              },\n              {\n                \"color\": \"dark-red\",\n                \"value\": 0.9\n              }\n            ]\n          },\n          \"unit\": \"percentunit\"\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 6,\n        \"w\": 6,\n        \"x\": 12,\n        \"y\": 0\n      },\n      \"id\": 10,\n      \"options\": {\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"showThresholdLabels\": false,\n        \"showThresholdMarkers\": true,\n        \"text\": {}\n      },\n      \"pluginVersion\": \"9.1.6\",\n      \"targets\": [\n        {\n          \"datasource\": {\n            \"type\": \"prometheus\",\n            \"uid\": \"HfdV9N44z\"\n          },\n          \"editorMode\": \"code\",\n          \"expr\": \"1 - bandwagon_api_rate_limit_remaining_points_15min/max_over_time(bandwagon_api_rate_limit_remaining_points_15min{veid=~\\\"$veid.*\\\"}[60m])\",\n          \"legendFormat\": \"__auto\",\n          \"range\": true,\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"API Request Rate (15m)\",\n      \"type\": \"gauge\"\n    },\n    {\n      \"datasource\": {\n        \"type\": \"prometheus\",\n        \"uid\": \"HfdV9N44z\"\n      },\n      \"description\": \"\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"decimals\": 1,\n          \"mappings\": [],\n          \"max\": 1,\n          \"min\": 0,\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"yellow\",\n                \"value\": 0.8\n              },\n              {\n                \"color\": \"dark-red\",\n                \"value\": 0.9\n              }\n            ]\n          },\n          \"unit\": \"percentunit\"\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 6,\n        \"w\": 6,\n        \"x\": 18,\n        \"y\": 0\n      },\n      \"id\": 11,\n      \"options\": {\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"showThresholdLabels\": false,\n        \"showThresholdMarkers\": true,\n        \"text\": {}\n      },\n      \"pluginVersion\": \"9.1.6\",\n      \"targets\": [\n        {\n          \"datasource\": {\n            \"type\": \"prometheus\",\n            \"uid\": \"HfdV9N44z\"\n          },\n          \"editorMode\": \"code\",\n          \"expr\": \"1 - bandwagon_api_rate_limit_remaining_points_24h/max_over_time(bandwagon_api_rate_limit_remaining_points_24h{veid=~\\\"$veid.*\\\"}[1d])\",\n          \"legendFormat\": \"__auto\",\n          \"range\": true,\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"API Request Rate (24h)\",\n      \"type\": \"gauge\"\n    },\n    {\n      \"datasource\": {\n        \"type\": \"prometheus\",\n        \"uid\": \"HfdV9N44z\"\n      },\n      \"description\": \"\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"continuous-GrYlRd\",\n            \"seriesBy\": \"last\"\n          },\n          \"custom\": {\n            \"axisCenteredZero\": false,\n            \"axisColorMode\": \"text\",\n            \"axisLabel\": \"\",\n            \"axisPlacement\": \"auto\",\n            \"barAlignment\": 0,\n            \"drawStyle\": \"line\",\n            \"fillOpacity\": 20,\n            \"gradientMode\": \"scheme\",\n            \"hideFrom\": {\n              \"legend\": false,\n              \"tooltip\": false,\n              \"viz\": false\n            },\n            \"lineInterpolation\": \"smooth\",\n            \"lineStyle\": {\n              \"dash\": [\n                0,\n                3,\n                3\n              ],\n              \"fill\": \"dot\"\n            },\n            \"lineWidth\": 1,\n            \"pointSize\": 6,\n            \"scaleDistribution\": {\n              \"type\": \"linear\"\n            },\n            \"showPoints\": \"auto\",\n            \"spanNulls\": false,\n            \"stacking\": {\n              \"group\": \"A\",\n              \"mode\": \"none\"\n            },\n            \"thresholdsStyle\": {\n              \"mode\": \"off\"\n            }\n          },\n          \"decimals\": 0,\n          \"mappings\": [],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          },\n          \"unit\": \"bits\"\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 7,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 6\n      },\n      \"id\": 8,\n      \"options\": {\n        \"legend\": {\n          \"calcs\": [],\n          \"displayMode\": \"list\",\n          \"placement\": \"bottom\",\n          \"showLegend\": true\n        },\n        \"tooltip\": {\n          \"mode\": \"single\",\n          \"sort\": \"none\"\n        }\n      },\n      \"targets\": [\n        {\n          \"datasource\": {\n            \"type\": \"prometheus\",\n            \"uid\": \"HfdV9N44z\"\n          },\n          \"editorMode\": \"code\",\n          \"expr\": \" bandwagon_plan_monthly_data{hostname=~\\\"$region.*\\\"}\",\n          \"hide\": false,\n          \"legendFormat\": \"Total\",\n          \"range\": true,\n          \"refId\": \"B\"\n        },\n        {\n          \"datasource\": {\n            \"type\": \"prometheus\",\n            \"uid\": \"HfdV9N44z\"\n          },\n          \"editorMode\": \"code\",\n          \"expr\": \"sum(bandwagon_data_counter{hostname=~\\\"$region.*\\\"})\",\n          \"legendFormat\": \"Used\",\n          \"range\": true,\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Bandwidth Monthly\",\n      \"type\": \"timeseries\"\n    },\n    {\n      \"datasource\": {\n        \"type\": \"prometheus\",\n        \"uid\": \"HfdV9N44z\"\n      },\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"custom\": {\n            \"align\": \"auto\",\n            \"displayMode\": \"auto\",\n            \"inspect\": false\n          },\n          \"mappings\": [],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": [\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"disk\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"unit\",\n                \"value\": \"bytes\"\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"ram\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"unit\",\n                \"value\": \"decbytes\"\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"suspended\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"unit\",\n                \"value\": \"bool_yes_no\"\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"Value #B\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"unit\",\n                \"value\": \"dtdhms\"\n              }\n            ]\n          }\n        ]\n      },\n      \"gridPos\": {\n        \"h\": 4,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 13\n      },\n      \"id\": 13,\n      \"options\": {\n        \"footer\": {\n          \"fields\": \"\",\n          \"reducer\": [\n            \"sum\"\n          ],\n          \"show\": false\n        },\n        \"showHeader\": true,\n        \"sortBy\": [\n          {\n            \"desc\": true,\n            \"displayName\": \"os\"\n          }\n        ]\n      },\n      \"pluginVersion\": \"9.1.6\",\n      \"targets\": [\n        {\n          \"datasource\": {\n            \"type\": \"prometheus\",\n            \"uid\": \"HfdV9N44z\"\n          },\n          \"editorMode\": \"code\",\n          \"exemplar\": false,\n          \"expr\": \"bandwagon_node_info{hostname=~\\\"$region.*\\\"}\",\n          \"format\": \"table\",\n          \"instant\": true,\n          \"legendFormat\": \"info\",\n          \"range\": false,\n          \"refId\": \"A\"\n        },\n        {\n          \"datasource\": {\n            \"type\": \"prometheus\",\n            \"uid\": \"HfdV9N44z\"\n          },\n          \"editorMode\": \"code\",\n          \"exemplar\": false,\n          \"expr\": \"last_over_time(bandwagon_data_next_reset{hostname=~\\\"$region.*\\\"}[60m]) - time()\",\n          \"format\": \"table\",\n          \"hide\": false,\n          \"instant\": true,\n          \"legendFormat\": \"reset\",\n          \"range\": false,\n          \"refId\": \"B\"\n        }\n      ],\n      \"title\": \"Server Node Information\",\n      \"transformations\": [\n        {\n          \"id\": \"seriesToColumns\",\n          \"options\": {\n            \"byField\": \"hostname\"\n          }\n        },\n        {\n          \"id\": \"organize\",\n          \"options\": {\n            \"excludeByName\": {\n              \"Time 1\": true,\n              \"Time 2\": true,\n              \"Value #A\": true,\n              \"__name__\": true,\n              \"__name__ 1\": true,\n              \"__name__ 2\": true,\n              \"instance 1\": true,\n              \"instance 2\": true,\n              \"ip_address 2\": true,\n              \"job 1\": true,\n              \"job 2\": true,\n              \"os\": false,\n              \"plan\": true,\n              \"swap\": true,\n              \"vm_type\": true\n            },\n            \"indexByName\": {\n              \"Time 1\": 2,\n              \"Time 2\": 15,\n              \"Value #A\": 14,\n              \"Value #B\": 5,\n              \"__name__\": 19,\n              \"disk\": 8,\n              \"hostname\": 0,\n              \"instance 1\": 3,\n              \"instance 2\": 16,\n              \"ip_address 1\": 4,\n              \"ip_address 2\": 17,\n              \"job 1\": 6,\n              \"job 2\": 18,\n              \"location\": 1,\n              \"os\": 7,\n              \"plan\": 9,\n              \"ram\": 10,\n              \"suspended\": 11,\n              \"swap\": 12,\n              \"vm_type\": 13\n            },\n            \"renameByName\": {\n              \"Value #B\": \"reset \"\n            }\n          }\n        }\n      ],\n      \"type\": \"table\"\n    }\n  ],\n  \"schemaVersion\": 37,\n  \"style\": \"dark\",\n  \"tags\": [],\n  \"templating\": {\n    \"list\": [\n      {\n        \"allValue\": \".*\",\n        \"current\": {\n          \"selected\": false,\n          \"text\": \"All\",\n          \"value\": \"$__all\"\n        },\n        \"hide\": 0,\n        \"includeAll\": true,\n        \"label\": \"Region\",\n        \"multi\": false,\n        \"name\": \"region\",\n        \"options\": [\n          {\n            \"selected\": true,\n            \"text\": \"All\",\n            \"value\": \"$__all\"\n          },\n          {\n            \"selected\": false,\n            \"text\": \"jp\",\n            \"value\": \"jp\"\n          },\n          {\n            \"selected\": false,\n            \"text\": \"us\",\n            \"value\": \"us\"\n          }\n        ],\n        \"query\": \"jp,us\",\n        \"queryValue\": \"\",\n        \"skipUrlSync\": false,\n        \"type\": \"custom\"\n      },\n      {\n        \"current\": {\n          \"selected\": false,\n          \"text\": \"All\",\n          \"value\": \"$__all\"\n        },\n        \"datasource\": {\n          \"type\": \"prometheus\",\n          \"uid\": \"HfdV9N44z\"\n        },\n        \"definition\": \"label_values(bandwagon_api_rate_limit_remaining_points_15min, veid)\",\n        \"hide\": 0,\n        \"includeAll\": true,\n        \"label\": \"veid\",\n        \"multi\": false,\n        \"name\": \"veid\",\n        \"options\": [],\n        \"query\": {\n          \"query\": \"label_values(bandwagon_api_rate_limit_remaining_points_15min, veid)\",\n          \"refId\": \"StandardVariableQuery\"\n        },\n        \"refresh\": 1,\n        \"regex\": \"\",\n        \"skipUrlSync\": false,\n        \"sort\": 1,\n        \"type\": \"query\"\n      }\n    ]\n  },\n  \"time\": {\n    \"from\": \"now-1h\",\n    \"to\": \"now\"\n  },\n  \"timepicker\": {},\n  \"timezone\": \"\",\n  \"title\": \"Bandwagon Dashboard\",\n  \"uid\": \"3kGTzD44z\",\n  \"version\": 26,\n  \"weekStart\": \"\"\n}\n```\n\n\u003c/details\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficyleaf%2Fbandwagon-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficyleaf%2Fbandwagon-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficyleaf%2Fbandwagon-exporter/lists"}