La corrección está integrada en el TP (Ver los recuadros verdes)
Lo que vas a aprender en este TP
- Desplegar OpenObserve
- Ingerir JSON
- Consultar en SQL
Introducción #
Lo que vas a aprender en esta sección
- Desplegar OpenObserve
- Ingerir JSON
- Consultar en SQL
Contexto. Tu equipo busca una plataforma de logs más ligera que un clúster de Elasticsearch. Montas una maqueta en unos minutos.
Requisitos: Docker Compose, curl, jq · Duración estimada: 30 min
Puesta en marcha #
Pasos guiados, con su corrección.
1. Iniciar OpenObserve
¿Por qué? Basta un solo contenedor: es la principal ventaja del producto.
Escribe el Compose, inícialo y comprueba/healthz.Ver la corrección
services: openobserve: image: public.ecr.aws/zinclabs/openobserve:latest ports: - "5080:5080" environment: ZO_DATA_DIR: /data ZO_ROOT_USER_EMAIL: root@example.com ZO_ROOT_USER_PASSWORD: Complexpass#123 volumes: - o2-data:/data volumes: o2-data:docker compose up -d curl http://localhost:5080/healthz2. Enviar eventos
¿Por qué? No hay que declarar ningún esquema: el flujo nace con la primera escritura.
Envía tres eventos al flujocommandesy lee el cuerpo de la respuesta.Ver la corrección
curl -u 'root@example.com:Complexpass#123' \ -H 'Content-Type: application/json' \ http://localhost:5080/api/default/commandes/_json \ -d '[ {"level":"error","service":"paiement","message":"timeout vers la banque","duree_ms":3100}, {"level":"info","service":"paiement","message":"ok","duree_ms":120}, {"level":"info","service":"panier","message":"ok","duree_ms":40} ]' # {"code":200,"status":[{"name":"commandes","successful":3,"failed":0}]}3. Encontrarlos en SQL
¿Por qué? La consulta siempre pide un periodo, en microsegundos.
Calcula el número de eventos y la duración media por servicio. Espera unos segundos si el resultado está vacío.Ver la corrección
NOW=$(date +%s) curl -s -u 'root@example.com:Complexpass#123' \ -H 'Content-Type: application/json' \ http://localhost:5080/api/default/_search \ -d "{\"query\":{ \"sql\":\"SELECT service, count(*) AS n, avg(duree_ms) AS moy FROM commandes GROUP BY service ORDER BY n DESC\", \"start_time\":$(( (NOW-3600)*1000000 )), \"end_time\":$(( (NOW+60)*1000000 )), \"from\":0,\"size\":10}}" | jq .hits4. Observar las transformaciones
¿Por qué? Estas reglas explican muchas consultas que no devuelven nada.
Envía[{"Level":"INFO","http":{"status":500}}]a un flujoessaiy búscalo en la interfaz. ¿Cómo se llaman ahora los campos?Ver la corrección
Los campos pasan a ser
level(minúsculas) yhttp_status(aplanado).curl -u 'root@example.com:Complexpass#123' -H 'Content-Type: application/json' \ http://localhost:5080/api/default/essai/_json -d '[{"Level":"INFO","http":{"status":500}}]'
Nivel de dificultad : ●○○○○ (1/5)
Mi seguimiento
Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión
Artículos recomendados
Installer OpenObserve et ingérer ses premières données
Installer OpenObserve avec Docker Compose ou le binaire, le configurer par ses variables ZO_*, en...
Envoyer ses logs, métriques et traces vers OpenObserve
Les points de réception d'OpenObserve : JSON, bulk, OTLP avec le Collector OpenTelemetry, Prometh...
Explorer ses données dans OpenObserve : SQL, PromQL et VRL
Chercher en SQL, interroger les métriques en PromQL, optimiser un flux (index, partitions, rétent...
OpenObserve : architecture et concepts
Comprendre OpenObserve : stockage Parquet, modes de déploiement, rôles (router, ingester, querier...
Alertes et pipelines dans OpenObserve
Créer un modèle, une destination et une alerte, éviter le blocage SSRF des webhooks et traiter le...
OpenObserve en production : bonnes pratiques
Choisir son mode de déploiement, organiser ses flux, sécuriser, sauvegarder et superviser OpenObs...
Utiliser SigNoz : APM, traces, logs, dashboards et alertes
Exploiter SigNoz au quotidien : vue APM des services, explorateur de traces et de logs, query bui...
Stocker et interroger la télémétrie directement dans ClickHouse
Envoyer logs et traces dans ClickHouse avec l'exportateur OpenTelemetry, comprendre le schéma des...
Grafana : maîtriser les requêtes (PromQL, LogQL, SQL et expressions)
Construire des requêtes efficaces dans Grafana : éditeur de requêtes, Query Inspector, PromQL, Lo...