- ClickHouse
- HyperDX
- colector de OpenTelemetry (OTel) (expone OTLP en los puertos
4317y4318) - MongoDB (para el estado persistente de la aplicación)
Ideal para
- Demos
- Pruebas locales de toda la pila
Pasos de despliegue
Desplegar con Docker
Esto iniciará un collector de OTel (en los puertos 4317 y 4318) y la UI de HyperDX (en el puerto 8080).Actualización del nombre de la imagenLas imágenes de ClickStack ahora se publican como
clickhouse/clickstack-* (antes docker.hyperdx.io/hyperdx/*).Acceder a la UI de HyperDX
Visite http://localhost:8080 para acceder a la UI de HyperDX.Cree un usuario e introduzca un nombre de usuario y una contraseña que cumplan los requisitos.Al hacer clic enCreate, se crearán fuentes de datos para la instancia integrada de ClickHouse.Para ver un ejemplo de uso de una instancia alternativa de ClickHouse, consulte “Uso de ClickHouse Cloud”.Ingestar datos
Para ingestar datos, consulte “Ingestar datos”.Persistencia de datos y configuración
/data/db, /var/lib/clickhouse y /var/log/clickhouse-server. Por ejemplo:
Despliegue en producción
- Almacenamiento no persistente: Todos los datos se almacenan mediante el sistema de archivos
overlaynativo de Docker. Esta configuración no ofrece un buen rendimiento a escala, y los datos se perderán si el contenedor se elimina o se reinicia, a menos que los usuarios monten las rutas de archivo necesarias. - Falta de aislamiento entre componentes: Todos los componentes se ejecutan dentro de un único contenedor de Docker. Esto impide el escalado y la monitorización independientes, y aplica cualquier límite de
cgroupde forma global a todos los procesos. Como resultado, los componentes pueden competir por la CPU y la memoria.
Personalizar puertos
docker run para redirigir los puertos correspondientes y configurar algunas variables de entorno.
Los puertos de OpenTelemetry se pueden personalizar simplemente modificando las opciones de redirección de puertos. Por ejemplo, sustituyendo -p 4318:4318 por -p 4999:4318 para cambiar el puerto HTTP de OpenTelemetry a 4999.
Uso con ClickHouse Cloud
CLICKHOUSE_ENDPOINT, CLICKHOUSE_USER y CLICKHOUSE_PASSWORD.
Por ejemplo:
CLICKHOUSE_ENDPOINT debe ser el endpoint HTTPS de ClickHouse Cloud, incluido el puerto 8443, por ejemplo, https://mxl4k3ul6a.us-east-2.aws.clickhouse.com:8443
Una vez conectado a la UI de HyperDX, vaya a Configuración del equipo y cree una conexión a su servicio de ClickHouse Cloud; después, cree las sources necesarias.
Configuración del OpenTelemetry collector
Elección del esquema: Map vs JSON
Map(LowCardinality(String), String) de forma predeterminada. Este es el esquema recomendado para las cargas de trabajo de observabilidad. En combinación con la serialización de mapas por buckets y los índices de texto sobre las claves y los valores del mapa, ofrece lookups selectivos sin la sobrecarga de ingesta por clave de las subcolumnas JSON dinámicas.
También hay disponible, en fase beta, un esquema de tipo JSON para evaluarlo en cargas de trabajo con un conjunto pequeño y estable de claves de atributos. No se recomienda como opción predeterminada. Consulta Map vs tipo JSON para ver la comparación completa y las variables de entorno necesarias para habilitar la compatibilidad con JSON.