> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Корреляция мобильных сеансов bitdrift с трассировками ClickStack

> Коррелируйте мобильные сеансы bitdrift с серверными трассировками в ClickStack, используя контекст трассировки OpenTelemetry без экспорта телеметрии с мобильных устройств

export const PartnerBadge = () => {
  return <div className="PartnerBadge">
            <div className="PartnerBadgeIcon">
                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <polyline points="12.5 9.5 10 12 6 11 2.5 8.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <polyline points="4.54 4.41 8 3.5 11.46 4.41" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M2.15,3.78 L0.55,6.95 A0.5,0.5 0,0,0 0.77,7.62 L2.5,8.5 L4.54,4.41 L2.82,3.55 A0.5,0.5 0,0,0 2.15,3.78 Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M13.5,8.5 L15.23,7.62 A0.5,0.5 0,0,0 15.45,6.95 L13.85,3.78 A0.5,0.5 0,0,0 13.18,3.55 L11.46,4.41 Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M11.5,4.5 L9,4.5 L6.15,7.27 A0.5,0.5 0,0,0 6.24,8.05 C7.33,8.74 8.81,8.72 10,7.5 L12.5,9.5 L13.5,8.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <polyline points="7.75 13.5 5.15 12.85 3.5 11.67" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                </svg>
            </div>
            Партнерская интеграция
        </div>;
};

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<PartnerBadge />

<Info>
  **Кратко**

  В этом руководстве показано, как коррелировать мобильные сеансы bitdrift с backend-трассировками, уже хранящимися в ClickStack, с помощью контекста трассировки OpenTelemetry. Мобильная телеметрия остаётся в bitdrift — в ClickStack ничего не экспортируется. Вы узнаете, как:

  * Включить интеграции bitdrift для сетевых запросов и трассировки в мобильных приложениях
  * Включить трассировку для своего тенанта bitdrift и настроить его глубокие ссылки на экземпляр ClickStack
  * Перейти по идентификатору трассировки из мобильного сеанса bitdrift в интерфейс ClickStack (HyperDX)

  bitdrift собирает подробную телеметрию на мобильном устройстве без выборки; ClickStack хранит и запрашивает backend-трассировку, когда запрос поступает в ваши сервисы, инструментированные OpenTelemetry.

  Требуемое время: 10–15 минут
</Info>

<div id="what-is-bitdrift">
  ## Что такое bitdrift?
</div>

[bitdrift](https://bitdrift.io/) — динамическая платформа обсервабилити, созданная специально для мобильных приложений. Она состоит из трех основных компонентов:

* **[Capture SDK](https://bitdrift.io/feature/performance-centric)** — легковесная кроссплатформенная библиотека на Rust с тонкими платформозависимыми обертками, которая записывает телеметрию в кольцевой буфер фиксированного размера на устройстве, а не сразу отправляет ее в потоковом режиме.
* **Плоскость управления**, которая поддерживает постоянное двунаправленное подключение к каждому клиенту и передает новую конфигурацию в реальном времени, определяя, какие данные собираются и загружаются.
* **Платформа bitdrift**, где рабочие процессы, временные шкалы сеансов, графики, issue и alerts преобразуют телеметрию мобильных приложений в полезную информацию, доступную через веб-интерфейс, CLI, AI agents и публичный API.

bitdrift хранит телеметрию мобильных приложений на периферии, пока она не потребуется, поэтому команды могут получить полный сеанс без выборки, приведший к сбою или проблеме с производительностью, вместо того чтобы работать с фиксированным, заранее отобранным набором сигналов. Платформа bitdrift Capture доступна как SaaS, размещаемый bitdrift, или как развертывание в собственной Cloud (либо в бакете) в вашем аккаунте AWS.

<Image img="https://mintcdn.com/private-7c7dfe99/3mS6b88R0boYl1UC/images/clickstack/bitdrift/bitdrift-user-journey-dashboard.png?fit=max&auto=format&n=3mS6b88R0boYl1UC&q=85&s=def374455b33795e2574aa193e30ed41" alt="Панель мониторинга bitdrift User Journey, показывающая пути к ANR" size="lg" width="2440" height="1160" data-path="images/clickstack/bitdrift/bitdrift-user-journey-dashboard.png" />

*Панель мониторинга bitdrift User Journey, показывающая пути пользователей к ANR.*

<div id="why-bitdrift-clickstack">
  ## Почему bitdrift + ClickStack?
</div>

ClickStack предоставляет инженерным командам решение для обсервабилити на базе ClickHouse, которое собирает, хранит и позволяет запрашивать данные из backend-сервисов, веб-интерфейсов и инфраструктуры. bitdrift расширяет эту основу на мобильные устройства, где возникает множество самых сложных проблем в продакшне.

* **bitdrift показывает, что происходило на устройстве**: действия пользователя, состояние приложения, сетевые запросы, журналы, ошибки, аварийные завершения, показатели производительности и контекст сеанса.
* **ClickStack показывает, что происходило после того, как запрос достиг backend-сервисов**: распределённые трассировки, зависимости сервисов, журналы, метрики, операции с базой данных и поведение инфраструктуры.
* **Контекст трассировки OpenTelemetry связывает эти данные.**

Расследование может начаться со сбоя при оформлении заказа, медленной загрузки экрана, ошибки аутентификации или аварийного завершения в bitdrift. От сетевого запроса инженер переходит по идентификатору трассировки в интерфейс ClickStack на базе HyperDX и отслеживает прохождение запроса через backend-сервисы — без необходимости вручную восстанавливать картину по разрозненным временным меткам.

<Tip>
  **Основные выводы**

  * **bitdrift** собирает несэмплированную телеметрию, нативную для мобильных устройств, во всех мобильных приложениях и связывает полученные идентификаторы трассировки с соответствующими backend-трассировками.
  * **ClickStack** хранит и позволяет запрашивать полученные распределённые трассировки в ClickHouse, а также отображает их в HyperDX.
</Tip>

<div id="prerequisites">
  ## Предварительные требования
</div>

* Установленный ClickStack, доступный вашим backend-сервисам: самоуправляемый или в ClickHouse Cloud. См. [Начало работы с ClickStack с открытым исходным кодом](/docs/ru/clickstack/getting-started/oss) или [Начало работы с управляемым ClickStack](/docs/ru/clickstack/getting-started/managed).
* Ваши backend-сервисы должны быть инструментированы с помощью **OpenTelemetry** и отправлять трассировки в ClickStack. См. [Приём данных с OpenTelemetry](/docs/ru/clickstack/ingesting-data/opentelemetry).
* **bitdrift Capture SDK**, интегрированный в мобильное приложение. Инструкции по установке см. в [документации bitdrift SDK](https://docs.bitdrift.io/).
* **Аккаунт bitdrift** с возможностью обратиться в [службу поддержки](https://bitdrift.io/contact-us), чтобы включить трассировку для вашего тенанта (трассировка — экспериментальная возможность, которую bitdrift включает для каждого тенанта отдельно).

<div id="configure-tracing">
  ## Настройка трассировки
</div>

Настройка полностью выполняется на стороне bitdrift и включает три шага:

1. Обратитесь в [службу поддержки bitdrift](https://bitdrift.io/contact-us) с просьбой **включить трассировку для вашего тенанта и настроить глубокие ссылки трассировок на ваш экземпляр ClickStack (HyperDX)**. Настройка глубоких ссылок определяет, куда ведут ссылки **View Trace** в интерфейсе ClickStack; без неё трассировки собираются, но ссылка **View Trace** не отображается.
2. **Включите сетевую интеграцию bitdrift** для вашей платформы, чтобы заголовки трассировки передавались в исходящих запросах.
3. **Добавьте в рабочий процесс действие Start Tracing**, чтобы включить трассировку для нужных сеансов.

Сведения о каждом шаге для конкретных платформ см. в разделе [How bitdrift and ClickStack work together](https://docs.bitdrift.io/product/integration-partners/clickhouse#how-bitdrift-and-clickstack-work-together) документации bitdrift.

После настройки в строках журнала временной шкалы bitdrift и представлениях спанов отображается ссылка **View Trace**, передающая захваченный идентификатор трассировки в интерфейс ClickStack (HyperDX).

<Image img="https://mintcdn.com/private-7c7dfe99/3mS6b88R0boYl1UC/images/clickstack/bitdrift/bitdrift-view-trace.jpg?fit=max&auto=format&n=3mS6b88R0boYl1UC&q=85&s=1fc46073d05ada0d673c6c7e62033576" alt="Трассировка bitdrift со ссылкой на распределённую трассировку в интерфейсе ClickStack" size="lg" width="3977" height="1292" data-path="images/clickstack/bitdrift/bitdrift-view-trace.jpg" />

*Переход по ссылке View Trace из сеанса bitdrift к распределённой трассировке в интерфейсе ClickStack (HyperDX).*

<div id="deployment-flexibility">
  ## Гибкость развертывания
</div>

Интеграция работает как с самоуправляемым ClickStack, так и с ClickHouse Cloud, поскольку не влияет на способ поступления данных в ClickStack. bitdrift не экспортирует мобильную телеметрию в ClickStack: он получает контекст трассировки OpenTelemetry запроса на устройстве и связывает его с backend-трассировкой, которую ваши сервисы с инструментированием OpenTelemetry уже отправляют в ClickStack. Для создания ссылки **View Trace** bitdrift нужен лишь адрес вашего интерфейса ClickStack (HyperDX), поэтому изменения в развертывании ClickStack или его конвейере ингестии не требуются.

<div id="next-steps">
  ## Дальнейшие шаги
</div>

* **Проследите реальное расследование**: от сбоя мобильного приложения или медленного запроса в bitdrift до backend-трассировки в ClickStack
* **Создавайте панели мониторинга** в ClickStack (HyperDX) для backend-сервисов, от которых зависит ваше мобильное приложение
* **Ознакомьтесь с [песочницей bitdrift](https://bitdrift.io/sandbox)**, чтобы понять, как работать с Capture
* **Начните [бесплатный пробный период](https://bitdrift.io/signup)**, чтобы добавить bitdrift в своё мобильное приложение

<div id="read-more">
  ## Подробнее
</div>

* [Документация bitdrift: интеграция с ClickHouse](https://docs.bitdrift.io/product/integration-partners/clickhouse)
* [Начало работы с ClickStack с открытым исходным кодом](/docs/ru/clickstack/getting-started/oss)
* [Приём данных через OpenTelemetry](/docs/ru/clickstack/ingesting-data/opentelemetry)
