Перейти к основному содержимому
Перейти к основному содержимому

Управляемый

Beta feature. Learn more.
Бета-функция

Эта функция находится в бета-версии ClickHouse Cloud.

Это руководство предназначено для существующих пользователей ClickHouse Cloud. Если вы новичок в ClickHouse Cloud, мы рекомендуем наше руководство Getting Started по Managed ClickStack.

В этом варианте развертывания и ClickHouse, и UI ClickStack (HyperDX) размещены в ClickHouse Cloud, что минимизирует количество компонентов, которые пользователю необходимо разворачивать и обслуживать самостоятельно.

Помимо снижения затрат на управление инфраструктурой, такой вариант развертывания обеспечивает интеграцию аутентификации с ClickHouse Cloud SSO/SAML. В отличие от самостоятельных развертываний, здесь также нет необходимости поднимать экземпляр MongoDB для хранения состояния приложения — такого как дашборды, сохранённые поисковые запросы, пользовательские настройки и алерты. Пользователи также получают следующие преимущества:

  • Автоматическое масштабирование вычислительных ресурсов независимо от хранилища
  • Низкая стоимость и практически неограниченный срок хранения данных на основе объектного хранилища
  • Возможность независимо изолировать нагрузки на чтение и запись с помощью Warehouses
  • Интегрированная аутентификация
  • Автоматизированные резервные копии
  • Функции безопасности и соответствия требованиям
  • Бесшовные обновления

В этом режиме ингестия данных полностью остаётся на стороне пользователя. Вы можете выполнять ингестию данных в Managed ClickStack, используя собственный развернутый OpenTelemetry collector, прямую ингестию из клиентских библиотек, нативные для ClickHouse табличные движки (такие как Kafka или S3), ETL-конвейеры или ClickPipes — управляемый сервис ингестии в ClickHouse Cloud. Такой подход обеспечивает самый простой и наиболее производительный способ эксплуатации ClickStack.

Подходит для

Эта модель развертывания оптимальна в следующих сценариях:

  1. У вас уже есть данные обсервабилити в ClickHouse Cloud, и вы хотите визуализировать их с помощью ClickStack.
  2. У вас крупное развертывание обсервабилити, и вам необходима выделенная производительность и масштабируемость ClickStack, работающего поверх ClickHouse Cloud.
  3. Вы уже используете ClickHouse Cloud для аналитики и хотите инструментировать свое приложение с помощью библиотек инструментирования ClickStack, отправляя данные в тот же кластер. В этом случае мы рекомендуем использовать warehouses для изоляции вычислительных ресурсов для нагрузок обсервабилити.

Этапы настройки

В данном руководстве предполагается, что вы уже создали сервис ClickHouse Cloud. Если вы ещё не создали сервис, следуйте руководству Getting Started для Managed ClickStack. В результате у вас будет сервис в том же состоянии, что и в этом руководстве, то есть готовый к приёму данных обсервабилити с включённым ClickStack.


Создайте новый сервис

На главной странице ClickHouse Cloud выберите New service, чтобы создать новый сервис.

Новый сервис

Укажите провайдера, регион и ресурсы

Scale vs Enterprise

Мы рекомендуем этот тариф Scale для большинства нагрузок ClickStack. Выберите тариф Enterprise, если вам требуются расширенные функции безопасности, такие как SAML, CMEK или соответствие требованиям HIPAA. Он также предлагает индивидуальные профили оборудования для очень крупных развертываний ClickStack. В таких случаях мы рекомендуем связаться со службой поддержки.

Выберите поставщика Cloud и регион.

Resource selector

При указании CPU и памяти оценивайте их исходя из ожидаемой пропускной способности ingesтa ClickStack. Таблица ниже предоставляет рекомендации по размеру этих ресурсов.

Ниже приведена модель для оценки вычислительных ресурсов и ресурсов хранения, необходимых для развертывания ClickStack, на основе ожидаемого объёма приёма данных. Полученные значения являются лишь оценочными и должны использоваться как начальная точка отсчёта — это не готовый рецепт. Фактические требования зависят от сложности запросов, уровня параллелизма, политик хранения и колебаний пропускной способности ингестии. Всегда отслеживайте использование ресурсов и масштабируйте систему по мере необходимости.

Все показатели основаны на несжатом исходном объёме приёма

Все значения на этой странице — пропускная способность (MB/s, TB/month), размер CPU и объём хранилища — выражены через несжатый исходный объём приёма, то есть размер данных в том виде, в котором они создаются вашими приложениями и отправляются в OpenTelemetry collector до применения какого-либо сжатия.

Именно этот показатель следует оценивать на основе ваших существующих конвейеров логов, трейсов и метрик. Значения объёма хранилища в таблице ниже уже рассчитаны с применением предполагаемого 10-кратного коэффициента сжатия к этому исходному объёму.

При развертывании ClickStack выделяйте вычислительные ресурсы под две независимые рабочие нагрузки: приём и запросы.

Рабочая нагрузкаОценка ресурсов
Приём1 vCPU на каждые 10 MB/s устойчивой пропускной способности приёма
Запросы1 vCPU на 1 QPS и на каждые 10 MB/s устойчивой пропускной способности приёма
Изоляция запросов и приёма

В большинстве самоуправляемых развертываний приём и запросы используют одни и те же узлы. В этом случае используйте общее число CPU как базовую точку отсчёта. Изолированное масштабирование — при котором вычислительные ресурсы для приёма и запросов выделяются независимо — поддерживается в ClickHouse Cloud через отдельные вычислительные пулы, также называемые хранилищами.

Допущения
  • 10-кратный коэффициент сжатия для хранилища — обычно это консервативная оценка для логов и трейсов.
  • SLA для запросов: P50 на уровне 1,5 секунды и P99 на уровне 5 секунд.
  • Мы исходим из того, что большинство запросов выполняется по свежим данным и следует логнормальному распределению с пиком примерно через один час и спадом примерно к шести часам. Пользователям может потребоваться выделить отдельные вычислительные ресурсы для запросов к более старым данным. В ClickHouse Cloud такие ресурсы могут простаивать (и, следовательно, не создавать затрат), когда не используются.
  • Хотя вычислительные ресурсы для запросов можно масштабировать независимо от ресурсов для приёма, они по-прежнему напрямую связаны с объёмом приёма. Мы предполагаем, что по мере роста приёма увеличивается плотность данных, что приводит к большим объёмам сканирования во время выполнения запросов и, как следствие, к более высоким требованиям к вычислительным ресурсам для запросов.

В следующей таблице приведены примеры размеров ресурсов на основе роста пропускной способности приёма в мегабайтах в секунду, а также соответствующие объёмы данных в терабайтах в месяц. Предполагается устойчивое среднее значение 1 QPS в ClickStack для всех типов запросов (поиск, дашборды, оповещения).

MB/sTB/monthCPU для приёмаCPU для запросовВсего CPUОбщее хранилище (в месяц) (GB)
1025.921342,592
2051.842685,184
50129.65152012,960
100259.210304025,920
200518.420608051,840
5001,29650150200129,600
10002,592100300400259,200

После того как вы укажете требования, ваш управляемый сервис ClickStack будет подготовлен в течение нескольких минут. Пока идёт подготовка, вы можете изучить остальную часть ClickHouse Cloud console.

Подробнее о том, как уточнить предположения по подбору размеров для вашей среды, см. в разделе "Уточнение предположений по подбору размеров для вашей среды".

После завершения подготовки опция 'ClickStack' в левом меню будет доступна.

Настройте ингестию

После создания сервиса убедитесь, что он выбран, и нажмите "ClickStack" в левом меню.

Начать ингестию

Выберите "Начать ингестию", после чего вам будет предложено выбрать источник ингестии. Управляемый ClickStack поддерживает OpenTelemetry и Vector как основные источники ингестии. Однако пользователи также могут отправлять данные напрямую в ClickHouse в собственной схеме, используя любую из интеграций, поддерживаемых ClickHouse Cloud.

Выбор источника
Рекомендуется OpenTelemetry

Использование формата OpenTelemetry настоятельно рекомендуется для ингестии. Он обеспечивает самый простой и оптимизированный рабочий процесс с готовыми схемами, которые специально спроектированы для эффективной работы с ClickStack.

Для отправки данных OpenTelemetry в управляемый ClickStack рекомендуется использовать OpenTelemetry Collector. Коллектор действует как шлюз, принимающий данные OpenTelemetry от ваших приложений (и других коллекторов) и передающий их в ClickHouse Cloud.

Если у вас еще не запущен коллектор, запустите его, выполнив приведенные ниже шаги. Если у вас уже есть работающие коллекторы, также предоставлен пример конфигурации.

Запустите коллектор

Далее предполагается рекомендуемый подход с использованием дистрибутива OpenTelemetry Collector от ClickStack, который включает дополнительную обработку и оптимизирован специально для ClickHouse Cloud. Если вы планируете использовать собственный OpenTelemetry Collector, см. раздел "Настройка существующих коллекторов."

Чтобы быстро начать работу, скопируйте и выполните показанную команду Docker.

Источник данных OTel collector

Эта команда будет содержать предварительно заполненные учетные данные для подключения.

Развертывание в production

Хотя эта команда использует пользователя default для подключения к Managed ClickStack, при переходе в production следует создать отдельного пользователя и изменить конфигурацию.

Выполнение этой команды запускает коллектор ClickStack с конечными точками OTLP, доступными на портах 4317 (gRPC) и 4318 (HTTP). Если у вас уже настроены инструментация и агенты OpenTelemetry, вы можете сразу начать отправку телеметрических данных на эти конечные точки.

Настройте существующие коллекторы

Также можно настроить собственные существующие коллекторы OpenTelemetry или использовать собственный дистрибутив коллектора.

Требуется экспортер ClickHouse

Если вы используете собственный дистрибутив, например contrib-образ, убедитесь, что он включает экспортер ClickHouse.

Для этого предоставлен пример конфигурации OpenTelemetry Collector, использующий экспортер ClickHouse с соответствующими настройками и предоставляющий OTLP-приемники. Данная конфигурация соответствует интерфейсам и поведению, ожидаемым дистрибутивом 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:
  debug:
    verbosity: detailed
    sampling_initial: 5
    sampling_thereafter: 200
  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]

Расширенный источник данных для OTel collector

Для получения дополнительной информации по настройке коллекторов OpenTelemetry см. раздел "Ingesting with OpenTelemetry."

Запустите процесс ингестии (необязательно)

Если у вас есть существующие приложения или инфраструктура, которые нужно инструментировать с помощью OpenTelemetry, перейдите к соответствующим руководствам, на которые есть ссылки в UI.

Чтобы инструментировать приложения для сбора трассировок и логов, используйте поддерживаемые языковые SDKs, которые отправляют данные в ваш OpenTelemetry Collector, выступающий шлюзом для приёма данных в Managed ClickStack.

Логи можно собирать с помощью OpenTelemetry Collectors, запущенных в режиме агента и перенаправляющих данные в тот же коллектор. Для мониторинга Kubernetes используйте специальное руководство. Для других интеграций см. наши руководства по быстрому старту.

Демонстрационные данные

В качестве альтернативы, если у вас нет существующих данных, попробуйте один из наших тестовых наборов данных.

  • Пример набора данных — загрузите пример набора данных из нашего публичного демо и продиагностируйте простую проблему.
  • Локальные файлы и метрики — загрузите локальные файлы и отслеживайте состояние системы под управлением OSX или Linux, используя локальный OTel collector.

Перейдите в пользовательский интерфейс ClickStack

Выберите 'Launch ClickStack', чтобы открыть UI ClickStack (HyperDX). Вы будете автоматически аутентифицированы и перенаправлены.

Источники данных будут предварительно созданы для любых данных OpenTelemetry.

ClickStack UI

Вот и всё — вы готовы к работе. 🎉

Исследуйте ClickStack: начинайте поиск по логам и трейсам, смотрите, как логи, трейсы и метрики коррелируют в режиме реального времени, создавайте дашборды, изучайте карты сервисов, выявляйте дельты и паттерны событий и настраивайте алерты, чтобы опережать инциденты.


Дополнительные задачи

Предоставление доступа к Managed ClickStack

  1. Перейдите к своему сервису в консоли ClickHouse Cloud
  2. Откройте раздел SettingsSQL Console Access
  3. Установите соответствующий уровень прав доступа для каждого пользователя:
    • Service Admin → Full Access — требуется для включения оповещений
    • Service Read Only → Read Only — может просматривать данные обсервабилити и создавать дашборды
    • No access — не имеет доступа к HyperDX
Права Read Only в ClickHouse Cloud
Для оповещений требуется доступ администратора

Чтобы включить оповещения, как минимум один пользователь с правами Service Admin (соответствует Full Access в выпадающем списке SQL Console Access) должен хотя бы один раз войти в HyperDX. При этом в базе данных создаётся выделенный пользователь, выполняющий запросы для оповещений.

Использование ClickStack с вычислительными ресурсами только для чтения

Веб-интерфейс ClickStack может полностью работать на сервисе ClickHouse Cloud только для чтения. Это рекомендуемая конфигурация, если вы хотите изолировать нагрузки на ингестию и выполнение запросов.

Как ClickStack выбирает вычислительные ресурсы

Интерфейс ClickStack всегда подключается к сервису ClickHouse, из которого он был запущен в консоли ClickHouse Cloud.

Это означает:

  • Если вы открываете ClickStack из сервиса только для чтения (read-only), все запросы, выполняемые интерфейсом ClickStack, будут выполняться на соответствующих вычислительных ресурсах только для чтения.
  • Если вы открываете ClickStack из сервиса с поддержкой чтения и записи (read-write), ClickStack будет использовать связанные с ним вычислительные ресурсы.

Для обеспечения режима только для чтения (read-only) не требуется дополнительная конфигурация внутри ClickStack.

Чтобы запустить ClickStack на вычислительных ресурсах в режиме только для чтения:

  1. Создайте или выберите сервис ClickHouse Cloud в warehouse, настроенный в режиме только для чтения.
  2. В консоли ClickHouse Cloud выберите этот read-only сервис.
  3. Запустите ClickStack из левого навигационного меню.

После запуска пользовательский интерфейс ClickStack автоматически подключится к этому сервису только для чтения.

Добавление дополнительных источников данных

ClickStack нативно интегрирован с OpenTelemetry, но не ограничивается только им — при необходимости вы можете использовать собственные схемы таблиц.

Ниже описано, как можно добавить дополнительные источники данных помимо тех, которые настраиваются автоматически.

Использование схем OpenTelemetry

Если вы используете OTel collector для создания базы данных и таблиц в ClickHouse, сохраните все значения по умолчанию в форме создания источника, заполнив поле Table значением otel_logs — для создания источника логов. Все остальные настройки должны определяться автоматически, после чего вы сможете нажать Save New Source.

Источник данных ClickHouse Cloud HyperDX

Чтобы создать источники для трейсов и метрик OTel, выберите Создать Новый Источник в верхнем меню.

ClickStack: создание нового источника

Здесь выберите требуемый тип источника, а затем соответствующую таблицу, например, для трейсов выберите таблицу otel_traces. Все настройки должны определяться автоматически.

ClickStack: создание источника трейсов
Корреляция источников

Обратите внимание, что разные источники данных в ClickStack — такие как логи и трейсы — можно коррелировать друг с другом. Чтобы это включить, необходима дополнительная конфигурация для каждого источника. Например, в источнике логов вы можете указать соответствующий источник трейсов и наоборот — в источнике трейсов. Подробнее см. раздел "Коррелированные источники".

Использование пользовательских схем

Пользователи, которые хотят подключить ClickStack к существующему сервису с данными, могут настроить базу данных и таблицы соответствующим образом. Настройки будут автоматически определены, если таблицы соответствуют схемам OpenTelemetry для ClickHouse.

При использовании собственной схемы рекомендуется создать источник Logs и убедиться, что указаны все необходимые поля — подробности см. в разделе "Log source settings".

Поддержка типа JSON

Beta feature. Learn more.
Beta Feature - not production ready

Поддержка типа JSON в ClickStack находится в статусе бета-версии. Хотя сам тип JSON готов к промышленной эксплуатации в ClickHouse 25.3+, его интеграция в ClickStack всё ещё активно разрабатывается и может иметь ограничения, изменяться в будущем или содержать ошибки.

Поддержка типа JSON в ClickStack доступна в статусе бета-версии, начиная с версии 2.0.4.

О преимуществах этого типа см. раздел Преимущества типа JSON.

Чтобы включить поддержку типа JSON, вам необходимо задать следующие переменные окружения:

  • OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' — включает поддержку в OTel collector, гарантируя, что схемы создаются с использованием типа JSON.
  • BETA_CH_OTEL_JSON_SCHEMA_ENABLED=true (только ClickStack Open Source) — включает поддержку в приложении ClickStack UI, позволяя выполнять запросы к данным JSON.

Кроме того, вам следует связаться с support@clickhouse.com, чтобы убедиться, что поддержка JSON включена в вашем сервисе ClickHouse Cloud.