Pacote que integra containers do docker ao sistema de healthcheck da lins-ferrão
Project description
HealthCheck
Healthchecks é um serviço usado para monitorar tarefas agendadas, como cronjobs.
O serviço a ser monitorado envia uma solicitação HTTP ou e-mail (pings) para o Healthchecks sempre que for executada. Normalmente, você envia um "ping" no início da execução, outro quando ela termina com sucesso, e se for o caso, um em caso de falha.
Se o Healthchecks não receber o ping dentro do tempo esperado, ele entende que algo deu errado e envia um alerta.
É uma forma prática de saber se os scripts e automações estão rodando como deveriam — e de ser avisado quando não estiverem.
Lins Health Checks
Esse pacote tem como propósito, linkar os serviços da lins-ferrão ao sistema de checagem (healthchecks).
Requirements:
- Python 3.6+
Implementação
1 - Adicione o pacote lins-healthchecks aos requirements do projeto
lins-healthchecks==1.0.1
2 - Adicione as variáveis de ambiente
Variáveis do Health Check:
| Variáveis | Descrição |
|---|---|
| HEALTH_CHECKS_DESC | Define a descrição do serviço a ser acompanhado |
| HEALTH_CHECKS_GRACE | Define período em segundos entre o ping inicial e o envio do alerta |
| HEALTH_CHECKS_NAME | Nome do serviço a ser acompanhado |
| HEALTH_CHECKS_RETRYS | Numero de tentativas de enviar os pings |
| HEALTH_CHECKS_SCHEDULE | Define o cronograma de execução do serviço |
| HEALTH_CHECKS_TAG | Tags que vão servir para ajudar a encontrar os logs no healthcheck |
| HEALTH_CHECKS_TZ | Define a timezone exibida nos logs |
| HEALTH_CHECKS_API_KEY | Chave necessária para autorizar o acesso aos endpoints |
| LINS_HEALTH_CHECK_BASE_URL | Define a url base para consumo do pacote |
| SHOW_HEALTH_CHECKS_LOGS | Ativa ou desativa a exibição de logs do pacote |
3 - Adicione as variáveis de ambiente ao arquivo de settings conforme abaixo
ENV = os.environ
HEALTH_CHECKS_DESC = ENV.get('HEALTH_CHECKS_DESC')
HEALTH_CHECKS_GRACE = int(ENV.get('HEALTH_CHECKS_GRACE'))
HEALTH_CHECK_NAME = ENV.get('HEALTH_CHECK_NAME')
HEALTH_CHECKS_RETRYS = ENV.get('HEALTH_CHECKS_RETRYS')
HEALTH_CHECKS_SCHEDULE = ENV.get('HEALTH_CHECKS_SCHEDULE')
HEALTH_CHECK_TAG = ENV.get('HEALTH_CHECK_TAG')
HEALTH_CHECKS_TZ = ENV.get('HEALTH_CHECKS_TZ')
HEALTH_CHECKS_API_KEY = ENV.get('HEALTH_CHECKS_API_KEY')
LINS_HEALTH_CHECK_BASE_URL = ENV.get('LINS_HEALTH_CHECK_BASE_URL')
SHOW_HEALTH_CHECKS_LOGS = ENV.get('SHOW_HEALTH_CHECKS_LOGS')
HEALTH_CHECK_DADOS = {
'desc': HEALTH_CHECKS_DESC,
'grace': HEALTH_CHECKS_GRACE,
'name': HEALTH_CHECK_NAME,
'schedule': HEALTH_CHECKS_SCHEDULE,
'tags': HEALTH_CHECK_TAG,
'tz': HEALTH_CHECKS_TZ,
'unique': ['name',]
}
4 - Crie o arquivo health_check.py na raiz do projeto com o seguinte codigo:
from datetime import datetime
from {{arquivo de settings}} import HEALTH_CHECK_DADOS
from lins_healthchecks.utils import cria_ou_busca_health_check
class FalhaHealthCheck():
def reportar_inicio(self):
print('### inicio - {} ###'.format(datetime.now()))
def reportar_falha(self, erro):
print('### Falha - {} >>> {} ###'.format(datetime.now(), erro))
def reportar_sucesso(self):
print('### sucesso - {} ###'.format(datetime.now()))
def reportar_falha_por_exception(self, erro: Exception):
print('### Exception - {} >>> {} ###'.format(datetime.now(), str(erro)))
def configura_health_check():
try:
health_check = cria_ou_busca_health_check(HEALTH_CHECK_DADOS)
except Exception:
health_check = FalhaHealthCheck()
return health_check
5 - Ajuste na implementação do serviço:
from health_check import configura_health_check
[...]
if __name__ == "__main__":
health_check = configura_health_check()
health_check.reportar_inicio()
try:
run() #Chame aqui a função que executa o serviço (por exemplo: run(), execute(), handler(), etc...)
except Exception as erro:
health_check.reportar_falha(str(erro))
else:
health_check.reportar_sucesso()
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
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
File details
Details for the file lins_healthchecks-1.0.2.tar.gz.
File metadata
- Download URL: lins_healthchecks-1.0.2.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb1f7d6f97b5e5db80f4ccdf4bec2547a7f09cede52afb00a1587385c67b0ed2
|
|
| MD5 |
d6705b0e3a6a741b6fa044d169f772a3
|
|
| BLAKE2b-256 |
bbba40a6e9fea3cfcce6f12b2bd2f76ac277180067290c0ca4b89bc612f5d1dc
|
File details
Details for the file lins_healthchecks-1.0.2-py3-none-any.whl.
File metadata
- Download URL: lins_healthchecks-1.0.2-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e2efd71c7935ea7952be6b9ac4fd1a75128d53cbb5fb3c44d7e6ec47dcf0e6f
|
|
| MD5 |
e7e8d1cce549a54df68986aae8ee843a
|
|
| BLAKE2b-256 |
07db4ef28fa7655c53f210579272fafbb48b80aa53689b7677de2cd94f515383
|