CscTrackerPyCore
CscTrackerPyCore é uma biblioteca Python base desenvolvida para padronizar e acelerar o desenvolvimento de microserviços. Ela oferece integração nativa com Flask, fornecendo recursos essenciais como logging estruturado em JSON, telemetria com Prometheus, documentação automática via Swagger e gerenciamento de tarefas agendadas.
Principais Funcionalidades
- Starter Facilitado: Inicialização rápida de aplicações Flask com suporte a CORS e tratamento de variáveis de ambiente.
- Logging Estruturado: Formatação automática de logs em JSON com inclusão de
requestId,appNameeappVersionpara melhor rastreabilidade. - Observabilidade:
- Integração nativa com Prometheus para coleta de métricas de endpoints.
- Interceptor de Requisições: Registro detalhado de chamadas HTTP (método, path, status, duração) com opção de persistência remota para auditoria.
- Documentação Automática: Geração de especificação Swagger (OpenAPI) simplificada.
- Processamento em Background: Integração com
csctracker-queue-schedulerpara execução de tarefas assíncronas e agendadas. - Repositórios Remotos: Abstração para comunicação entre serviços via HTTP com tratamento de headers e correlação.
Requisitos
- Python 3.9+
- Flask
- Flask-CORS
- Prometheus Flask Exporter
- Flask Swagger Generator
- Python JSON Logger
- Python Dotenv
Instalação
As dependências podem ser instaladas via pip:
pip install csctracker-py-core
Ou via requirements.txt:
pip install -r requirements.txt
Configuração
A biblioteca é configurada principalmente via variáveis de ambiente, suportando arquivos .env localizados na pasta config/ (ex: config/dev.env).
Variáveis de Ambiente Suportadas
| Variável | Descrição | Exemplo |
|---|---|---|
PROFILE |
Perfil de configuração (define o arquivo .env) | dev |
PORT |
Porta de execução do servidor Flask | 5000 |
LOG_LEVEL |
Nível de detalhamento do log | INFO, DEBUG |
LOG_REQUEST_BODY |
Se True, inclui o corpo da requisição nos logs |
True |
LOG_RESPONSE_BODY |
Se True, inclui o corpo da resposta nos logs |
False |
URL_BFF |
URL base para persistência de logs de requisição | http://api-gateway/ |
API_TOKEN |
Token de autorização para chamadas externas | seu_token_aqui |
DEBUG |
Ativa o modo debug do Flask se definido como 1 |
0 |
Uso Didático
1. Inicialização do Starter
A classe Starter centraliza a configuração do Flask.
from csctracker_py_core.starter import Starter
# Inicializa o starter (static_folder define a pasta de arquivos estáticos)
# save_request=True ativa a persistência remota de logs de requisição
starter = Starter(save_request=False)
# Obtém a instância do Flask configurada
app = starter.get_app()
@app.route('/')
def hello():
return {"message": "CscTrackerPyCore is running!"}
if __name__ == '__main__':
starter.start()
2. Logging e Interceptação
Uma vez iniciado o Starter, todos os logs do sistema usarão o formato JSON e as requisições serão interceptadas automaticamente para gerar telemetria.
3. Acesso aos Repositórios
# Acesso ao repositório HTTP para chamadas externas padronizadas
http_repo = starter.get_http_repository()
Estrutura do Projeto
Starter: Orquestrador principal que configura Flask, CORS, Métricas e Swagger.Configs: Gerencia o carregamento de variáveis de ambiente e a configuração do logger JSON.Interceptor: Middleware Flask que captura dados de performance e logs de entrada/saída.HttpRepository: Facilita requisições HTTP externas com injeção de headers de segurança e rastreio.RequestInfo: Utilitário para gerenciar IDs de correlação (Correlation IDs) entre threads.
Licença
Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Metadata
Release files for csctracker-py-core 26.37.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| csctracker_py_core-26.37.2.tar.gz | 14.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| csctracker_py_core-26.37.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.0 kB
Release files / csctracker_py_core-26.37.2.tar.gz
| Download URL | csctracker_py_core-26.37.2.tar.gz |
|---|---|
| Size | 14.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe5578ee83a6cea69fc95924627fab32dd7d253c55aabb9b02c10d16c74a0df2
|
|
BLAKE2b-256 checksum How to use checksums |
5ed6659050108608d2f6ee1c4b9375305c584cc052ceda4b4e308575bc5fdea8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / csctracker_py_core-26.37.2-py3-none-any.whl
| Download URL | csctracker_py_core-26.37.2-py3-none-any.whl |
|---|---|
| Size | 15.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fc9efbe5b6e1463c917cda698195e14ee2780952abb77e39e10168303eb19721
|
|
BLAKE2b-256 checksum How to use checksums |
9b5b51008a2fefc6dd2b9141bccfddcc29fcdcd28f259291649defb9ca967679
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|