Skip to main content

A small library and command line app to automate Docker health checks for discord.py bots.

Project description

Discord Health Check

A small library and command line app to automate Docker health checks for discord.py bots.

How it works

The library has 1 function, start. This takes a discord.Client object as well as optional parameters. This function creates a TCP socket server and when a client connects, it tests the discord client for various things that indicate its health. The result of this health check is then sent to the client.

The CLI app is a simple client that connects to the server and determines its exit code from what the server sends.

Installation

pip install discordhealthcheck

This will install both the Python library and the command line app.

The default server port is 40404.

Usage

Python Library

import discord
import discordhealthcheck

class ExampleClient(discord.Client):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        discordhealthcheck.start(self)

or

import discord
import discordhealthcheck

client = discord.Client()
discordhealthcheck.start(client)

@client.event
async def on_ready():
    print("Logged in")

Command Line App (in Dockerfile)

FROM python:3.8-slim-buster

# Copy files, install requirements, setup bot, etc.
# Make sure `pip install discordhealthcheck` happens

HEALTHCHECK CMD discordhealthcheck || exit 1

CMD ["python","./path/to/bot/main.py"]

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

discordhealthcheck-0.0.2.tar.gz (3.5 kB view hashes)

Uploaded Source

Built Distribution

discordhealthcheck-0.0.2-py3-none-any.whl (4.7 kB view hashes)

Uploaded Python 3

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