¿Qué hace sentry-python-sdk?
Configuración completa del SDK de Sentry para Python. Útil cuando se pide "añadir Sentry a Python", "instalar sentry-sdk", "configurar Sentry en Python" o establecer monitoreo de errores, trazado, perfilado, registro, métricas, crons o monitoreo de IA para aplicaciones Python. Compatible con Django, Flask, FastAPI, Celery, Starlette, AIOHTTP, Tornado y más.
Instalación
Para instalar el SDK de Sentry para Python, ejecuta:
pip install sentry-sdk
Para habilitar integraciones específicas, instala los extras correspondientes:
pip install sentry-sdk[django]
pip install sentry-sdk[flask]
pip install sentry-sdk[fastapi]
pip install sentry-sdk[celery]
pip install sentry-sdk[starlette]
pip install sentry-sdk[aiohttp]
pip install sentry-sdk[tornado]
Inicialización
Agrega la siguiente configuración al inicio de tu aplicación (por ejemplo, en settings.py para Django o en main.py para FastAPI):
import sentry_sdk
sentry_sdk.init(
dsn="https://[email protected]/0",
# Configura el porcentaje de transacciones a rastrear para rendimiento
traces_sample_rate=1.0,
# Habilita el perfilado
profiles_sample_rate=1.0,
# Habilita el registro de logs (requiere Python 3.7+)
enable_tracing=True,
)
Variables de entorno
También puedes configurar el SDK usando variables de entorno:
SENTRY_DSN: El DSN de tu proyecto en Sentry.SENTRY_ENVIRONMENT: El entorno (por ejemplo, "production", "staging").SENTRY_RELEASE: La versión de tu aplicación.
Ejemplo:
export SENTRY_DSN="https://[email protected]/0"
export SENTRY_ENVIRONMENT="production"
export SENTRY_RELEASE="1.0.0"
Integraciones por framework
Django
Agrega sentry_sdk a INSTALLED_APPS y configura en settings.py:
INSTALLED_APPS = [
...
'sentry_sdk',
]
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
dsn="https://[email protected]/0",
integrations=[DjangoIntegration()],
traces_sample_rate=1.0,
send_default_pii=True,
)
Flask
Configura en la creación de la aplicación:
from flask import Flask
import sentry_sdk
from sentry_sdk.integrations.flask import FlaskIntegration
sentry_sdk.init(
dsn="https://[email protected]/0",
integrations=[FlaskIntegration()],
traces_sample_rate=1.0,
)
app = Flask(__name__)
FastAPI
Configura en la creación de la aplicación:
from fastapi import FastAPI
import sentry_sdk
from sentry_sdk.integrations.fastapi import FastApiIntegration
from sentry_sdk.integrations.starlette import StarletteIntegration
sentry_sdk.init(
dsn="https://[email protected]/0",
integrations=[
StarletteIntegration(),
FastApiIntegration(),
],
traces_sample_rate=1.0,
)
app = FastAPI()
Celery
Configura en el archivo de tareas:
from celery import Celery
import sentry_sdk
from sentry_sdk.integrations.celery import CeleryIntegration
sentry_sdk.init(
dsn="https://[email protected]/0",
integrations=[CeleryIntegration()],
traces_sample_rate=1.0,
)
app = Celery('tasks', broker='redis://localhost:6379/0')
Otros frameworks
Para otros frameworks compatibles (Starlette, AIOHTTP, Tornado), consulta la documentación oficial de Sentry.
Funcionalidades avanzadas
- Monitoreo de logs: Captura mensajes de log como eventos de Sentry.
- Métricas: Envía métricas personalizadas.
- Crons: Monitorea tareas programadas.
- Monitoreo de IA: Rastrea solicitudes a modelos de lenguaje.
Para más detalles, visita: https://docs.sentry.io/platforms/python/