Package: lins-healthchecks
Lins Health ChecksEsse pacote tem como propósito, linkar os serviços da lins-ferrão ao sistema de checagem (healthchecks).Requirements:Python 3.6+$pipinstalllins_healthchecksVariáveis de ambienteVariávelDefiniçãoValor padrãoRequeridaLINS_HEALTH_CHECK_URLDefine a url base para consumo do pacotehttps://healthchecks.grupolinsferrao.com.brNãoHEALTH_CHECKS_REQUEST_TIMEOUTDefine o tempo máximo de espera por uma resposta10 (segundos)NãoTIMEZONEDefine a timezone exibida nos logsAmerica/Sao_PauloNãoSHOW_HEALTH_CHECKS_LOGSAtiva ou desativa a exibição de logs do pacoteTrueNãoHEALTH_CHECKS_API_KEYChave necessária para autorizar o acesso aos endpointsNenhum (None)SimComo gerar a API KEY1 - Clique na caixa com o nome do projeto emMy projects2 - No menu superior no cabeçalho clique emSETTINGS3 - Na caixa de opçõesAPI Accessclique emcreate4 - Atribua a chave gerada para a variável de ambienteHEALTH_CHECKS_API_KEYUtilizando o pacoteExistem duas abordagens de uso.decoratorNesta abordagem, a função decoradadevepossuir o atributohealth_checkou **kwargs para receber uma instância da classe HealthCheck, possibilitando a comunicação com o sistema.fromlins_healthchecksimportapiDADOS_DO_SERVICO={'name':'meu servico','tags':'foo bar','timeout':3600,'grace':60,}@api.link(DADOS_DO_SERVICO)defminha_funcao_decorada(health_check):health_check.reportar_inicio()try:foo()exceptExceptionase:health_check.reportar_falha_por_exception(e)health_check.reportar_sucesso()Atribuiçãofromlins_healthchecks.utilsimportcria_ou_busca_health_checkDADOS_DO_SERVICO={'name':'meu servico','tags':'foo bar','timeout':3600,'grace':60,}defminha_funcao():health_check=healthcheck.cria_ou_busca_health_check(DADOS_DO_SERVICO)try:health_check.reportar_inicio()foo()exceptExceptione:health_check.reportar_falha_por_exception(e)health_check.reportar_sucesso()Caso um erro ocorra por outro comportamento que não umaexceptionentão:fromlins_healthchecks.utilsimportcria_ou_busca_health_checkDADOS_DO_SERVICO={'name':'meu servico','tags':'foo bar','timeout':3600,'grace':60,}defminha_funcao():health_check=healthcheck.cria_ou_busca_health_check(DADOS_DO_SERVICO)health_check.reportar_inicio()ifnotfoo()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çãoaquiAlertasTratamento interno para evitar replicações de registros no HC.Se no json informado para criação do HC no métodocria_ou_busca_healthchecknão existir a chaveunique, 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 ouniqueno json mas sem a stringnameentã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 importamNa criação do health check, caso informem astagsna chaveuniquedo json aordeme aquantidadedas tagsimportam, caso sejam reordenadas, adicionadas ou removidas, isso resultará em umnovoregistrode check se isso for realmente necessário, lembre-se de remover o registro antigo.ex:fromlins_healthchecksimportutilsDADOS_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 HCDADOS_DO_SERVICO['tags']='bar foo'response=utils.cria_ou_busca_healthcheck(DADOS_DO_SERVICO)# criou outro registro de HC