Skip to main content

Este pacote fornece uma interface simples e eficiente para enviar mensagens de log para o Graylog, seguindo o padrão utilizado pela Telemidia.

Project description

graylog-telemidia-py

Uma abstração da biblioteca graypy.

Índice

Sobre

Este pacote fornece uma interface simples e eficiente para enviar mensagens de log para o Graylog, seguindo o padrão utilizado pela Telemidia.

Instalação

Para instalar a biblioteca, utilize o pip:

pip install graylog-telemidia

Inicialização

Para inicializar a biblioteca, você deve configurar as informações do Graylog. Existem duas abordagens para realizar essa configuração:

1. Configuração via dicionário

Você pode configurar a biblioteca utilizando um dicionário. Veja um exemplo abaixo:

from graylog_telemidia import GraylogTelemidia

GRAYLOG_CONFIG = {
    "server": "graylog.myserver.com", # Endereço do servidor Graylog (obrigatório)
    "inputPort": 12201, # Porta do input que receberá a mensagem (obrigatório)
    "appName": "my-app", # Nome exibido no campo "facility" do Graylog (obrigatório)
    "appVersion": "1.0.0", # Versão da aplicação (obrigatório)
    "environment": "PROD", # Ambiente da aplicação: "PROD", "DEV" ou "STAGING" (obrigatório)
    "showConsole": False # Define se o log será exibido no console da aplicação (opcional, padrão: True)
}

graylog = GraylogTelemidia(GRAYLOG_CONFIG)

2. Configuração via variáveis de ambiente

Como alternativa, você pode definir a configuração através de variáveis de ambiente. As respectivas variáveis são:

  • GRAYLOG_SERVER
  • GRAYLOG_INPUT_PORT
  • GRAYLOG_APP_NAME
  • GRAYLOG_APP_VERSION
  • GRAYLOG_ENVIRONMENT
  • GRAYLOG_SHOW_CONSOLE

Neste caso, o objeto pode ser inicializado sem a necessidade de passar um parâmetro de configuração:

graylog = GraylogTelemidia()

As duas abordagens de configuração podem ser combinadas, de forma que os valores do parâmetro de configuração enviado terão preferência sobre os valores definidos através de variáveis de ambiente.

Utilização

A biblioteca permite o envio de mensagens de log de forma simples e eficiente. Veja alguns exemplos de uso:

Enviar uma mensagem simples

graylog.error('Ocorreu um erro horrível!')

Informações adicionais

Para enriquecer as mensagens de log, você pode adicionar informações adicionais. Isso é útil para fornecer contexto sobre o erro:

user_info = {
    "isUserAuthenticated": True,
    "isUserAdmin": False,
}
graylog.error('Ocorreu um erro horrível!', user_info)

Traceback

É possível registrar o traceback de erros ou exceções. Para isso, basta passar o objeto de erro:

try:
    raise Exception('Ocorreu um erro horrível!')
except Exception as e:
    graylog.error(e)

Você também pode personalizar a mensagem do erro, mantendo a mensagem original visível no Graylog:

try:
    raise Exception('Ocorreu um erro horrível!')
except Exception as e:
    graylog.error('Ocorreu um erro em foo bar', e)

Combinação de informações

Também é possível enviar múltiplos parâmetros, permitindo um contexto mais detalhado:

try:
    raise Exception('Ocorreu um erro horrível!')
except Exception as e:
    user_info = {
        "isUserAuthenticated": True,
        "isUserAdmin": False,
    }
    graylog.error('Ocorreu um erro em foo bar', e, user_info)

Retorno

Os métodos retornam o payload com todas as informações que foram enviadas ao servidor Graylog.

Métodos suportados

A biblioteca suporta diversos métodos para registrar logs, cada um correspondente a um nível de severidade no Graylog. Os métodos disponíveis são:

Método Nível Graylog
critical 2
error 3
warning 4
info 6
debug 7

Campos do Graylog

Os campos enviados ao Graylog são os seguintes:

Campo Descrição
app_language linguagem de programação utilizada pela aplicação (Python)
app_version versão da aplicação - configurada durante a inicialização
environment ambiente de execução da aplicação - configurado durante a inicialização
error_message mensagem(ns) de erro coletada(s) através dos parâmetros extras (exceptions)
error_stack traceback(s) do(s) erro(s) coletado(s)
extra_info JSON contendo informações adicionais, enviadas como parâmetros extras
facility nome da aplicação - configurado durante a inicialização
level nível de severidade do log
message mensagem principal do log
source hostname do servidor que gerou o log
timestamp carimbo de data e hora do log

Configuração de alertas do Graylog

Para otimizar os alertas dos logs recebidos por meio desta biblioteca, recomendamos a implementação de algumas configurações específicas em relação aos alertas do Graylog. Clique aqui para visualizar as recomendações de configuração.

Licença

Este projeto está licenciado sob a Licença MIT.

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

graylog_telemidia-1.0.14.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

graylog_telemidia-1.0.14-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file graylog_telemidia-1.0.14.tar.gz.

File metadata

  • Download URL: graylog_telemidia-1.0.14.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.9 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for graylog_telemidia-1.0.14.tar.gz
Algorithm Hash digest
SHA256 53a114ca51a39cf7037317fc54fe44c862e7bfa3947121b45a669431cf5ef962
MD5 b12d597146cca4ed9022808b8b1bd431
BLAKE2b-256 c114b6de00cc1d4ba9b70910d0eb576deed3b229dbd9d3736f46f8f6b1878915

See more details on using hashes here.

File details

Details for the file graylog_telemidia-1.0.14-py3-none-any.whl.

File metadata

  • Download URL: graylog_telemidia-1.0.14-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.9 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for graylog_telemidia-1.0.14-py3-none-any.whl
Algorithm Hash digest
SHA256 b172e0d2f6e81b490b33c36f651408b1b92dc9446df8fb0419d025c11cd32586
MD5 9e7400d4d812c6e73957bd693c31de55
BLAKE2b-256 47eb2e5771af7eae7062ec31cc6456ea92f4da7976a33e3109b789de634823f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page