> ## 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.

# Удалённый демо-набор данных

> Начало работы с ClickStack и удалённым демо-набором данных

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>;
};

**В этом руководстве предполагается, что вы развернули ClickStack с открытым исходным кодом, следуя [инструкциям для образа all-in-one](/docs/ru/clickstack/getting-started/oss) или [Local Mode Only](/docs/ru/clickstack/deployment/local-mode-only), и завершили первоначальное создание пользователя. Либо можно пропустить всю локальную настройку и просто подключиться к нашей хостинговой демоверсии ClickStack [play-clickstack.clickhouse.com](https://play-clickstack.clickhouse.com), в которой используется этот набор данных.**

В этом руководстве используется пример набора данных, размещённый в общедоступной Песочнице ClickHouse по адресу [sql.clickhouse.com](https://sql.clickhouse.com), к которому можно подключиться из локально развернутого ClickStack.

<Warning>
  **Не поддерживается в Управляемом ClickStack**

  Удалённые базы данных не поддерживаются при использовании Управляемого ClickStack. Поэтому этот набор данных также не поддерживается.
</Warning>

Он содержит примерно 40 часов данных, собранных в версии официального демо OpenTelemetry (OTel) для ClickHouse. Эти данные каждую ночь воспроизводятся заново, а временные метки сдвигаются под текущее временное окно, что позволяет пользователям изучать поведение системы с помощью встроенных в HyperDX логов, трассировок и метрик.

<Info>
  **Различия в данных**

  Поскольку набор данных каждый день воспроизводится с полуночи, точные визуализации могут различаться в зависимости от того, когда вы открываете демо.
</Info>

<div id="demo-scenario">
  ## Демонстрационный сценарий
</div>

В этой демонстрации мы разбираем инцидент, связанный с интернет-магазином, который продает телескопы и аксессуары к ним.

Команда поддержки клиентов сообщила, что у пользователей возникают проблемы с оплатой при оформлении заказа. Проблема была передана команде Site Reliability Engineering (SRE) для расследования.

С помощью HyperDX команда SRE проанализирует журналы, трассировки и метрики, чтобы диагностировать и устранить проблему, а затем изучит данные сеанса, чтобы проверить, соответствуют ли их выводы фактическому поведению пользователей.

<div id="otel-demo">
  ## Демо OpenTelemetry
</div>

В этом демо используется [форк официального демо OpenTelemetry, поддерживаемый ClickStack](https://github.com/ClickHouse/opentelemetry-demo).

<div id="demo-architecture">
  ### Архитектура демо
</div>

Демо состоит из микросервисов, написанных на разных языках программирования, которые взаимодействуют друг с другом по gRPC и HTTP, а также генератора нагрузки, использующего Locust для имитации пользовательского трафика. Оригинальный исходный код этого демо был изменён, чтобы использовать [инструментирование ClickStack](/docs/ru/clickstack/ingesting-data/sdks/index).

<Frame>
  <img src="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/architecture.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=4d6aa3c2f961c03b0c6ee2e0e2a9647c" alt="Архитектура" width="2180" height="2282" data-path="images/use-cases/observability/hyperdx-demo/architecture.webp" />
</Frame>

*Источник: [https://opentelemetry.io/docs/demo/architecture/](https://opentelemetry.io/docs/demo/architecture/)*

Дополнительные сведения о демо можно найти здесь:

* [документация OpenTelemetry](https://opentelemetry.io/docs/demo/)
* [форк, поддерживаемый ClickStack](https://github.com/ClickHouse/opentelemetry-demo)

<div id="demo-steps">
  ## Шаги демонстрации
</div>

**В этой демонстрации мы настроили сбор телеметрии с помощью [ClickStack SDKs](/docs/ru/clickstack/ingesting-data/sdks/index), развернули сервисы в Kubernetes и также собрали оттуда метрики и журналы.**

<Steps>
  <Step title="Подключитесь к демо-серверу" id="connect-to-the-demo-server">
    <Info>
      **Только локальный режим**

      Этот шаг можно пропустить, если при развертывании в локальном режиме вы нажали `Connect to Demo Server`. В этом режиме к именам источников будет добавляться префикс `Demo_`, например `Demo_Logs`
    </Info>

    Перейдите в `Team Settings` и нажмите `Edit` у `Local Connection`:

    <Image img="https://mintcdn.com/private-7c7dfe99/0q34g_AjISMsyr4Q/images/use-cases/observability/edit_connection.webp?fit=max&auto=format&n=0q34g_AjISMsyr4Q&q=85&s=bbe2967c61d5b6e4c081ca69cd8a0d4c" alt="Редактирование подключения" size="lg" width="3600" height="1852" data-path="images/use-cases/observability/edit_connection.webp" />

    Переименуйте подключение в `Demo` и заполните следующую форму, указав сведения о подключении к демо-серверу:

    * `Connection Name`: `Demo`
    * `Host`: `https://sql-clickhouse.clickhouse.com`
    * `Username`: `otel_demo`
    * `Password`: оставьте пустым

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/edit_demo_connection.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=2e4afa2b648580a932fd17317fd257d0" alt="Редактирование демо-подключения" size="lg" width="3600" height="1852" data-path="images/use-cases/observability/hyperdx-demo/edit_demo_connection.webp" />
  </Step>

  <Step title="Измените источники" id="modify-sources">
    <Info>
      **Только для локального режима**

      Этот шаг можно пропустить, если при развертывании в Local Mode вы нажали `Connect to Demo Server`. В этом режиме к источникам будет добавляться префикс `Demo_`, например `Demo_Logs`
    </Info>

    Прокрутите вверх до `Sources` и измените каждый из источников — `Logs`, `Traces`, `Metrics` и `Sessions` — так, чтобы они использовали базу данных `otel_v2`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/edit_demo_source.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=5029216f40114d7602258a9122c28a90" alt="Редактирование демонстрационного источника" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/edit_demo_source.webp" />

    <Note>
      Возможно, потребуется перезагрузить страницу, чтобы в каждом источнике отображался полный список баз данных.
    </Note>
  </Step>

  <Step title="Измените временной диапазон" id="adjust-the-timeframe">
    Настройте временной диапазон так, чтобы отображались все данные за предыдущий `1 day`, используя селектор времени в правом верхнем углу.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_2.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=01151c3a3155f2d9cdf62a5f50be09c9" alt="Шаг 2" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_2.webp" />

    Вы можете заметить небольшое изменение в количестве ошибок на столбчатой диаграмме в разделе Overview: в нескольких идущих подряд столбцах красная часть немного увеличится.

    <Note>
      Расположение столбцов будет различаться в зависимости от того, когда вы выполняете запрос к набору данных.
    </Note>
  </Step>

  <Step title="Отфильтруйте только ошибки" id="filter-to-errors">
    Чтобы выделить ошибки, используйте фильтр `SeverityText` и выберите `error`, чтобы отображались только записи уровня error.

    Ошибка должна стать более заметной:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_3.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=2d06e2a9b54a2057f428dd15fb81203d" alt="Шаг 3" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_3.webp" />
  </Step>

  <Step title="Выявите шаблоны ошибок" id="identify-error-patterns">
    С помощью возможности Clustering в HyperDX вы можете автоматически выявлять ошибки и группировать их в осмысленные шаблоны. Это ускоряет анализ при работе с большими объёмами логов и трейсов. Чтобы использовать эту возможность, выберите `Шаблоны событий` в меню `Режим анализа` на левой панели.

    Кластеры ошибок показывают проблемы, связанные с неуспешными платежами, в том числе шаблон с названием `Failed to place order`. Дополнительные кластеры также указывают на проблемы со списанием средств с карт и на переполненные кэши.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_4.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=328bfc9496123f380d4341accbeef9f4" alt="Шаг 4" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_4.webp" />

    Обратите внимание, что эти кластеры ошибок, вероятно, связаны с разными сервисами.
  </Step>

  <Step title="Проанализируйте шаблон ошибки" id="explore-error-pattern">
    Нажмите на наиболее заметный кластер ошибок, который коррелирует с зарегистрированной у нас проблемой, из-за которой пользователи могут завершать оплату: `Failed to place order`.

    После этого отобразится список всех случаев этой ошибки, связанных с сервисом `frontend`:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_5.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=2c68870e70018a99acfdb5b695fecff9" alt="Шаг 5" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_5.webp" />

    Выберите любую из найденных ошибок. Подробно отобразятся метаданные журналов. Просмотр разделов `Overview` и `Column Values` указывает на проблему со списанием средств с карт из-за кэша:

    `failed to charge card: could not charge the card: rpc error: code = Unknown desc = Visa cache full: cannot add new item.`

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_6.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=16f924302656e4ea844c2f4eafbc4834" alt="Шаг 6" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_6.webp" />
  </Step>

  <Step title="Ознакомьтесь с инфраструктурой" id="explore-the-infrastructure">
    Мы выявили ошибку, связанную с кэшем, которая, вероятно, вызывает сбои при оплате. Теперь нужно определить, где именно возникает эта проблема в нашей микросервисной архитектуре.

    Учитывая проблему с кэшем, имеет смысл проверить базовую инфраструктуру — возможно, в связанных подах есть проблемы с памятью? В ClickStack журналы и метрики объединены и отображаются в контексте, что позволяет быстрее найти первопричину.

    Выберите вкладку `Infrastructure`, чтобы просмотреть метрики, связанные с базовыми подами сервиса `frontend`, и расширьте временной диапазон до `1d`:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_7.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=5a28e31ae8720d2df186998667b84c54" alt="Шаг 7" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_7.webp" />

    Похоже, проблема не связана с инфраструктурой — за этот период метрики заметно не менялись ни до, ни после ошибки. Закройте вкладку `Infrastructure`.
  </Step>

  <Step title="Изучите трейс" id="explore-a-trace">
    В ClickStack трейсы также автоматически коррелируются и с журналами, и с метриками. Давайте рассмотрим трейс, связанный с выбранным журналом, чтобы определить, какой сервис за это отвечает.

    Выберите `Trace`, чтобы визуализировать связанный трейс. Прокрутив открывшееся представление вниз, можно увидеть, как HyperDX визуализирует распределённый трейс между микросервисами, связывая спаны в каждом сервисе. Платёжный процесс явно затрагивает несколько микросервисов, включая те, которые отвечают за оформление заказа и конвертацию валют.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_8.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=ac043a86e611d1df395942057e0cdd08" alt="Шаг 8" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_8.webp" />

    Прокрутив представление до самого низа, мы увидим, что ошибку вызывает сервис `payment`, после чего она распространяется обратно вверх по цепочке вызовов.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_9.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=1f0b34a4a30f3886af3a72e91a36f285" alt="Шаг 9" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_9.webp" />
  </Step>

  <Step title="Поиск трассировок" id="searching-traces">
    Мы установили, что пользователи не могут завершить покупки из-за проблемы с кэшем в сервисе payment. Давайте подробнее изучим трассировки этого сервиса, чтобы понять первопричину.

    Переключитесь в основное представление Search, выбрав `Search`. Смените источник данных на `Traces` и выберите представление `Results table`. **Убедитесь, что временной диапазон по-прежнему охватывает последний день.**

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_10.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=c9c219ac88089bdf10025447d4834373" alt="Шаг 10" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_10.webp" />

    В этом представлении показаны все трассировки за последний день. Мы знаем, что проблема возникает в нашем сервисе payment, поэтому примените к `ServiceName` фильтр `payment`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_11.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=3e9ea0e42be919c436d5e589225f40bb" alt="Шаг 11" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_11.webp" />

    Если применить к трассировкам кластеризацию событий, выбрав `Шаблоны событий`, мы сразу увидим проблему с кэшем в сервисе `payment`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_12.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=0e89b04d68b5e4a039a0abc45be9ccb6" alt="Шаг 12" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_12.webp" />
  </Step>

  <Step title="Просмотрите инфраструктуру, связанную с трейсом" id="explore-infrastructure-for-a-trace">
    Перейдите в представление результатов, нажав `Results table`. Отфильтруйте записи с ошибками с помощью фильтра `StatusCode` и значения `Error`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_13.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=817a9b5fb283fcf91470e5348054c0b5" alt="Шаг 13" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_13.webp" />

    Выберите ошибку `Error: Visa cache full: cannot add new item.`, перейдите на вкладку `Infrastructure` и расширьте временной диапазон до `1d`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_14.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=8f5b2b1fc31c200afd562ba4b3660fde" alt="Шаг 14" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_14.webp" />

    Сопоставив трейсы с метриками, видно, что потребление памяти и CPU сервисом `payment` выросло, а затем упало до `0` (вероятно, из-за перезапуска пода), что указывает на проблемы с ресурсами, вызванные переполнением cache. Можно ожидать, что это повлияло на время обработки платежей.
  </Step>

  <Step title="Event deltas для более быстрого устранения проблем" id="event-deltas-for-faster-resolution">
    Event Deltas помогают выявлять аномалии, связывая изменения производительности или уровня ошибок с конкретными подмножествами данных, что позволяет быстрее находить первопричину.

    Хотя мы знаем, что у сервиса `payment` есть проблема с кэшем, из-за которой растёт потребление ресурсов, мы ещё не до конца выявили первопричину.

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

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_15.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=0790c7966e3f9af2efb7c733c46f88cb" alt="Шаг 15" size="lg" width="2559" height="1240" data-path="images/use-cases/observability/hyperdx-demo/step_15.webp" />

    Удалите фильтр ошибок и выберите `Event Deltas` в левом меню `Analysis Mode`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_16.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=e8c8231f259ead8df3f824aab21eea5e" alt="Шаг 16" size="lg" width="2560" height="1097" data-path="images/use-cases/observability/hyperdx-demo/step_16.webp" />

    Верхняя панель показывает распределение по длительности, где цвета обозначают плотность событий (количество спанов). Обычно стоит исследовать события, находящиеся вне основной концентрации.

    Если выбрать события с длительностью больше `1ms` и применить фильтр `Filter by selection`, можно проанализировать различия между "обычными" событиями и группой высокой плотности спанов с длительностью около \~0ms:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_17.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=9b80c09839a0ad955a882f355812ed1c" alt="Шаг 17" size="lg" width="2558" height="1288" data-path="images/use-cases/observability/hyperdx-demo/step_17.webp" />

    После анализа этого подмножества данных видно, что спаны "background" вне выделения — это в основном транзакции visa, связанные с ответами 0ms из-за ошибок кэша.
  </Step>

  <Step title="Использование диаграмм для большей наглядности" id="using-charts-for-more-context">
    В ClickStack можно строить графики по любым числовым значениям из журналов, трейсов или метрик, чтобы получить больше контекста.

    Мы установили следующее:

    * Проблема связана с сервисом payment
    * Кэш переполнен
    * Это привело к росту потребления ресурсов
    * Из-за этой проблемы платежи Visa не завершались — или, по крайней мере, завершались очень долго.

    <br />

    Выберите `Chart Explorer` в левом меню. Заполните следующие поля, чтобы построить график времени, которое требуется на завершение платежей:

    * `Data Source`: `Traces`
    * `Metric`: `Maximum`
    * `SQL Column`: `Duration`
    * `Where`: `ServiceName: payment`
    * `Timespan`: `Last 1 day`

    <br />

    Нажатие `▶️` покажет, как со временем ухудшалась производительность обработки платежей.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_18.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=20c9082fb16f347cbba6bfbc7769b350" alt="Шаг 18" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_18.webp" />

    Если задать `Group By` как `SpanAttributes['app.payment.card_type']` (просто введите `card` для автодополнения), можно увидеть, как производительность сервиса для транзакций Visa ухудшилась по сравнению с Mastercard:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_19.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=f45208fc8ff343b721342490c8324b27" alt="Шаг 19" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_19.webp" />

    Обратите внимание: после возникновения ошибки ответы возвращаются за `0s`.
  </Step>

  <Step title="Дополнительная информация по изучению метрик" id="exploring-metrics-for-more-context">
    Наконец, давайте отобразим размер кэша как метрику, чтобы увидеть, как он менялся со временем, и тем самым получить больше контекста.

    Заполните следующие значения:

    * `Data Source`: `Metrics`
    * `Metric`: `Maximum`
    * `SQL Column`: `visa_validation_cache.size (gauge)` (для автодополнения просто введите `cache`)
    * `Where`: `ServiceName: payment`
    * `Group By`: `<empty>`

    Мы видим, что размер кэша рос в течение 4–5 часов (вероятно, после развертывания), прежде чем достиг максимального значения `100,000`. По данным `Sample Matched Events` видно, что наши ошибки коррелируют с тем, что кэш достигает этого предела, после чего его размер фиксируется как `0`, а ответы также начинают возвращаться за `0s`.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_20.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=b9505dd5d0103e9881bfd4405c80abf5" alt="Шаг 20" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_20.webp" />

    В итоге, исследовав журналы, трейсы и, наконец, метрики, мы пришли к следующим выводам:

    * Проблема связана с сервисом payment
    * Изменение в поведении сервиса, вероятно вызванное развертыванием, привело к медленному росту кэша visa в течение 4–5 часов — до максимального размера `100,000`.
    * Это вызвало рост потребления ресурсов по мере увеличения кэша — вероятно, из-за неудачной реализации
    * По мере роста кэша производительность платежей Visa ухудшалась
    * Достигнув максимального размера, кэш начал отклонять платежи и сообщать, что его размер равен `0`.
  </Step>

  <Step title="Работа с сеансами" id="using-sessions">
    Сеансы позволяют воспроизводить действия пользователя, наглядно показывая, как произошла ошибка с его точки зрения. Хотя их обычно не используют для поиска первопричины, они полезны для подтверждения проблем, о которых сообщают в службу поддержки, и могут служить отправной точкой для более глубокого расследования.

    В HyperDX сеансы связаны с трассировками и журналами, что дает полное представление о первопричине.

    Например, если служба поддержки передает email пользователя, столкнувшегося с проблемой при оплате, `Ronny.Windler@gmail.com`, — часто эффективнее начать с его сеанса, чем сразу искать по журналам или трассировкам.

    Перейдите на вкладку `Client Sessions` в левом меню, предварительно убедившись, что в качестве источника данных выбрано `Sessions`, а временной период установлен на `Last 1 day`:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_21.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=5900432299756000fc1b28f5215edaad" alt="Шаг 21" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_21.webp" />

    Найдите `SpanAttributes.userEmail: Ronny.Windler`, чтобы найти сеанс нашего клиента. При выборе сеанса слева отобразятся события браузера и связанные спаны этого сеанса, а справа — воспроизведенная картина действий пользователя в браузере:

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_22.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=eb519943673b654f07010094fc9ea67d" alt="Шаг 22" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_22.webp" />
  </Step>

  <Step title="Воспроизведение сеансов" id="replaying-sessions">
    Сеансы можно воспроизводить, нажимая кнопку ▶️. Переключение между `Highlighted` и `All Events` позволяет менять уровень детализации спанов: в первом режиме выделяются ключевые события и ошибки.

    Если прокрутить список спанов до конца, можно увидеть ошибку `500`, связанную с `/api/checkout`. Нажатие кнопки ▶️ для этого конкретного спана перемещает воспроизведение к этой точке сеанса, позволяя нам подтвердить впечатления клиента: похоже, что оплата просто не работает, и при этом никакая ошибка не отображается.

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_23.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=d8c8c1176ed6cc2153ab7c64f46a05d3" alt="Шаг 23" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_23.webp" />

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

    <Image img="https://mintcdn.com/private-7c7dfe99/xE8TEsdF6028Tf3x/images/use-cases/observability/hyperdx-demo/step_24.webp?fit=max&auto=format&n=xE8TEsdF6028Tf3x&q=85&s=7b2ab8374676b7850f65ed49c71a844b" alt="Шаг 24" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-demo/step_24.webp" />
  </Step>
</Steps>
