Saltar al contenido

Reenvío de registros ​

Un reenvío de registros (log drain) envía los registros de ejecución de tus servicios a tus propias herramientas a medida que se escriben: Datadog, Grafana Loki (incluido Grafana Cloud) o cualquier endpoint HTTPS. Los reenvíos de registros se incluyen en el plan Pro y superiores.

Añadir un reenvío ​

Los propietarios y administradores del equipo abren Account settings → Log Drains (para el equipo seleccionado en la barra lateral) y hacen clic en Add log drain:

DestinoQué necesitas
DatadogUna clave de API (en Datadog: Organization Settings → API Keys) y el sitio de tu cuenta, como datadoghq.com o datadoghq.eu.
LokiLa URL de push, como https://logs-prod-012.grafana.net/loki/api/v1/push; a una URL sin ruta se le añade /loki/api/v1/push. Para Grafana Cloud, el usuario (el ID numérico del stack) y un token con logs:write. El inquilino de un Loki multiinquilino se envía como X-Scope-OrgID.
HTTPCualquier URL https://. Zenavo le envía JSON por POST, firmado (ver abajo).

Elige All projects, including new ones, o solo algunos proyectos. Test envía una línea en el momento y muestra si llegó. Hasta 5 reenvíos por equipo.

Las URL, las claves de API y las contraseñas son secretos: se guardan cifrados y la consola solo muestra el host y la ruta del destino. Zenavo solo envía a hosts cuyas direcciones son todas públicas, y no sigue redirecciones. Añadir, cambiar, probar y eliminar reenvíos queda en el registro de auditoría.

Qué se envía ​

Cada línea que imprime un servicio en ejecución, con los valores de las variables censurados ([REDACTED]) como en todas partes, etiquetada con el equipo, el proyecto y el servicio. Los registros de compilación no se reenvían.

DestinoFormato
DatadogSe envía a https://http-intake.logs.<site>/api/v2/logs con ddsource: zenavo, service el nombre del servicio, hostname el nombre del proyecto y las etiquetas project, project_id, service_id y team_id.
LokiUn stream por servicio, con las etiquetas source="zenavo", project, project_id, service, service_id y team_id.
HTTPEl JSON de abajo.

Las líneas salen en lotes de hasta 500 líneas, o cada 2 segundos. Un lote que falla se reintenta tras 1, 5 y 15 segundos; las peticiones que el destino rechaza (como una clave de API incorrecta: cualquier respuesta 4xx salvo 408 y 429) no se reintentan. Después, el lote se descarta. Cada reenvío almacena hasta 10.000 líneas; cuando no da abasto, se descartan las líneas más nuevas. La consola muestra la última entrega de cada reenvío o por qué falló, y cuántas líneas se descartaron. Los registros de la consola, en directo y guardados, nunca se ven afectados por un reenvío.

La entrega es al menos una vez: cuando el plano de control se reinicia, los últimos minutos pueden volver a enviarse.

Contenido HTTP ​

json
{
  "logs": [
    {
      "time": "2026-10-22T08:00:00.123456789Z",
      "message": "GET /cart 200 12ms",
      "team_id": "team_…",
      "project_id": "proj_…",
      "project": "shop",
      "service_id": "svc-…",
      "service": "web"
    }
  ]
}

Cualquier respuesta 2xx cuenta como entregada. Cada petición lleva X-Zenavo-Timestamp (segundos Unix) y X-Zenavo-Signature: v1=<hex>, el HMAC-SHA256 de <timestamp>.<cuerpo sin procesar> con el secreto de firma del reenvío, el mismo esquema que los webhooks de notificaciones. El secreto (whsec_…) se muestra una vez al añadir el reenvío; New secret lo sustituye y muestra el nuevo una vez.

Planes ​

Los reenvíos de registros necesitan el plan Pro, Team o Enterprise. Cuando un equipo pasa a un plan sin ellos, sus reenvíos dejan de enviar; se pueden seguir desactivando, editando o eliminando, y vuelven a funcionar tras mejorar el plan.

Sin relación con Zeabur.