Implante o Managed ClickStack no ClickHouse Cloud, envie um evento de teste pelo seu pipeline de ingestão e confirme que o evento está disponível na UI do ClickStack.
O ClickHouse Cloud opera o backend do ClickHouse enquanto você mantém o controle sobre o pipeline de ingestão e o schema. O Managed ClickStack oferece:
- Escalonamento automático de recurso computacional, independente do armazenamento
- Retenção de baixo custo e praticamente ilimitada com base em armazenamento de objetos
- Isolamento independente de workloads de leitura e gravação com warehouses
- Autenticação integrada
- Backups automatizados
- Recursos de segurança e compliance
- upgrade contínuo
Antes de começar
Você também pode enviar dados diretamente ao ClickHouse usando uma integração compatível e seu próprio schema.
Crie um serviço no ClickHouse Cloud
Conclua o passo Criar um serviço do ClickHouse no quickstart do ClickHouse Cloud. Antes de continuar, confirme que o serviço está em execução.
Prepare seu ambiente de ingestão
- Para iniciar um novo OpenTelemetry Collector, instale o Docker. No Kubernetes, faça a implantação do collector com o Helm.
- Para usar um collector existente, execute-o na função de gateway e verifique se a distribuição dele inclui o exporter do ClickHouse. Você adicionará a configuração necessária neste guia.
Configurar o Managed ClickStack
Escolha uma fonte de ingestão e configure o collector
No seu serviço do ClickHouse Cloud, inicie o ClickStack. Na página Getting Started do ClickStack, selecione Iniciar ingestão.

Na página Escolher uma fonte de ingestão, selecione OpenTelemetry.

O ClickStack gera o comando do coletor com as credenciais de administrador default. Recomendamos usar credenciais de ingestão dedicadas para separar o acesso de ingestão da administração e evitar depender da senha de administrador.
Criar credenciais de ingestão dedicadas (recomendado)
No ClickHouse Cloud, abra o Console SQL do serviço e execute:
CREATE USER `clickstack-ingest` IDENTIFIED WITH sha256_password BY '<password>';
GRANT SELECT, INSERT, CREATE DATABASE, CREATE TABLE, CREATE VIEW ON default.* TO `clickstack-ingest`;No comando gerado, substitua CLICKHOUSE_USER="default" por CLICKHOUSE_USER="clickstack-ingest" e defina CLICKHOUSE_PASSWORD com a senha do usuário dedicado.
Para continuar com as credenciais de administrador default, copie o comando da guia Iniciar coletor. O ClickStack preenche automaticamente o endpoint do serviço. Substitua o placeholder de senha pela senha do serviço. Se não a tiver mais, recupere ou redefina os detalhes de conexão.
O comando tem o seguinte 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:latestSubstitua <host> e <your_password_here> pelos valores do serviço ClickHouse Cloud e execute o comando.
O coletor é executado em primeiro plano. Mantenha este terminal aberto e use um segundo terminal para os demais comandos deste guia.
Selecione Configurar coletor existente e adapte a configuração do coletor.
Execute o coletor como um gateway entre suas aplicações e o ClickHouse Cloud. A configuração abaixo adiciona os exporters do ClickHouse e os pipelines de sinais necessários.
O exemplo usa as credenciais default geradas pelo ClickStack. Para usar credenciais de ingestão dedicadas, siga a configuração opcional na guia Iniciar um novo coletor. Nos dois blocos de exporter do ClickHouse, substitua username: default por username: clickstack-ingest e defina password com a senha do usuário dedicado.
Mescle os componentes a seguir à configuração existente, em vez de substituir receivers, processors, exporters ou extensions não relacionados.
O exemplo adiciona receivers OTLP, processamento em lote, limitação de memória, roteamento de reprodução de sessão e exporters do ClickHouse.
Substitua os placeholders de endpoint e senha pelas credenciais geradas pelo 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]Reutilize o receiver OTLP existente e preserve as configurações de autenticação e TLS. Se a configuração já usar os IDs de componentes ou pipelines do exemplo, mescle-os ou renomeie-os em vez de criar IDs duplicados. Executar dois receivers nas portas 4317 e 4318 causa conflito de portas.
Após mesclar a configuração, recarregue ou reinicie o coletor usando o processo de implantação existente.
Para mais detalhes sobre como configurar coletores OpenTelemetry, consulte Ingestão com OpenTelemetry.
Envie dados de teste
Envie um log de teste com o timestamp atual:
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"}
}]
}]
}]
}
EOFSe você usar um collector existente, substitua http://localhost:4318 pelo endpoint HTTP OTLP correspondente. Se o receiver exigir autenticação, adicione o header necessário ao comando curl.
Uma solicitação bem-sucedida retorna HTTP/1.1 200 OK.
Comece a explorar e confirme a ingestão
Depois que o ClickStack detectar as fontes de dados do OpenTelemetry, selecione Começar a explorar para abrir a visualização Busca. Pesquise por ClickStack ingestion test.
O resultado deve incluir o evento de teste com o nome do serviço clickstack-docs-test.

Prepare seu ambiente de ingestão
Comece com um pipeline existente do Vector capaz de enviar dados para o ClickHouse.
Configurar o Managed ClickStack
Escolha o Vector e configure a ingestão
A partir do seu serviço do ClickHouse Cloud, inicie o ClickStack. Na página Getting Started do ClickStack, selecione Start ingestion.

Na página Choose an ingestion source, selecione Vector.

O Vector é um pipeline de dados de observabilidade de alto desempenho e independente de fornecedor, especialmente popular para a ingestão de logs por sua flexibilidade e baixo consumo de recursos.
Ao usar o Vector com o ClickStack, é você quem define o schema. Ele pode seguir as convenções do OpenTelemetry ou usar fields específicos dos seus events.
Crie um banco de dados e uma tabela
Crie um database e uma table antes de configurar o sink do Vector.
No ClickHouse Cloud, abra o SQL console do seu service e crie um database:
Por exemplo, crie um banco de dados para logs:
CREATE DATABASE IF NOT EXISTS logsEm seguida, crie uma tabela cujo schema corresponda à estrutura dos seus dados de log. O exemplo abaixo pressupõe um formato clássico de log de acesso do 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);Sua table deve estar alinhada com o schema de saída produzido pelo Vector. Ajuste o schema conforme necessário para seus dados, seguindo as melhores práticas de schema recomendadas.
Recomendamos fortemente que você entenda como as chaves primárias funcionam no ClickHouse e escolha uma chave de ordenação de acordo com os seus padrões de acesso. Consulte as orientações específicas do ClickStack sobre como escolher uma chave primária.
Configure o sink do ClickHouse
Com a tabela criada, adicione um sink do ClickHouse à configuração do 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>"Substitua your_input pelo input do seu pipeline existente. Substitua <host> e <your_password_here> pelos valores do seu ClickHouse Cloud service. Se necessário, altere o target database ou a table.
Use credenciais dedicadas para ingestão (recomendado)
Para uso em produção, crie um usuário dedicado e conceda a ele acesso à tabela de destino do Vector. No ClickHouse Cloud, abra o SQL Console do seu serviço e execute:
CREATE USER `clickstack-ingest` IDENTIFIED WITH sha256_password BY '<password>';
GRANT SELECT, INSERT ON logs.nginx_logs TO `clickstack-ingest`;Substitua default por clickstack-ingest no sink do Vector e defina password como a senha do usuário dedicado.
Salve a configuração atualizada e, em seguida, recarregue ou reinicie o Vector usando o seu processo de implantação atual.
Para mais exemplos de ingestão de dados com o Vector, consulte Ingestão com o Vector ou, para opções avançadas, a documentação do sink ClickHouse do Vector.
Crie uma fonte de dados no ClickStack
Crie uma fonte de dados para a tabela preenchida pelo seu pipeline do Vector. O ClickStack solicita que você crie uma no primeiro login.
O formulário já vem pré-preenchido com as expressões do schema padrão do OpenTelemetry. Para a tabela do Nginx criada neste guia, configure a source com estes valores:
| Configuração | Valor |
|---|---|
| Nome | Logs do Nginx |
| Tipo de dados da origem | Log |
| Conexão do servidor | Padrão |
| Banco de dados | logs |
| Tabela | nginx_logs |
| Coluna de timestamp | time_local |
| SELECT padrão | time_local, remote_addr, status, request |
| Expressão do nome do serviço | 'nginx' |
| Expressão de nível de log | multiIf(status >= 500, 'ERROR', status >= 400, 'WARN', 'INFO') |
| Expressão de atributos do log | map('http.remote_addr', toString(remote_addr), 'http.status_code', toString(status), 'http.request', request) |
| Expressão de atributos de recurso | map('service.name', 'nginx') |
| Coluna de timestamp exibida | time_local |
| Expressão de ID do trace | '' |
| Expressão de ID do span | '' |
| Expressão de Coluna Implícita | request |
A tabela do Nginx não contém uma coluna Body. Defina Body Expression como:
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 outras configurações de source, consulte a referência de configuração do ClickStack.
Envie dados de teste
Envie um evento representativo pela entrada do pipeline Vector existente.
Para conferir mais exemplos de fontes e transformações do Vector, consulte Ingestão com Vector.
Comece a explorar e confirme a ingestão
Após criar a fonte de dados, selecione Iniciar exploração para abrir a visualização Busca. Selecione a fonte de dados da sua tabela e confirme se ela contém o evento enviado.

Agora você tem um serviço Managed ClickStack, um endpoint de ingestão funcional e um evento de teste que pode inspecionar no ClickStack.
Próximas etapas
Se outro guia exigir o endpoint ou a senha do ClickHouse Cloud, obtenha ou redefina os dados de conexão antes de continuar.
Envie dados de aplicações e da infraestrutura
Escolha um guia para os dados que deseja enviar ao ClickStack:
Instrumente uma aplicação
Envie traces e logs da aplicação usando um SDK do OpenTelemetry compatível.
Colete logs do host
Encaminhe logs do host usando um OpenTelemetry Collector executado como agente.
Monitore o Kubernetes
Colete logs, métricas e traces de um cluster do Kubernetes.
Explore outras integrações
Encontre guias para outras aplicações e fontes de telemetria.
Explorar dados de exemplo
Use um conjunto de dados de exemplo para explorar o ClickStack com telemetria mais completa:
Logs, traces e métricas de exemplo

Carregue dados da demonstração pública e diagnostique um problema. Este guia pressupõe que você tenha iniciado um novo OpenTelemetry Collector local. Se você configurou um collector existente, adapte as configurações de endpoint e autenticação à sua implantação.
Logs e métricas locais

Colete arquivos locais e métricas do sistema no macOS ou Linux.
Gere dados sintéticos
Use um gerador para testar a ingestão sem precisar de uma aplicação ou conjunto de dados existente:
Gere dados com otelgen
Envie uma breve sequência de logs, traces e métricas sintéticos via OTLP.
Gere dados com telemetrygen
Gere sinais do OpenTelemetry configuráveis em vários serviços.
Consulte todos os dados de exemplo e demonstrações do ClickStack.
Preparação para produção
Revise as orientações sobre produção e dimensionamento antes de usar o ClickStack para workloads contínuos:
Preparação para produção
Revise as credenciais de ingestão, a segurança, a retenção e as orientações operacionais.
Estimar recursos
Dimensione os recursos computacionais para o volume de ingestão esperado.
Para tarefas de implantação, consulte o guia de implantação do Managed ClickStack.