Enrutamiento de registros de aplicaciones en la nube a una canalización
Esta guía le lleva a través del "Hola Mundo" de los pipelines de observabilidad: enviar un único evento de registro JSON desde una aplicación en la nube (simulado vía API) y verificarlo en la plataforma.
Objetivo: Ingerir un registro de aplicación simulado, verificar que llegó al pipeline y prepararlo para enrutarlo a un destino (como Splunk, Elastic o S3).
Por qué es importante
Antes de crear reglas de análisis complejas o enrutar datos a SIEM costosos, debe confiar en su ruta de ingestión.
Este flujo de trabajo confirma:
- Su token de API funciona.
- El pipeline acepta su estructura JSON.
- Puede ver los datos en tiempo real.
Antes de empezar
Asegúrese de tener:
- Un Token de API (con permisos de
ingest). - Su ID de Stream único (desde la interfaz de usuario de la plataforma).
- Acceso a terminal (para ejecutar
curl) o Postman.
Visión general del pipeline
- Mermaid (código)
- Mermaid (imagen)
- ASCII
flowchart LR
A[App Cloud] -->|JSON Log| B[API de Ingesta]
B --> C{Motor de Enrutamiento}
C -->|Regla de Coincidencia| D[Visor de Datos en Vivo]
C -->|Sin Coincidencia| E[Descartar / Bucket por Defecto]
[Su Aplicación]
|
|
|
(POST /v1/streams/ingest)
v
+-----------------------+
| Nodo de Ingestión |
+-----------------------+
|
v
+-----------------------+
| Visor de Datos en Vivo | <-- Estamos verificando aquí
+-----------------------+
1. Crear o seleccionar un stream
En su plataforma de observabilidad:
- Vaya a Streams > Gestión.
- Haga clic en Nuevo Stream (o seleccione
default-logs). - Copie el ID del Stream (por ejemplo,
st_12345). - (Opcional) Establezca una política de retención (el valor predeterminado suele ser 7 días).
2. Crear un evento de registro de ejemplo
Simularemos un registro de una aplicación en la nube. Guarde esto como app-log.json.
{
"timestamp": "2025-11-15T08:30:00Z",
"service": "payment-gateway",
"level": "ERROR",
"message": "Transaction failed: Gateway timeout",
"transaction_id": "txn_998877",
"meta": {
"region": "us-east-1",
"customer_id": "cus_554433"
}
}
Mantenga el timestamp en formato ISO 8601 para asegurar una indexación adecuada.
3. Enviar el evento de registro
Utilice curl para simular que la aplicación envía el registro.
export STREAM_ID="tu_stream_id_aqui"
export API_TOKEN="tu_api_token_aqui"
curl -X POST "https://api.observability-platform.com/v1/streams/ingest" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-H "X-Stream-Id: $STREAM_ID" \
-d @app-log.json
Respuesta esperada
{
"status": "accepted",
"ingest_id": "evt_abc12345",
"accepted_items": 1
}
Si ve status: accepted, el pipeline recibió los datos.
4. Verifique su registro en el visor de datos en vivo
- Navegue a Explorar o Live Tail en la interfaz de usuario de la plataforma.
- Seleccione su stream (
st_12345). - Añada un filtro:
service == "payment-gateway". - Debería ver su evento aparecer al instante:
[ERROR] 2025-11-15T08:30:00Z service=payment-gateway msg="Transaction failed..."
5. Enrutar registros a un destino
Ahora que los datos están fluyendo, cree una regla de enrutamiento:
- Vaya a Pipelines > Reglas de Enrutamiento.
- Haga clic en Nueva Regla.
- Filtro:
level == "ERROR" - Acción: Enrutar a
S3-ArchiveYSlack-Alerts. - Guardar y Desplegar.
Envíe la solicitud curl de nuevo.
- Verifique su bucket S3.
- Verifique su canal de Slack.
6. Optimizar el pipeline
Ahora que tiene un flujo funcional, considere añadir:
- Análisis: Extraer
customer_iden un campo de nivel superior. - Enriquecimiento: Añadir una etiqueta
team_ownerbasada en el nombre delservice. - Enmascaramiento: Ofuscar
customer_idsi es PII.
Solución de problemas
- 401 Unauthorized: Compruebe los permisos de su Token de API.
- 400 Bad Request: Valide su sintaxis JSON.
- 404 Not Found: Verifique que el
X-Stream-Ides correcto. - Problemas de marca de tiempo: Asegúrese de que está utilizando el formato UTC ISO 8601.
- Datos no mostrados: Compruebe si tiene un filtro activo que excluya su nuevo registro.
Próximos pasos
- Referencia de API de Ingesta
- Conceptos de Observabilidad
- Pruebe a enviar distintos tipos de registros (registros de VM, registros de contenedores, eventos de API).