SDK de monitoramento de requests para APIs Flask da APIBrasil
Project description
apibrasil-requests-monitor
SDK Python para monitorar automaticamente requests em APIs Flask da APIBrasil, com envio assíncrono de eventos para um collector externo.
1) O que e
- Captura metadata de cada request Flask (metodo, rota, status, duracao, tipo e homolog).
- Envia evento em background para nao impactar a latencia da API.
- Nao envia body completo por padrao e evita vazamento de dados sensiveis.
2) Instalacao
Instalacao basica:
pip install apibrasil-requests-monitor
Com suporte Flask:
pip install "apibrasil-requests-monitor[flask]"
3) Uso minimo
from flask import Flask
from apibrasil_requests_monitor import monitor
app = Flask(__name__)
monitor(app)
4) Configuracao por .env / ambiente
Variaveis suportadas:
APIBRASIL_MONITOR_ENABLED(default:true)APIBRASIL_MONITOR_KEYAPIBRASIL_MONITOR_PROJECT_KEYAPIBRASIL_MONITOR_ENDPOINTAPIBRASIL_MONITOR_FIELDS(default:tipo,homolog)APIBRASIL_MONITOR_MASK_FIELDSAPIBRASIL_MONITOR_SERVICE_NAMEAPIBRASIL_MONITOR_ENVIRONMENT(default:production)APIBRASIL_MONITOR_TIMEOUT_SECONDS(default:2)APIBRASIL_MONITOR_QUEUE_SIZE(default:1000)APIBRASIL_MONITOR_IGNORED_PATHS(default:/health,/metrics)APIBRASIL_MONITOR_SAMPLE_RATE(default:1.0)
Exemplo:
APIBRASIL_MONITOR_PROJECT_KEY=api-cpf
APIBRASIL_MONITOR_KEY=sua-chave
APIBRASIL_MONITOR_ENDPOINT=https://manager.exemplo.com/api/monitor/events
APIBRASIL_MONITOR_FIELDS=tipo,homolog
Se APIBRASIL_MONITOR_KEY ou APIBRASIL_MONITOR_ENDPOINT nao existirem, o SDK fica desativado automaticamente (fail-safe).
5) Exemplo Flask
Veja examples/flask_basic.py.
6) Campos capturados
Por padrao, somente:
tipohomolog
Com configuracao explicita:
from apibrasil_requests_monitor import monitor
monitor(
app,
project_key="api-cpf",
endpoint="https://manager.exemplo.com/api/monitor/events",
capture_fields=["tipo", "homolog"],
mask_fields=["cpf", "cnpj", "placa", "token", "api_key", "api_secret"],
)
7) Seguranca e privacidade
- Nao envia body completo por padrao.
- Extrai apenas campos permitidos (
capture_fields). - Campos sensiveis em
mask_fieldssao mascarados quando capturados. - Nao faz
print. - Nao loga monitor key/token.
8) Como desativar
APIBRASIL_MONITOR_ENABLED=false
ou via codigo:
monitor(app, enabled=False)
9) Como testar localmente
python -m pip install -e ".[dev,flask]"
pytest
10) Publicacao no PyPI/TestPyPI
Build e validacao:
python -m build
twine check dist/*
TestPyPI:
twine upload --repository testpypi dist/*
PyPI:
twine upload dist/*
Instalacao via Git (enquanto nao estiver no PyPI):
pip install "apibrasil-requests-monitor @ git+https://github.com/APIBrasil/apibrasil-requests-monitor.git@v0.1.0"
11) Troubleshooting
- Nao envia eventos: valide
APIBRASIL_MONITOR_KEYeAPIBRASIL_MONITOR_ENDPOINT. - Queue cheia: aumente
APIBRASIL_MONITOR_QUEUE_SIZEou ajusteAPIBRASIL_MONITOR_SAMPLE_RATE. - Campos ausentes: revise
APIBRASIL_MONITOR_FIELDSe payload JSON. - Dependencia Flask faltando: instale com extra
[flask].
Contrato HTTP enviado ao collector
Headers:
Content-Type: application/jsonX-APIBrasil-Monitor-Key: <APIBRASIL_MONITOR_KEY>X-APIBrasil-Monitor-SDK: pythonX-APIBrasil-Monitor-Version: 0.1.0
Payload (exemplo):
{
"sdk": {
"name": "apibrasil-requests-monitor",
"version": "0.1.0"
},
"project_key": "api-cpf",
"service_name": "api-cpf",
"environment": "production",
"request_id": "uuid",
"timestamp": "2026-01-01T10:00:00Z",
"method": "POST",
"path": "/consulta",
"status_code": 200,
"duration_ms": 123,
"content_type": "application/json",
"remote_addr": "127.0.0.1",
"user_agent": "python-requests/2.31",
"metrics": {
"tipo": "cpf",
"homolog": false
},
"error": null
}
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 apibrasil_requests_monitor-0.1.0.tar.gz.
File metadata
- Download URL: apibrasil_requests_monitor-0.1.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59a411bc4d56d1035ca15524211af57ba7cb891f8045412e3685d093455b3124
|
|
| MD5 |
90e272cfcf81c5cbba389b092de7aff3
|
|
| BLAKE2b-256 |
f5839936406fdf4bc467397a6c2b1de789886df4b0fa419c83cc6cdff12a0ac4
|
File details
Details for the file apibrasil_requests_monitor-0.1.0-py3-none-any.whl.
File metadata
- Download URL: apibrasil_requests_monitor-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd52c1d0a5a7b6bdc50c443ad964095e24dba21f9a8fecfc04bd248c087bb696
|
|
| MD5 |
a2b8abad63c28086d6d222be5fe9a8ae
|
|
| BLAKE2b-256 |
3050e66ac11a7f7581a9d8a2f0d8a23da27ebab2fa0de3921983af38f6464c30
|