Guía de despliegue

Grafana Tempo y OpenTelemetry: trazado distribuido en VPS

Desplegar en un VPS Cloud →

Tutorial

Grafana Tempo y OpenTelemetry: trazado distribuido en VPS

Seguridad y monitorización4 min de lectura5 pasos

Los agentes propietarios como Datadog o New Relic facturan la observabilidad a la carta, con un encierro progresivo en su ecosistema. OpenTelemetry y Grafana Tempo ofrecen una alternativa CNCF graduada, portable entre backends, que usted despliega íntegramente en su VPS en menos de una hora.

Contenido· Por qué adoptar OpenTelemetry en lugar de un agente propietario1/5
  1. 01Por qué adoptar OpenTelemetry en lugar de un agente propietario
  2. 02Lo que le aporta la stack OTel + Grafana Tempo
  3. 03Requisitos del VPS
  4. 04Desplegar la stack OTel en cinco pasos
  5. 05Ir más lejos: correlacionar trazas, métricas y logs

Por qué adoptar OpenTelemetry en lugar de un agente propietario

OpenTelemetry es un proyecto CNCF graduado que unifica los tres pilares de la observabilidad — trazas, métricas y logs — bajo un estándar vendor-neutral. A diferencia de los agentes de Datadog o New Relic, el OTel Collector recibe, transforma y exporta la telemetría hacia cualquier backend compatible. Usted cambia de almacenamiento sin tocar el código de su aplicación. Los SDK cubren Node.js, Python, Go, Java, PHP, Ruby y la mayoría de los lenguajes modernos, lo que lo convierte en una base de instrumentación duradera sea cual sea su stack.

Lo que le aporta la stack OTel + Grafana Tempo

  • Tracing distribuido sin índice externo — Grafana Tempo v2.x almacena las trazas en bloques comprimidos (parquet) en disco local o en object storage, sin Cassandra ni Elasticsearch.
  • Consultas TraceQL — el lenguaje propio de Tempo permite filtrar las trazas por duración, servicio, estado de error o atributos personalizados en unos segundos.
  • Compatibilidad multiprotocolo — Tempo acepta OTLP, Zipkin y Jaeger: sus aplicaciones existentes se conectan sin volver a instrumentarlas.
  • Stack ligera en VPS — 2 GB de RAM bastan para un entorno de desarrollo o de staging; en producción con carga, 4 GB aseguran un margen cómodo.
  • Coste controlado — un VPS a 99 DH/mes autoalojado sustituye a una suscripción APM de Datadog facturada en torno a 23 $ por host y por mes.

Requisitos del VPS

Su VPS debe disponer de al menos 2 GB de RAM y de un acceso root o sudo. Docker Engine y Docker Compose v2 deben estar instalados. Prevea un subdominio dedicado (por ejemplo grafana.su-dominio.com) para exponer la interfaz de Grafana detrás de un reverse proxy TLS. Los puertos 4317 (OTLP/gRPC) y 4318 (OTLP/HTTP) deben estar abiertos en su firewall para recibir la telemetría desde sus aplicaciones.

Desplegar la stack OTel en cinco pasos

  1. Crear la estructura Docker Compose

    Organice una carpeta otel-stack/ que contenga sus archivos de configuración y un docker-compose.yml. Defina cuatro servicios: otel-collector, tempo, prometheus y grafana. Conéctelos en una red Docker interna monitoring. Monte un volumen con nombre tempo-data para la persistencia de las trazas en el disco del VPS.

  2. Configurar el OTel Collector (`otelcol-config.yaml`)

    Declare dos receivers: otlp en los puertos 4317 (gRPC) y 4318 (HTTP). En la sección exporters, añada otlp/tempo apuntando a tempo:4317 y prometheus al puerto 8889. El pipeline traces conecta el receiver OTLP con el exporter Tempo; el pipeline metrics conecta el receiver OTLP con el exporter Prometheus.

  3. Configurar Grafana Tempo (`tempo-config.yaml`)

    Active el receiver OTLP (gRPC en el puerto 4317). Defina el backend de almacenamiento en modo local con la ruta /var/tempo. Active la funcionalidad search para permitir las consultas TraceQL desde Grafana. Para un uso en producción, sustituya el backend local por s3 o gcs e indique las credenciales de su proveedor de almacenamiento de objetos.

  4. Lanzar Grafana con los datasources Tempo y Prometheus

    Monte un archivo de provisioning datasources.yaml en la carpeta /etc/grafana/provisioning/datasources/. Declare dos datasources: uno Tempo apuntando a http://tempo:3200 y otro Prometheus a http://prometheus:9090. Lance el conjunto con docker compose up -d. Acceda a Grafana en el puerto 3000 y compruebe que los dos datasources aparecen en verde.

  5. Instrumentar una primera aplicación Node.js o Python

    Para Node.js, instale @opentelemetry/sdk-node y @opentelemetry/auto-instrumentations-node. Inicialice el SDK con el exporter OTLP apuntando a http://su-vps:4318 y defina la variable de entorno OTEL_SERVICE_NAME con el nombre de su servicio. Para Python, utilice opentelemetry-distro y opentelemetry-exporter-otlp. Reinicie su aplicación y consulte Grafana Explore para ver aparecer sus primeras trazas.

TraceQL es el lenguaje de consulta nativo de Grafana Tempo. Permite filtrar las trazas por duración, servicio, estado HTTP o atributo personalizado. Por ejemplo, la consulta { duration > 500ms && status = error } aísla de inmediato las llamadas lentas en error en el conjunto de su infraestructura. Combine varias condiciones con && o || para afinar el diagnóstico sin recorrer miles de spans manualmente.

Ir más lejos: correlacionar trazas, métricas y logs

Añada Grafana Loki a su stack para centralizar los logs de las aplicaciones en el mismo entorno. Grafana Explore le permite pasar de una traza a sus logs asociados con un solo clic y comprobar después las métricas de Prometheus correspondientes en la misma ventana temporal. Si prefiere un único binario todo en uno, OpenObserve es una alternativa ligera que reúne trazas, métricas y logs en un solo servicio, disponible también en autoalojamiento en VPS.

Grafana está en el catálogo de ServOrbit

Despliegue Grafana con un solo clic desde nuestro Marketplace y conecte su stack de OTel + Tempo sin configuración manual.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva