Skip to main content

Python Integrated Health Check - A modular and extensible health check system for services and system resources.

Project description

pihace

Python Integrated Health Check (pihace) is a modular and extensible Python library for system and service health monitoring. It helps you build consistent, informative, and developer-friendly health check endpoints or tools across your applications and infrastructure.

PyPI Python Version License GitHub Repo stars


✨ Features

  • ✅ Built-in system checks: CPU, memory, disk usage, Python version, OS
  • 📦 Modular service checks: MySQL, MongoDB, InfluxDB, HTTP, and more
  • 🧩 Custom check functions
  • 📧 Providers buildin: HTTP Server, Prometheus
  • 📧 Pusher buildin: Elastic Search, AMPQ Publisher
  • 🗃️ Storage buildin: MongoDB
  • 🧾 Diverse health output format
  • 🐍 Pythonic API design
  • 🔧 Extensible with easy register() method

📦 Installation

pip install pihace

🚀 Quick Start

from pihace.healthcheck import HealthCheck
from pihace.plugins.mysql import MySQL
from pihace.plugins.mongodb import MongoDB
from pihace.plugins.influxdb import InfluxDB
from pihace.plugins.http import HTTP

if __name__ == "__main__":
    hc = HealthCheck(with_system=True, name="example-api", version="v0.1.0")

    hc.register("MySQL A", MySQL(dsn="mysql://root:root@localhost:3306/testdb"), timeout=5, retries=2)
    hc.register("MongoDB B", MongoDB(dsn="mongodb://localhost:27017"))
    hc.register("InfluxDB C", InfluxDB(url="http://localhost:8086", token="admintoken", org="myorg"))
    hc.register("HTTP D", HTTP(url="https://example.com"))

    print(hc.check(output="str"))
    print(hc.check(output="json", pretty=True))
    print(hc.check())

🧪 Custom Health Check

def function_that_mock_failure():
    return (False, "something broke")

def function_that_mock_success():
    return True

healthcheck.register("Mock Fail", function_that_mock_failure)
healthcheck.register("Mock Success", function_that_mock_success)`

📤 Example Output

{
  "status": "Partially Available",
  "timestamp": "2023-07-01T14:59:55.711Z",
  "failure": {
    "MongoDB B": "authentication failed"
  },
  "rate": "2/3",
  "system": {
    "cpu_usage": "18%",
    "memory_usage": "32%",
    "disk_usage": "47%",
    "memory_available": "512MB",
    "python_version": "3.10",
    "os": "Windows 10"
  },
  "component": {
    "name": "something-api",
    "version": "v1.0.0"
  }
}

🔌 Supported Checkers

  • MySQL

  • MongoDB

  • InfluxDB

  • ElasticSearch

  • HTTP

  • 🧩 Custom check functions

🔌 Supported Providers

  • Web HTTP
  • Prometheus

🔌 Supported Pusher

  • ElasticSearch
  • AMQP Messaging

🔌 Supported Storage

  • MongoDB

More plugins, providers, pusher, and storage are coming soon!


🧰 Development

Clone this repository:

git clone https://github.com/ahmadzeinalwafi/pihace.git
cd pihace
pip install -e ".[dev]"`

Run tests:

python -m unittest

🐳 Docker Compose Example

Start a testing environment:

docker-compose up

📜 License

This project is licensed under the Apache License 2.0.


🤝 Contributing

Contributions are welcome! Please open an issue or PR to add new checkers, fix bugs, or suggest improvements on github.


📫 Author

Ahmad Zein Al Wafi
📧 ahmadzeinalwafi@outlook.com
🔗 LinkedIn
🌍 Website


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

pihace-1.0.0.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pihace-1.0.0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file pihace-1.0.0.tar.gz.

File metadata

  • Download URL: pihace-1.0.0.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for pihace-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c103a309959572770d16e52b98582690294651d196a3b42bcb7cb25852072b44
MD5 106cfa75dfb85483843b86923081f167
BLAKE2b-256 a3d7e25e5819e8d8f74e7d36d2de0e9033450cb05ebd63e1a50b9b89234b8c5d

See more details on using hashes here.

File details

Details for the file pihace-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pihace-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.4

File hashes

Hashes for pihace-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e46a0b8345b10b514c7ab49abc6123e0cf34175875c53e02323be8b5a25d722f
MD5 cb0c45af69f25568827dd20900a52327
BLAKE2b-256 e491f1e485213fcd3198986aea8a897db7224650907f0f81b3402e3888f1ccb1

See more details on using hashes here.

Supported by

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