Skip to main content

No project description provided

Project description

patrolify

Do some checks every day, so that you can read the "news" in the morning while drinking coffee.

Install

How to write a check?

Define the "target" you want to check

from patrolify import Target

class IPTarget(Target):
    def __init__(self, ip):
        self.ip = ip

Define how to check that "target"

from patrolify import check

@check(IPTarget)
def check_ip(target):
   return True, "it's ok"

A check function can:

  • generates more targets: as long as the target can be checked by another checker;
  • or return True/False to indicate the check was passed or not, plus a string indicate the extra information

Test Your Checker

In local environment, you can test your checker from __main__. But you need to fire local_test_setup() first.

For example, you can write this in your checker.py:

if __name__ == '__main__':
    from patrolify.utils import local_test_setup
    local_test_setup()

    print(check_ip(IPTarget("127.0.0.1")))

How to deploy?

Reporter was written in pure Python, requirements:

  • Python 3.11+
  • Redis 5.0+

Installation(The name patrolify was taken on Pypi):

pip install patrolify

Then you need to run 4 components after installation:

Component Name What for? Dependencies Command example Can deploy instances?
admin A portal so that you can see the results filesystem, Redis patrolify --redis-url redis://127.0.0.1:6379 admin --port 8084 Yes, as long as the result directory exist.
scheduler Trigger the checker jobs Redis rqscheduler --host localhost --port 6379 --db 0 (it's redis' host and port) Yes, supports auto fail over
worker(for checker) Get jobs from queue(Redis) and run it Redis patrolify --redis-url redis://127.0.0.1:6379 worker --queue=checker Yes, every worker will get jobs from queue and run it, more workers, more work load
worker(for patrolify) Get jobs from queue(Redis) and run it, only works for collecting the results Redis patrolify --redis-url redis://127.0.0.1:6379 worker --queue=patrolify Yes, same above. But it must be deployed onto the same server with admin
  • scheduler
  • worker (2 types, for running checker jobs and patrolify jobs)
  • admin

Architecture:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

patrolify-0.1.13.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

patrolify-0.1.13-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file patrolify-0.1.13.tar.gz.

File metadata

  • Download URL: patrolify-0.1.13.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/6.2.0-1019-azure

File hashes

Hashes for patrolify-0.1.13.tar.gz
Algorithm Hash digest
SHA256 5b4a7aa769efff2d54cea69deadc8f36a13725694556f25bb80790a492394edf
MD5 b7f2817454a6e0fe446823c0f724b523
BLAKE2b-256 0741227f38c1c09d87db63a20525e9461bfe036960e3f6f6ad1c7db14d309fdf

See more details on using hashes here.

File details

Details for the file patrolify-0.1.13-py3-none-any.whl.

File metadata

  • Download URL: patrolify-0.1.13-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/6.2.0-1019-azure

File hashes

Hashes for patrolify-0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 5e51ed4abad2e3180e4960a6d5ff382bd44b8ff0c9a4abe4ca6be790a977c04f
MD5 87fa18235ddbbb3575779a895fe2220f
BLAKE2b-256 3c7a626fe5734673b55d6465af89566cd2c19a11da3f70fc9037fd3339836697

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page