Implementa Managed ClickStack en ClickHouse Cloud, envía un evento de prueba a través de tu pipeline de ingestión y confirma que el evento esté disponible en la UI de ClickStack.
ClickHouse Cloud opera el backend de ClickHouse, mientras conservas el control sobre el pipeline de ingestión y el esquema. Managed ClickStack proporciona:
- Escalado automático del cómputo, independiente del almacenamiento
- Retención de bajo costo y prácticamente ilimitada basada en almacenamiento de objetos
- Aislamiento independiente de las cargas de trabajo de lectura y escritura con warehouses
- Autenticación integrada
- Backups automatizados
- Funciones de seguridad y cumplimiento normativo
- Actualizaciones sin interrupciones
Antes de empezar
También puede enviar datos directamente a ClickHouse mediante una integración compatible y un esquema propio.
Crea un servicio de ClickHouse Cloud
Completa el paso Crear un servicio de ClickHouse de la guía de inicio rápido de ClickHouse Cloud. Antes de continuar, confirma que el servicio esté en ejecución.
Prepare su entorno de ingestión
- Para iniciar un nuevo OpenTelemetry Collector, instale Docker. En Kubernetes, despliegue el collector con Helm.
- Para usar un collector existente, ejecútelo como gateway y asegúrese de que su distribución incluya el exporter de ClickHouse. En esta guía añadirá la configuración necesaria.
Configurar Managed ClickStack
Elija una fuente de ingestión y configure el collector
Desde tu servicio de ClickHouse Cloud, inicia ClickStack. En la página Primeros pasos de ClickStack, selecciona Iniciar la ingestión.

En la página Elegir una fuente de ingestión, selecciona OpenTelemetry.

ClickStack genera el comando del colector con las credenciales de administrador default. Recomendamos usar credenciales de ingestión específicas para mantener el acceso de ingestión separado de las tareas de administración y evitar depender de la contraseña de administrador.
Crear credenciales específicas para la ingestión (recomendado)
En ClickHouse Cloud, abre la consola SQL de tu servicio y ejecuta:
CREATE USER `clickstack-ingest` IDENTIFIED WITH sha256_password BY '<password>';
GRANT SELECT, INSERT, CREATE DATABASE, CREATE TABLE, CREATE VIEW ON default.* TO `clickstack-ingest`;En el comando generado, reemplaza CLICKHOUSE_USER="default" por CLICKHOUSE_USER="clickstack-ingest" y establece CLICKHOUSE_PASSWORD con la contraseña del usuario específico.
Para continuar con las credenciales de administrador default, copia el comando de la pestaña Iniciar colector. ClickStack rellena previamente el endpoint del servicio. Sustituye el marcador de posición de la contraseña por la contraseña de tu servicio. Si ya no la tienes, consulta o restablece tus datos de conexión.
El comando tiene este formato:
docker run -e CLICKHOUSE_ENDPOINT="https://<host>:8443" \
-e CLICKHOUSE_USER="default" \
-e CLICKHOUSE_PASSWORD="<your_password_here>" \
-p 4317:4317 -p 4318:4318 \
clickhouse/clickstack-otel-collector:latestSustituye <host> y <your_password_here> por los valores de tu servicio de ClickHouse Cloud y ejecuta el comando.
El colector se ejecuta en primer plano. Mantén esta terminal abierta y usa una segunda terminal para los comandos restantes de esta guía.
Selecciona Configurar un colector existente y adapta la configuración de tu colector.
Ejecuta el colector como puerta de enlace entre tus aplicaciones y ClickHouse Cloud. La siguiente configuración añade los exportadores de ClickHouse y los pipelines de señales necesarios.
El ejemplo usa las credenciales default generadas por ClickStack. Para usar credenciales específicas para la ingestión, sigue la configuración opcional de la pestaña Iniciar un nuevo colector. En ambos bloques del exportador de ClickHouse, reemplaza username: default por username: clickstack-ingest y establece password con la contraseña del usuario específico.
Integra los siguientes componentes en tu configuración existente en lugar de reemplazar receivers, procesadores, exportadores o extensiones no relacionados.
El ejemplo añade receivers OTLP, procesamiento por lotes, limitación de memoria, enrutamiento de Session Replay y exportadores de ClickHouse.
Sustituya los marcadores de posición de endpoint y contraseña por las credenciales generadas por ClickStack:
receivers:
otlp/hyperdx:
protocols:
grpc:
include_metadata: true
endpoint: "0.0.0.0:4317"
http:
cors:
allowed_origins: ["*"]
allowed_headers: ["*"]
include_metadata: true
endpoint: "0.0.0.0:4318"
processors:
batch:
memory_limiter:
# 80% of maximum memory up to 2G, adjust for low memory environments
limit_mib: 1500
# 25% of limit up to 2G, adjust for low memory environments
spike_limit_mib: 512
check_interval: 5s
connectors:
routing/logs:
default_pipelines: [logs/out-default]
error_mode: ignore
table:
- context: log
statement: route() where IsMatch(attributes["rr-web.event"], ".*")
pipelines: [logs/out-rrweb]
exporters:
clickhouse/rrweb:
database: default
endpoint: <clickhouse_cloud_endpoint>
password: <your_password_here>
username: default
ttl: 720h
logs_table_name: hyperdx_sessions
timeout: 5s
retry_on_failure:
enabled: true
initial_interval: 5s
max_interval: 30s
max_elapsed_time: 300s
clickhouse:
database: default
endpoint: <clickhouse_cloud_endpoint>
password: <your_password_here>
username: default
ttl: 720h
timeout: 5s
retry_on_failure:
enabled: true
initial_interval: 5s
max_interval: 30s
max_elapsed_time: 300s
service:
pipelines:
traces:
receivers: [otlp/hyperdx]
processors: [memory_limiter, batch]
exporters: [clickhouse]
metrics:
receivers: [otlp/hyperdx]
processors: [memory_limiter, batch]
exporters: [clickhouse]
logs/in:
receivers: [otlp/hyperdx]
exporters: [routing/logs]
logs/out-default:
receivers: [routing/logs]
processors: [memory_limiter, batch]
exporters: [clickhouse]
logs/out-rrweb:
receivers: [routing/logs]
processors: [memory_limiter, batch]
exporters: [clickhouse/rrweb]Reutiliza tu receiver OTLP existente y conserva su configuración de autenticación y TLS. Si tu configuración ya utiliza los ID de componentes o pipelines del ejemplo, intégralos o cámbiales el nombre en lugar de crear ID duplicados. Ejecutar dos receivers en los puertos 4317 y 4318 provoca un conflicto de puertos.
Después de integrar la configuración, vuelve a cargar o reinicia el colector mediante tu proceso de implementación habitual.
Para obtener más información sobre cómo configurar colectores de OpenTelemetry, consulta Ingestión con OpenTelemetry.
Enviar datos de prueba
Envía un registro de prueba con la marca de tiempo actual:
NOW_NANO="$(date +%s)000000000"
curl -i "http://localhost:4318/v1/logs" \
-H "Content-Type: application/json" \
--data-binary @- <<EOF
{
"resourceLogs": [{
"resource": {
"attributes": [{
"key": "service.name",
"value": {"stringValue": "clickstack-docs-test"}
}]
},
"scopeLogs": [{
"scope": {"name": "clickstack-docs-test"},
"logRecords": [{
"timeUnixNano": "${NOW_NANO}",
"severityText": "INFO",
"body": {"stringValue": "ClickStack ingestion test"}
}]
}]
}]
}
EOFSi utiliza un collector existente, sustituya http://localhost:4318 por su endpoint HTTP de OTLP. Si el receiver requiere autenticación, añada el header necesario al comando curl.
Una request correcta devuelve HTTP/1.1 200 OK.
Comience a explorar y confirme la ingestión
Cuando ClickStack detecte las fuentes de datos de OpenTelemetry, selecciona Empezar a explorar para abrir la vista de Búsqueda. Busca ClickStack ingestion test.
El resultado debería incluir el evento de prueba con el nombre de servicio clickstack-docs-test.

Prepare su entorno de ingestión
Comience con un pipeline de Vector existente que pueda enviar datos a ClickHouse.
Configurar Managed ClickStack
Elija Vector y configure la ingestión
Desde su servicio de ClickHouse Cloud, inicie ClickStack. En la página Getting Started de ClickStack, seleccione Start ingestion.

En la página Choose an ingestion source, seleccione Vector.

Vector es un pipeline de datos de observabilidad de alto rendimiento e independiente del proveedor, especialmente popular para la ingestión de logs por su flexibilidad y su bajo consumo de recursos.
Al usar Vector con ClickStack, es usted quien define el esquema, el cual puede seguir las convenciones de OpenTelemetry o emplear campos propios de sus eventos.
Crear una base de datos y una tabla
Cree una base de datos y una tabla antes de configurar el sink de Vector.
En ClickHouse Cloud, abra la consola SQL de su servicio y cree una base de datos:
Por ejemplo, cree una base de datos para los registros:
CREATE DATABASE IF NOT EXISTS logsA continuación, cree una tabla cuyo esquema coincida con la estructura de los datos de sus logs. El siguiente ejemplo asume un formato clásico de log de acceso de Nginx:
CREATE TABLE logs.nginx_logs
(
`time_local` DateTime,
`remote_addr` IPv4,
`remote_user` LowCardinality(String),
`request` String,
`status` UInt16,
`body_bytes_sent` UInt64,
`http_referer` String,
`http_user_agent` String,
`http_x_forwarded_for` LowCardinality(String),
`request_time` Float32,
`upstream_response_time` Float32,
`http_host` String
)
ENGINE = MergeTree
ORDER BY (toStartOfMinute(time_local), status, remote_addr);Su table debe coincidir con el schema de salida que genera Vector. Ajuste el schema según sea necesario para sus datos, siguiendo las buenas prácticas de schema recomendadas.
Recomendamos encarecidamente comprender cómo funcionan las primary keys en ClickHouse y elegir una ordering key acorde con sus access patterns. Consulte la guía específica de ClickStack sobre cómo elegir una primary key.
Configurar el sink de ClickHouse
Una vez creada la tabla, añada un sink de ClickHouse a su configuración de Vector:
sinks:
clickhouse:
type: clickhouse
inputs:
- your_input
endpoint: "https://<host>:8443"
database: logs
table: nginx_logs
format: json_each_row
skip_unknown_fields: true
auth:
strategy: basic
user: default
password: "<your_password_here>"Sustituya your_input por la entrada de su pipeline existente. Sustituya <host> y <your_password_here> por los valores de su servicio de ClickHouse Cloud. Si es necesario, cambie la base de datos o la tabla de destino.
Utilice credenciales específicas para la ingestión (recomendado)
Para el entorno de producción, cree un usuario específico y concédale acceso a la tabla de destino de Vector. En ClickHouse Cloud, abra la consola SQL de su servicio y ejecute:
CREATE USER `clickstack-ingest` IDENTIFIED WITH sha256_password BY '<password>';
GRANT SELECT, INSERT ON logs.nginx_logs TO `clickstack-ingest`;Sustituya default por clickstack-ingest en el sink de Vector y establezca password con la contraseña del usuario dedicado.
Guarde la configuración actualizada y, a continuación, recargue o reinicie Vector con su proceso de despliegue habitual.
Para más ejemplos de cómo ingestar datos con Vector, consulte Ingestar con Vector o la documentación del sink de ClickHouse de Vector para ver las opciones avanzadas.
Crear una fuente de datos en ClickStack
Cree un data source para la tabla que su pipeline de Vector puebla. ClickStack le pedirá crear uno la primera vez que inicie sesión.
El formulario rellena previamente las expresiones correspondientes al esquema predeterminado de OpenTelemetry. Para la tabla de Nginx creada en esta guía, configure la fuente con estos valores:
| Configuración | Valor |
|---|---|
| Nombre | Logs de Nginx |
| Tipo de datos de origen | Log |
| Conexión del servidor | Default |
| Base de datos | logs |
| Tabla | nginx_logs |
| Columna de marca de tiempo | time_local |
| SELECT predeterminado | time_local, remote_addr, status, request |
| Expresión del nombre del servicio | 'nginx' |
| Expresión de nivel de registro | multiIf(status >= 500, 'ERROR', status >= 400, 'WARN', 'INFO') |
| Expresión de atributos de registro | map('http.remote_addr', toString(remote_addr), 'http.status_code', toString(status), 'http.request', request) |
| Expresión de atributos de recurso | map('service.name', 'nginx') |
| Columna de marca de tiempo que se muestra | time_local |
| Expresión de ID de trace | '' |
| Expresión de ID de span | '' |
| Expresión de columna implícita | request |
La tabla de Nginx no contiene una columna Body. Establezca Body Expression en:
concat(
remote_addr, ' ',
remote_user, ' ',
'[', formatDateTime(time_local, '%d/%b/%Y:%H:%i:%S %z'), '] ',
'"', request, '" ',
toString(status), ' ',
toString(body_bytes_sent), ' ',
'"', http_referer, '" ',
'"', http_user_agent, '" ',
'"', http_x_forwarded_for, '" ',
toString(request_time), ' ',
toString(upstream_response_time), ' ',
'"', http_host, '"'
)Para conocer otros ajustes de la source, consulte la referencia de configuración de ClickStack.
Enviar datos de prueba
Envíe un evento representativo a la entrada de su pipeline de Vector existente.
Para ver más ejemplos de fuentes y transformaciones de Vector, consulte Ingesta con Vector.
Empiece a explorar y confirme la ingestión
Después de crear la fuente de datos, selecciona Comenzar a explorar para abrir la vista Búsqueda. Selecciona la fuente de datos correspondiente a tu tabla y confirma que contiene el evento que enviaste.

Ahora tienes un servicio de Managed ClickStack, una ruta de ingestión operativa y un evento de prueba que puedes inspeccionar en ClickStack.
Próximos pasos
Si otra guía requiere el endpoint o la contraseña de ClickHouse Cloud, obtenga o restablezca los datos de conexión antes de continuar.
Envíe datos de aplicaciones y de infraestructura
Elija una guía según los datos que desee enviar a ClickStack:
Instrumente una aplicación
Envíe trazas y logs de aplicaciones con un SDK de OpenTelemetry compatible.
Recopile logs del host
Reenvíe logs del host desde un OpenTelemetry Collector que se ejecuta con el rol de agente.
Supervise Kubernetes
Recopile logs, métricas y trazas de un clúster de Kubernetes.
Explore otras integraciones
Encuentre guías para aplicaciones y fuentes de telemetría adicionales.
Explorar datos de muestra
Use un conjunto de datos de muestra para explorar ClickStack con telemetría más completa:
Logs, trazas y métricas de muestra

Cargue datos de la demo pública y diagnostique un issue. Esta guía presupone que inició un nuevo OpenTelemetry Collector local. Si configuró un collector existente, adapte el endpoint y la configuración de autenticación a su implementación.
Logs y métricas locales

Recopile archivos locales y métricas del sistema en macOS o Linux.
Generar datos sintéticos
Use un generador para probar la ingestión sin necesidad de contar con una aplicación o un conjunto de datos existentes:
Generar datos con otelgen
Envíe una breve ráfaga de logs, trazas y métricas sintéticos mediante OTLP.
Generar datos con telemetrygen
Genere señales de OpenTelemetry configurables en varios servicios.
Consulte todos los datos de ejemplo y demos de ClickStack.
Preparación para producción
Revise las recomendaciones de producción y dimensionamiento antes de utilizar ClickStack para cargas de trabajo continuas:
Pasar a producción
Revise las credenciales de ingestión, la seguridad, la retención y las recomendaciones operativas.
Estimar recursos
Dimensione la capacidad de cómputo según el volumen de ingestión previsto.
Para tareas de implementación, consulte la guía de implementación de Managed ClickStack.