{"id":20202940,"url":"https://github.com/clwluvw/rbd-prober","last_synced_at":"2025-04-10T11:41:57.717Z","repository":{"id":38186843,"uuid":"343234347","full_name":"clwluvw/rbd-prober","owner":"clwluvw","description":"Monitor availability and performance of Rados Block Device (RBD)","archived":false,"fork":false,"pushed_at":"2023-06-23T20:57:02.000Z","size":123,"stargazers_count":9,"open_issues_count":6,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T10:38:26.779Z","etag":null,"topics":["ceph","prober","rbd"],"latest_commit_sha":null,"homepage":"","language":"Python","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/clwluvw.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}},"created_at":"2021-02-28T23:01:38.000Z","updated_at":"2023-04-28T17:58:57.000Z","dependencies_parsed_at":"2023-02-14T00:55:17.892Z","dependency_job_id":null,"html_url":"https://github.com/clwluvw/rbd-prober","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clwluvw%2Frbd-prober","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clwluvw%2Frbd-prober/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clwluvw%2Frbd-prober/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clwluvw%2Frbd-prober/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clwluvw","download_url":"https://codeload.github.com/clwluvw/rbd-prober/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248211289,"owners_count":21065713,"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":["ceph","prober","rbd"],"created_at":"2024-11-14T04:58:56.047Z","updated_at":"2025-04-10T11:41:57.683Z","avatar_url":"https://github.com/clwluvw.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RBD Prober\n\n[![lint](https://github.com/clwluvw/rbd-prober/actions/workflows/lint.yml/badge.svg?branch=master)](https://github.com/clwluvw/rbd-prober/actions/workflows/lint.yml) [![test](https://github.com/clwluvw/rbd-prober/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/clwluvw/rbd-prober/actions/workflows/test.yml)\n\nRBD Prober is a monitoring software to monitor availability and performance of Rados Block Device (RBD) and exports them via HTTP for Prometheus consumption.\n\n## Getting Started\n\nThe code use the python binding of librados and librbd. When running the code the native RADOS and RBD library and development headers are expected to be installed.\n\nOn debian based systems (apt) these may be:\n\n```\nlibrbd-dev python3-rbd librados-dev python3-rados\n```\n\nOn rpm based systems (dnf, yum, etc) these may be:\n\n```\nlibrbd-devel librados-devel\n```\n\n## Usage\n\nRBD Prober needs a `config.yaml` file that provides the following information to be run.\n\n```yaml\nexporter_host: 0.0.0.0 # listen address\nexporter_port: 8000 # listen port\nlog_level: info # log level (info, debug, error, warn)\nhistogram_buckets: # Histogram Buckets for rbd_prober_response_time metric\n  - 0\n  - 0.2\n  - 0.5\n  - 0.7\n  - 1.0\n  - 2.0\n  - 5.0\nprobs: # list of probers\n  - name: \"write-test\" # name of the test\n    interval: 5 # seconds\n    prober:\n      object_size: 4096 # data size to be written or read from RBD image\n      type: \"write\" # type of the operation write OR read\n    pool_name: \"watchdog\" # Ceph pool name that images is exists in\n    image_name: \"foo\" # Image name that data will be write or read from\n    rbd_user: \"watchdog\" # cephx user that has access to the image\n    rbd_keyring_path: \"/etc/ceph/ceph.keyring\" # path of the rbd_user keyring\n    monitors: # Ceph monitor ips\n      - 10.0.0.1\n      - 10.0.0.2\n      - 10.0.0.3\n```\n\nTo run it:\n\n```bash\npip3 install -r requirements.txt\npython3 app.py\n```\n\n## Metrics\n\n| Metric                     | Notes\n|----------------------------|---------------------------------------\n| rbd_prober_response_time   | Prober response time in seconds\n| rbd_prober_bandwidth_total | Bytes has be written or read from RBD\n| rbd_prober_ops_total       | Total ops count\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclwluvw%2Frbd-prober","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclwluvw%2Frbd-prober","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclwluvw%2Frbd-prober/lists"}