{"id":13564707,"url":"https://github.com/solarlabsteam/tendermint-exporter","last_synced_at":"2025-12-27T05:38:19.856Z","repository":{"id":64304260,"uuid":"420626610","full_name":"solarlabsteam/tendermint-exporter","owner":"solarlabsteam","description":"Scrape some fancy stuff from a Tendermint node","archived":false,"fork":false,"pushed_at":"2022-05-15T20:33:45.000Z","size":79,"stargazers_count":10,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-04T17:48:01.283Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/solarlabsteam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-24T08:22:39.000Z","updated_at":"2024-06-08T00:52:13.000Z","dependencies_parsed_at":"2023-01-15T10:15:27.125Z","dependency_job_id":null,"html_url":"https://github.com/solarlabsteam/tendermint-exporter","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solarlabsteam%2Ftendermint-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solarlabsteam%2Ftendermint-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solarlabsteam%2Ftendermint-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solarlabsteam%2Ftendermint-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solarlabsteam","download_url":"https://codeload.github.com/solarlabsteam/tendermint-exporter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247083388,"owners_count":20880831,"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":[],"created_at":"2024-08-01T13:01:34.765Z","updated_at":"2025-12-27T05:38:19.812Z","avatar_url":"https://github.com/solarlabsteam.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# tendermint-exporter\n\n![Latest release](https://img.shields.io/github/v/release/solarlabsteam/tendermint-exporter)\n[![Actions Status](https://github.com/solarlabsteam/tendermint-exporter/workflows/test/badge.svg)](https://github.com/solarlabsteam/tendermint-exporter/actions)\n\ntendermint-exporter is a Prometheus scraper that scrapes some data to monitor your node, specifically you can set up alerting if:\n- your app version does not match the latest on Github (can be useful to be notified on new releases)\n- your voting power is 0 for a validator node\n- your node is catching up\n- your node is not in sync with the reference node (like the foundation one)\n\n## How can I set it up?\n\nFirst of all, you need to download the latest release from [the releases page](https://github.com/solarlabsteam/tendermint-exporter/releases/). After that, you should unzip it and you are ready to go:\n\n```sh\nwget \u003cthe link from the releases page\u003e\ntar xvfz \u003cthe filename you've just downloaded\u003e\n./tendermint-exporter \u003cparams\u003e\n```\n\nThat's not really interesting, what you probably want to do is to have it running in the background. For that, first of all, we have to copy the file to the system apps folder:\n\n```sh\nsudo cp ./tendermint-exporter /usr/bin\n```\n\nThen we need to create a systemd service for our app:\n\n```sh\nsudo nano /etc/systemd/system/tendermint-exporter.service\n```\n\nYou can use this template (change the user to whatever user you want this to be executed from. It's advised to create a separate user for that instead of running it from root):\n\n```\n[Unit]\nDescription=Cosmos Exporter\nAfter=network-online.target\n\n[Service]\nUser=\u003cusername\u003e\nTimeoutStartSec=0\nCPUWeight=95\nIOWeight=95\nExecStart=tendermint-exporter --config \u003cpath to config\u003e\nRestart=always\nRestartSec=2\nLimitNOFILE=800000\nKillSignal=SIGTERM\n\n[Install]\nWantedBy=multi-user.target\n```\n\nIf you're using cosmovisor, consider adding the same set of env variables as in your cosmovisor's systemd file, otherwise fetching app version would crash.\n\nThen we'll add this service to the autostart and run it:\n\n```sh\nsudo systemctl enable tendermint-exporter\nsudo systemctl start tendermint-exporter\nsudo systemctl status tendermint-exporter # validate it's running\n```\n\nIf you need to, you can also see the logs of the process:\n\n```sh\nsudo journalctl -u tendermint-exporter -f --output cat\n```\n\n## How can I scrape data from it?\n\nHere's the example of the Prometheus config you can use for scraping data:\n\n```yaml\nscrape-configs:\n  - job_name: 'tendermint-exporter'\n    scrape_interval: 10s\n    static_configs:\n      - targets: ['\u003cyour IP\u003e:9500']\n```\n\nThen restart Prometheus and you're good to go!\n\n## How does it work?\n\nIt fetches some data from the local node, another node as a reference node (like `https://rpc.cosmos.network:443` for Cosmos) and GitHub.\n\n## How can I configure it?\n\nYou can pass the artuments to the executable file to configure it. Here is the parameters list:\n\n- `--listen-address` - the address with port the node would listen to. For example, you can use it to redefine port or to make the exporter accessible from the outside by listening on `127.0.0.1`. Defaults to `:9500` (so it's accessible from the outside on port 9500)\n- `--local-tendermint-rpc` - local Tendermint RPC URL to query node stats. Defaults to `http://localhost:26657`\n- `--remote-tendermint-rpc` - remote Tendermint RPC URL to query node stats. Optional, if not provided, the exporter won't scrape data from the remote node.\n- `--binary-path` - path to a fullnode binary to query version from. It may fail if it's located in $GOPATH and the path is relative, so better to explicitly provide the absolute path. Optional, if not provided the exporter won't collect data on binary version. This won't work on chains where `\u003cbinary-path\u003e version --long --output json` doesn't work or returns data not in JSON.\n- `--github-org` - GitHub organization name.\n- `--github-repo` - GitHub repository. This param and `--github-org` are used to specify the repository hosting the full node binary sources. If one or both of these are not provided, the exporter won't fetch the remote GitHub version.\n- `--github-token` - GitHub personal access token. You can get one [here](https://github.com/settings/tokens). If this isn't provided, GitHub only allows you to do 60 requests per hour, if you do more requests than that it'll start throwing errors, causing all requests to this exporter to fail.\n- `--log-devel` - logger level. Defaults to `info`. You can set it to `debug` to make it more verbose.\n\nAdditionally, you can pass a `--config` flag with a path to your config file (I use `.toml`, but anything supported by [viper](https://github.com/spf13/viper) should work). Here's the example of such config:\n\n```\nbinary-path = \"/home/validator/go/bin/gaiad\"\ngithub-org = \"cosmos\"\ngithub-repo = \"gaia\"\nremote-tendermint-rpc = \"https://rpc.cosmos.network:443\"\n```\n\n## How can I contribute?\n\nBug reports and feature requests are always welcome! If you want to contribute, feel free to open issues or PRs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarlabsteam%2Ftendermint-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolarlabsteam%2Ftendermint-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarlabsteam%2Ftendermint-exporter/lists"}