# Ping Hosts and URLs and keep stats on successes and failures
Run this as a daemon on your box and check in to see if there are problems.
Intended to be a slightly different approach to blackbox_exporter.
## Installing
```sh
pip install pingertron
```
## Running
```sh
pingertron probes.yaml
```
ICMP usually needs root access to send packets:
```sh
sudo pingertron probes.yaml
```
There is an example [probes.yaml](examples/probes.yaml) you can use as a basis for your own.
## probes.yaml
Specify one or more probes to run using probes.yaml.
This file is re-read on each evaluation cycle, so you can update it without restarting the process.
Example probes.yaml:
```yaml
interval_seconds: 60 # seconds between each batch of probes being sent
probes:
- protocol: http # one of icmp or http
description: my probe # optional description
# probe specific properties
# HTTP Probe
- protocol: http
# description: my HTTP probe # optional description
url: https://example.com/ # URL to probe, http or https
method: GET # HTTP method to use
expected_status_code: 200 # HTTP status code you expect, usually 200
# ICMP Probe
- protocol: icmp
# description: my ICMP probe # optional description
hostname: 10.0.0.1 # Hostname or IP to ping.
```
The canonical definition of what goes into this file can be found in [probes_config.py](pingertron/probes_config.py).
## Developing
### devenv
If you use [devenv](https://devenv.sh):
```sh
direnv allow .
```
### poetry
If you use [poetry](https://python-poetry.org):
```sh
poetry install
poetry run pingertron
```
Raw data
{
"_id": null,
"home_page": "https://github.com/micktwomey/pingertron",
"name": "pingertron",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.11,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Michael Twomey",
"author_email": "mick@twomeylee.name",
"download_url": "https://files.pythonhosted.org/packages/cb/42/5b2e15d4e350ffca82af86b2aaeb449fd756efdc9121acee2323a9e017d7/pingertron-0.3.0.tar.gz",
"platform": null,
"description": "# Ping Hosts and URLs and keep stats on successes and failures\n\nRun this as a daemon on your box and check in to see if there are problems.\n\nIntended to be a slightly different approach to blackbox_exporter.\n\n## Installing\n\n```sh\npip install pingertron\n```\n\n## Running\n\n```sh\npingertron probes.yaml\n```\n\nICMP usually needs root access to send packets:\n\n```sh\nsudo pingertron probes.yaml\n```\n\nThere is an example [probes.yaml](examples/probes.yaml) you can use as a basis for your own.\n\n## probes.yaml\n\nSpecify one or more probes to run using probes.yaml.\n\nThis file is re-read on each evaluation cycle, so you can update it without restarting the process.\n\nExample probes.yaml:\n\n```yaml\ninterval_seconds: 60 # seconds between each batch of probes being sent\n\nprobes:\n- protocol: http # one of icmp or http\n description: my probe # optional description\n # probe specific properties\n# HTTP Probe\n- protocol: http\n # description: my HTTP probe # optional description\n url: https://example.com/ # URL to probe, http or https\n method: GET # HTTP method to use\n expected_status_code: 200 # HTTP status code you expect, usually 200\n# ICMP Probe\n- protocol: icmp\n # description: my ICMP probe # optional description\n hostname: 10.0.0.1 # Hostname or IP to ping.\n```\n\nThe canonical definition of what goes into this file can be found in [probes_config.py](pingertron/probes_config.py).\n\n## Developing\n\n### devenv\n\nIf you use [devenv](https://devenv.sh):\n\n```sh\ndirenv allow .\n```\n\n### poetry\n\nIf you use [poetry](https://python-poetry.org):\n\n```sh\npoetry install\npoetry run pingertron\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Ping Hosts and URLs and keep stats on successes and failures",
"version": "0.3.0",
"project_urls": {
"Homepage": "https://github.com/micktwomey/pingertron",
"Repository": "https://github.com/micktwomey/pingertron"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ab3adedb2edbbeaaec1a43c8b1cf280f2886708a19c70ded213978649f89fd9e",
"md5": "7297aa07dbf6ea646b396d7ef3a4d421",
"sha256": "89cec8095b24a73697524518f1d2eba121c5d2bbec78b778a058aaec60a745c4"
},
"downloads": -1,
"filename": "pingertron-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7297aa07dbf6ea646b396d7ef3a4d421",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11,<4.0",
"size": 6502,
"upload_time": "2023-07-17T15:21:20",
"upload_time_iso_8601": "2023-07-17T15:21:20.024359Z",
"url": "https://files.pythonhosted.org/packages/ab/3a/dedb2edbbeaaec1a43c8b1cf280f2886708a19c70ded213978649f89fd9e/pingertron-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cb425b2e15d4e350ffca82af86b2aaeb449fd756efdc9121acee2323a9e017d7",
"md5": "1a8e461842c42b96319b109c2cedf1ac",
"sha256": "e8a7a801b4b2371a290b27bb31acbfb9e817f971cad91d809cf9d39d9590a511"
},
"downloads": -1,
"filename": "pingertron-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "1a8e461842c42b96319b109c2cedf1ac",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11,<4.0",
"size": 5159,
"upload_time": "2023-07-17T15:21:22",
"upload_time_iso_8601": "2023-07-17T15:21:22.236975Z",
"url": "https://files.pythonhosted.org/packages/cb/42/5b2e15d4e350ffca82af86b2aaeb449fd756efdc9121acee2323a9e017d7/pingertron-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-17 15:21:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "micktwomey",
"github_project": "pingertron",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pingertron"
}