Pacote que integra containers do docker ao sistema de healthcheck da lins-ferrão
Project description
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+
$ pip install lins_healthchecks
Variáveis de ambiente
Variável | Definição | Valor padrão | Requerida |
---|---|---|---|
LINS_HEALTH_CHECK_URL | Define a url base para consumo do pacote | https://healthchecks.grupolinsferrao.com.br | Não |
HEALTH_CHECKS_REQUEST_TIMEOUT | Define o tempo máximo de espera por uma resposta | 10 (segundos) | Não |
TIMEZONE | Define a timezone exibida nos logs | America/Sao_Paulo | Não |
SHOW_HEALTH_CHECKS_LOGS | Ativa ou desativa a exibição de logs do pacote | True | Não |
HEALTH_CHECKS_API_KEY | Chave necessária para autorizar o acesso aos endpoints | Nenhum (None) | Sim |
Como gerar a API KEY
1 - Clique na caixa com o nome do projeto em My projects
2 - No menu superior no cabeçalho clique em SETTINGS
3 - Na caixa de opções API Access
clique em create
4 - Atribua a chave gerada para a variável de ambiente HEALTH_CHECKS_API_KEY
Utilizando o pacote
Existem duas abordagens de uso.
decorator
Nesta abordagem, a função decorada deve possuir o atributo health_check ou **kwargs para receber uma instância da classe HealthCheck, possibilitando a comunicação com o sistema.
from lins_healthchecks import api
DADOS_DO_SERVICO = {
'name': 'meu servico',
'tags': 'foo bar',
'timeout': 3600,
'grace': 60,
}
@api.link(DADOS_DO_SERVICO)
def minha_funcao_decorada(health_check):
health_check.reportar_inicio()
try:
foo()
except Exception as e:
health_check.reportar_falha_por_exception(e)
health_check.reportar_sucesso()
Atribuição
from lins_healthchecks.utils import cria_ou_busca_health_check
DADOS_DO_SERVICO = {
'name': 'meu servico',
'tags': 'foo bar',
'timeout': 3600,
'grace': 60,
}
def minha_funcao():
health_check = healthcheck.cria_ou_busca_health_check(DADOS_DO_SERVICO)
try:
health_check.reportar_inicio()
foo()
except Exception e :
health_check.reportar_falha_por_exception(e)
health_check.reportar_sucesso()
Caso um erro ocorra por outro comportamento que não uma exception
então:
from lins_healthchecks.utils import cria_ou_busca_health_check
DADOS_DO_SERVICO = {
'name': 'meu servico',
'tags': 'foo bar',
'timeout': 3600,
'grace': 60,
}
def minha_funcao():
health_check = healthcheck.cria_ou_busca_health_check(DADOS_DO_SERVICO)
health_check.reportar_inicio()
if not foo()
health_check.reportar_falha('foo retornou False')
else:
health_check.reportar_sucesso()
Para mais informações dos possíveis parâmetros para criação do HC consulte a documentação aqui
Alertas
Tratamento interno para evitar replicações de registros no HC.
Se no json informado para criação do HC no método cria_ou_busca_healthcheck
não existir a chave unique
, o método de criação irá adiciona-lo,
sendo assim:
{
'name': 'meu servico',
'tags': 'foo bar',
'timeout': 3600,
'grace': 60,
}
será tratado como:
{
'name': 'meu servico',
'tags': 'foo bar',
'timeout': 3600,
'grace': 60,
'unique': ['name'],
}
Caso exista o unique
no json mas sem a string name
então:
{
'name': 'meu servico',
'tags': 'foo bar',
'timeout': 3600,
'grace': 60,
'unique': ['tags'],
}
será tratado como:
{
'name': 'meu servico',
'tags': 'foo bar',
'timeout': 3600,
'grace': 60,
'unique': ['tags', 'name'],
}
A adição do {'unique': 'name'}
ao json evita que um novo registro seja criado toda vez que um serviço
for reiniciado.
A quantidade e a ordem das tags importam
Na criação do health check, caso informem as tags
na chave unique
do json a ordem e a quantidade das tags importam, caso sejam reordenadas, adicionadas ou removidas, isso resultará em um novo registro de check se isso for realmente necessário, lembre-se de remover o registro antigo.
ex:
from lins_healthchecks import utils
DADOS_DO_SERVICO = {
'name': 'meu servico',
'tags': 'foo bar',
'timeout': 3600,
'grace': 60,
}
response = utils.cria_ou_busca_healthcheck(DADOS_DO_SERVICO) # criou um registro de HC
DADOS_DO_SERVICO['tags'] = 'bar foo'
response = utils.cria_ou_busca_healthcheck(DADOS_DO_SERVICO) # criou outro registro de HC
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
File details
Details for the file lins_healthchecks-1.0.1.tar.gz
.
File metadata
- Download URL: lins_healthchecks-1.0.1.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a979f81d0aaa35100f0fdf2e06a4d46ccf72aeacdfed1a0687b056a9dac059e8 |
|
MD5 | f88e0b450e9b0c7da0df86f7fe125b73 |
|
BLAKE2b-256 | ccfd91e201d8d7c7f28b2360516ed3f8eb831150fc96024e054c344a1c67f35b |
File details
Details for the file lins_healthchecks-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: lins_healthchecks-1.0.1-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6453fbd8f4b007f79a7759abdbeda8c6a895156212f9aefa112c7ee97878f951 |
|
MD5 | a9305ee2fe57213ee5d3787690b3404d |
|
BLAKE2b-256 | 35435931f5a5251074725e75f26080e2a71d8ecbd958240bed55e71f6ff518ab |