Skip to main content

A lightweight command-line tool for performing HTTP health checks using Python's standard library. Exits with code 1 on HTTP errors.

Project description

healthyurl

A simple command-line tool to perform health checks on a given URL using Python's standard library. Exits with code 1 on HTTP errors.

Installation

For a minimal installation in Docker:

ADD --chmod=755 https://raw.githubusercontent.com/mgaitan/healthyurl/main/healthyurl.py /usr/bin/healthyurl

Altenatively you can use uv:

uv tool install healthyurl

Or pip

pip install --user healthyurl

Usage

healthyurl <url>

Checks the URL and exits with 1 on any HTTP errors. Or in quiet mode:

healthyurl -q <url>

Why use healthyurl?

When using slim images like Python-based microservices, installing curl adds around 5Mb (4.3% of python:3.12-slim-bookworm size). healthyurl uses only Python's standard library and does not require installing additional packages, making it more efficient for containers that need to stay small and lightweight.

For example, to use healthyurl as part of a health check in a Docker Compose file, you can define it like this:

services:
  myservice:
    image: myservice:latest
    healthcheck:
      test: ["CMD", "healthyurl", "http://localhost:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

This configuration runs healthyurl every 30 seconds, and it checks the health of the service at http://localhost:8080/health. If the health check fails (returns an HTTP error), the service will be marked as unhealthy.

In the same way, To use healthyurl in an ECS task definition, you can configure the health check like this:

{
  "containerDefinitions": [
    {
      "name": "myservice",
      "image": "myservice:latest",
      "healthCheck": {
        "command": [
          "CMD-SHELL",
          "healthyurl -q http://localhost:8080/health"
        ],
        "interval": 30,
        "timeout": 10,
        "retries": 3,
        "startPeriod": 10
      }
    }
  ]
}

Both examples show how healthyurl can replace curl, wget etc for basic health checks, helping reduce image size and build times, especially for lightweight Python-based containerized applications.

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

healthyurl-0.1.1.tar.gz (2.2 kB view details)

Uploaded Source

Built Distribution

healthyurl-0.1.1-py3-none-any.whl (2.8 kB view details)

Uploaded Python 3

File details

Details for the file healthyurl-0.1.1.tar.gz.

File metadata

  • Download URL: healthyurl-0.1.1.tar.gz
  • Upload date:
  • Size: 2.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for healthyurl-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a1a693c1c9bc77aa57cd0c48605de3171590cc79ad27fc8053704c5ae7878608
MD5 265db3b8aa1698a9f3764b0096bf5f35
BLAKE2b-256 a24443a475942c5ff271e8f3b2dd66790e0acd40b99fd3b0b35d637f9eba6d7e

See more details on using hashes here.

File details

Details for the file healthyurl-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: healthyurl-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 2.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for healthyurl-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 008c34e4cc685843a3ca7d42f614d0b2f712d29b0fa1a8be5fca3d0b15d149b7
MD5 f5021574d1a5f3e53ae7ddb1fd866038
BLAKE2b-256 a1df0db0259ca90fdd6e630bb5c99020992b1e81137264fbdcd873306e7cc478

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