Skip to main content

🐱 LurkKit

Lightweight host monitoring agent — silently watching, loudly alerting.

CI PyPI Python 3.8+ License: MIT

LurkKit is a zero-friction host monitoring agent. Drop it on any host, point it at a config file, and get system metrics, process health, HTTP probing, and log tail alerts forwarded to Slack, PagerDuty, Datadog, or OpsGenie.


Quick Start

pip install lurkkit
lurkkit --init      # generate config
lurkkit             # run

Commands

lurkkit --status                        # one-shot system snapshot
lurkkit --validate --config lurkkit.yaml  # validate config
lurkkit --config /etc/lurkkit/lurkkit.yaml
lurkkit --log-level DEBUG
lurkkit --version

Installation Options

User Install (no root)

pip install --user lurkkit
lurkkit --init

Config auto-detected from (first found wins):

  • $LURKKIT_CONFIG env var
  • ./lurkkit.yaml
  • ~/.config/lurkkit/lurkkit.yaml
  • /etc/lurkkit/lurkkit.yaml

systemd (root)

sudo bash scripts/install.sh
journalctl -u lurkkit -f

Docker

docker run -v $(pwd)/lurkkit.yaml:/etc/lurkkit/lurkkit.yaml ghcr.io/SREportal/lurkkit

Alert Routing

CRITICAL → PagerDuty + OpsGenie  (pages on-call)
WARNING  → Slack + Datadog        (no 3am calls)
INFO     → Slack + Datadog

Configurable via paging_severities and non_paging_severities in your config.


Monitors

Monitor What it watches
System CPU, memory, swap, disk, network, load average
Process Named process count, CPU %, memory — with critical: true flag
HTTP Status code, response time, body regex — per-check severity
Logs Regex pattern matching on any log file, handles rotation

Metrics Reference

Measurement Fields
system.cpu usage_percent, core_count
system.memory usage_percent, used_bytes, available_bytes
system.disk usage_percent, free_bytes (per mount)
system.network bytes_sent, bytes_recv, errin, errout
system.load load_1m, load_5m, load_15m
process.count count
process.stats cpu_percent, mem_mb
http.check status_code, response_ms, up
log.matches count

Extending LurkKit

Custom Collector

from lurkkit import LurkKitAgent
from lurkkit.collectors.base import BaseCollector
from lurkkit.models import Metric, Alert, Severity

class MyCollector(BaseCollector):
    def collect(self):
        return [Metric("myapp.value", {"count": 42}, self._base_tags())], []

agent = LurkKitAgent.from_config("lurkkit.yaml")
agent.register_collector("myapp", MyCollector({"interval": 15}, agent.hostname))
agent.start()

Development

git clone https://github.com/SREportal/lurkkit
cd lurkkit
pip install -e ".[dev]"
pytest tests/ -v

See CONTRIBUTING.md for the full guide.

License

MIT — see LICENSE.

Metadata

Release files for lurkkit 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lurkkit 1.0.0
File Size Uploaded Provenance Actions
lurkkit-1.0.0.tar.gz 19.4 kB Without provenance Details for lurkkit-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for lurkkit 1.0.0
File Interpreter ABI Platform Actions
lurkkit-1.0.0-py3-none-any.whl Python 3 none any Details for lurkkit-1.0.0-py3-none-any.whl

Total release size: 42.5 kB

Release files / lurkkit-1.0.0.tar.gz

Download URL lurkkit-1.0.0.tar.gz
Size 19.4 kB
Tags Source
SHA-256 checksum
How to use checksums
323b5f47b36ced252f24c801a8fbe13e1c58f1b3a0727ae2e9152f5512f6270a
BLAKE2b-256 checksum
How to use checksums
c4f180ab839f6d707060d5859b28e4be7da0bdff6f4df976dae50db11bbc366e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Release files / lurkkit-1.0.0-py3-none-any.whl

Download URL lurkkit-1.0.0-py3-none-any.whl
Size 23.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2fe24d90d68347f900d343ba22eb3bf7e2f59aff5d98736307775448e204803d
BLAKE2b-256 checksum
How to use checksums
59401b85cc5fe7b91966e15e2a4421127737457e819126e839ba1ce87780dbda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Security for lurkkit 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page