
Fragmento de código: rastreo de consultas PostgreSQL con OpenTelemetry (Python)
from opentelemetry import trace
from opentelemetry.instrumentation.psycopg2 import Psycopg2Instrumentor
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter
trace.set_tracer_provider(TracerProvider())
tracer = trace.get_tracer(__name__)
Psycopg2Instrumentor().instrument()
span_processor = BatchSpanProcessor(ConsoleSpanExporter())
trace.get_tracer_provider().add_span_processor(span_processor)
import psycopg2
conn = psycopg2.connect("dbname=test user=postgres")
cur = conn.cursor()
with tracer.start_as_current_span("run-heavy-query"):
cur.execute("SELECT * FROM large_table WHERE condition = 'value';")
results = cur.fetchall()
El rastreo identifica los cuellos de botella de servicio cruzado que afectan la velocidad de consulta.
Detección de anomalías proactivas en latencia de consulta
Establecer umbrales de alerta dinámica basados en datos de observabilidad permite la detección rápida de la degradación del rendimiento.
Fragmento de código: alerta de Python para consultas lentas
import psycopg2
LATENCY_THRESHOLD_MS = 500
conn = psycopg2.connect("dbname=test user=postgres")
cur = conn.cursor()
cur.execute("""
SELECT query, mean_time
FROM pg_stat_statements
WHERE mean_time > %s;
""", (LATENCY_THRESHOLD_MS,))
for query, latency in cur.fetchall():
print(f"WARNING: Query exceeding latency threshold: {latency} ms\n{query}")
Automatizar esto ayuda a mantener los SLA y evitar el impacto del usuario.




