SDK for monitoring microservice dependencies via Prometheus metrics
Project description
dephealth
SDK for monitoring microservice dependencies via Prometheus metrics.
Features
- Automatic health checking for dependencies (PostgreSQL, MySQL, Redis, RabbitMQ, Kafka, HTTP, gRPC, TCP)
- Prometheus metrics export:
app_dependency_health(Gauge 0/1),app_dependency_latency_seconds(Histogram),app_dependency_status(enum),app_dependency_status_detail(info) - Async architecture built on
asyncio - FastAPI integration (middleware, lifespan, endpoints)
- Connection pool support (preferred) and standalone checks
Installation
# Basic installation
pip install dephealth
# With specific checkers
pip install dephealth[postgres,redis]
# All checkers + FastAPI
pip install dephealth[all]
Quick Start
Standalone
from dephealth import DepHealth
dh = DepHealth()
dh.add("postgres", url="postgresql://user:pass@localhost:5432/mydb")
dh.add("redis", url="redis://localhost:6379")
await dh.start()
# Metrics are available via prometheus_client
await dh.stop()
FastAPI
from fastapi import FastAPI
from dephealth_fastapi import DepHealthFastAPI
app = FastAPI()
dh = DepHealthFastAPI(app)
dh.add("postgres", url="postgresql://user:pass@localhost:5432/mydb")
Health Details
details = dh.health_details()
for key, ep in details.items():
print(f"{key}: healthy={ep.healthy} status={ep.status} "
f"latency={ep.latency_millis():.1f}ms")
Configuration
| Parameter | Default | Description |
|---|---|---|
interval |
15 |
Check interval (seconds) |
timeout |
5 |
Check timeout (seconds) |
Supported Dependencies
| Type | Extra | URL Format |
|---|---|---|
| PostgreSQL | postgres |
postgresql://user:pass@host:5432/db |
| MySQL | mysql |
mysql://user:pass@host:3306/db |
| Redis | redis |
redis://host:6379 |
| RabbitMQ | amqp |
amqp://user:pass@host:5672/vhost |
| Kafka | kafka |
kafka://host1:9092,host2:9092 |
| HTTP | — | http://host:8080/health |
| gRPC | grpc |
host:50051 (via FromParams) |
| TCP | — | tcp://host:port |
Authentication
HTTP and gRPC checkers support Bearer token, Basic Auth, and custom headers/metadata:
http_check("secure-api",
url="http://api.svc:8080",
critical=True,
bearer_token="eyJhbG...",
)
grpc_check("grpc-backend",
host="backend.svc",
port=9090,
critical=True,
bearer_token="eyJhbG...",
)
See quickstart guide for all options.
License
Apache License 2.0 — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dephealth-0.4.2.tar.gz
(30.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
dephealth-0.4.2-py3-none-any.whl
(28.8 kB
view details)
File details
Details for the file dephealth-0.4.2.tar.gz.
File metadata
- Download URL: dephealth-0.4.2.tar.gz
- Upload date:
- Size: 30.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d31b9396beb2f00450530b4dd6f7366873bded9a027d5da0f6ecb49f803e7edb
|
|
| MD5 |
14fd7796ecec15f36bf76f1d0606b3c0
|
|
| BLAKE2b-256 |
ca727ae157f62bd35dfa36a098d6599d6cd090d80862c270d893aa7e957c941a
|
File details
Details for the file dephealth-0.4.2-py3-none-any.whl.
File metadata
- Download URL: dephealth-0.4.2-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef1fff6c73351b75a30cf39d397a10ce8fed1a48757194021a1651c42a5b0e9b
|
|
| MD5 |
2a3a0864dd6b96762e3ac3c096f194c0
|
|
| BLAKE2b-256 |
c8c8d959d8d4b57902e3f98e28bbe98470099448e73893905d8e96e8770745d7
|