rnmon


Namernmon JSON
Version 0.3.4 PyPI version JSON
download
home_pageNone
SummaryReticulum Monitoring Daemon
upload_time2025-07-17 20:49:25
maintainerNone
docs_urlNone
authorLaura Batalha
requires_python>=3.9
licenseNone
keywords exporter influx monitoring reticulum
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # RNMon - Reticulum Application Monitoring Daemon

RNMon is a simple monitoring daemon designed to monitor the status of multiple RNS applications and push the metrics over http using the influx line protocol.

## Supported Applications

* Reticulum Transport Nodes (Also some metrics for non transport nodes)
* LXMF Propagation Nodes

## Installing

### Package

The package is available in [PyPI](https://pypi.org/project/rnmon/), install it with your python package manager of choice.

I recommend using [`uv`](https://docs.astral.sh/uv/) since it cleanly manages an environment if you run or install it as a tool:

Execute it simply: `uvx rnmon`

Install it globally (but in its own environment): `uv tool install rnmon` and run `rnmon`

### Container

There is a container image available at `ghcr.io/lbataha/rnmon`.
You can use the `latest` tag, or specify the version matching the git tag you want, there are also image builds available in github actions.

The repo contains a `Dockerfile` and an example `docker-compose.yml`, but you can run it simply with:

```shell
docker run --name rnmon -v /path/to/config:/config ghcr.io/lbataha/rnmon:latest
```

## Configuration

Configure the daemon via `scraping.yaml`, the example config has comments explaining the options.

The configuration for reticulum is auto-discovered, but you can specify the location of the configuration directory using the `--rns-config` argument.

## Operational principles

The metric pusher and all targets are executed in their own thread. The main thread starts a new RNS instance, and closes it on exit.

A link is established for each scrape target to reduce network overhead. If a link is broken for any reason, the thread is terminated and restarted - this avoids having to deal with the built-in RNS link retry mechanisms, their associated timeouts and any edge cases caused by using shared RNS intances. This might be changed in the future if RNS fixes the issues particular to this use case.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rnmon",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "exporter, influx, monitoring, reticulum",
    "author": "Laura Batalha",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/ff/76/f2f8ac12b3a18df1f18901007b051ca578f497df05bccd1d79295cffff7b/rnmon-0.3.4.tar.gz",
    "platform": null,
    "description": "# RNMon - Reticulum Application Monitoring Daemon\n\nRNMon is a simple monitoring daemon designed to monitor the status of multiple RNS applications and push the metrics over http using the influx line protocol.\n\n## Supported Applications\n\n* Reticulum Transport Nodes (Also some metrics for non transport nodes)\n* LXMF Propagation Nodes\n\n## Installing\n\n### Package\n\nThe package is available in [PyPI](https://pypi.org/project/rnmon/), install it with your python package manager of choice.\n\nI recommend using [`uv`](https://docs.astral.sh/uv/) since it cleanly manages an environment if you run or install it as a tool:\n\nExecute it simply: `uvx rnmon`\n\nInstall it globally (but in its own environment): `uv tool install rnmon` and run `rnmon`\n\n### Container\n\nThere is a container image available at `ghcr.io/lbataha/rnmon`.\nYou can use the `latest` tag, or specify the version matching the git tag you want, there are also image builds available in github actions.\n\nThe repo contains a `Dockerfile` and an example `docker-compose.yml`, but you can run it simply with:\n\n```shell\ndocker run --name rnmon -v /path/to/config:/config ghcr.io/lbataha/rnmon:latest\n```\n\n## Configuration\n\nConfigure the daemon via `scraping.yaml`, the example config has comments explaining the options.\n\nThe configuration for reticulum is auto-discovered, but you can specify the location of the configuration directory using the `--rns-config` argument.\n\n## Operational principles\n\nThe metric pusher and all targets are executed in their own thread. The main thread starts a new RNS instance, and closes it on exit.\n\nA link is established for each scrape target to reduce network overhead. If a link is broken for any reason, the thread is terminated and restarted - this avoids having to deal with the built-in RNS link retry mechanisms, their associated timeouts and any edge cases caused by using shared RNS intances. This might be changed in the future if RNS fixes the issues particular to this use case.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Reticulum Monitoring Daemon",
    "version": "0.3.4",
    "project_urls": null,
    "split_keywords": [
        "exporter",
        " influx",
        " monitoring",
        " reticulum"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d53405b1e04e57d0b62e937207a80c5b0627fedac911b5ecb5a9b1cc1716bd79",
                "md5": "f0b5d42080aedd24e7dd9454c95c6ab2",
                "sha256": "ff567cfff7afec9e9e50224c7b579ba11f2138a22e71140c43c3e88e9295068a"
            },
            "downloads": -1,
            "filename": "rnmon-0.3.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f0b5d42080aedd24e7dd9454c95c6ab2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 9125,
            "upload_time": "2025-07-17T20:49:24",
            "upload_time_iso_8601": "2025-07-17T20:49:24.260584Z",
            "url": "https://files.pythonhosted.org/packages/d5/34/05b1e04e57d0b62e937207a80c5b0627fedac911b5ecb5a9b1cc1716bd79/rnmon-0.3.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ff76f2f8ac12b3a18df1f18901007b051ca578f497df05bccd1d79295cffff7b",
                "md5": "1369826f06d20db84257789a29084ca2",
                "sha256": "bf72f95530a102e7b3ba9f23040ee600f3026832f13ce441ac8716f50bf443a1"
            },
            "downloads": -1,
            "filename": "rnmon-0.3.4.tar.gz",
            "has_sig": false,
            "md5_digest": "1369826f06d20db84257789a29084ca2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 36997,
            "upload_time": "2025-07-17T20:49:25",
            "upload_time_iso_8601": "2025-07-17T20:49:25.062449Z",
            "url": "https://files.pythonhosted.org/packages/ff/76/f2f8ac12b3a18df1f18901007b051ca578f497df05bccd1d79295cffff7b/rnmon-0.3.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-17 20:49:25",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "rnmon"
}
        
Elapsed time: 2.64126s