Перейти к основному содержимому
Версия: Next

Матчинг

Пользователи могут испытывать различные сложности при работе с матчингом. Все типовые обращения можно поделить на 3 категории:

  1. Старт матчинга
  2. Проведение матчинга
  3. Результаты матчинга

Старт матчинга

Проблемы с матчингом как правило формулируются пользователями следующим образом:

  • "Невозможно запустить матчинг"

Возможные причины

  1. Невозможно начать матчинг - кнопка запуска матчинга недоступна
  2. При запуске матчинга падает ошибка

Устранение проблем и поиск причин

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

  1. С какой витринной данной возникли проблемы
  2. Запрашивалась ли эта витрина данных в проект
  3. Помечены ли датасеты в группе матчинга как "Скрытый датасет" или стоит ли напротив датасета восклицательный знак

Невозможно начать матчинг - кнопка запуска матчинга недоступна

Запустить повторный матчинг невозможно по ряду причин:

  1. Витрина данных уже запрошена в проект
  2. В витрине данных используются невалидные датасеты (помеченные как "Скрытый датасет" или напротив датасета стоит восклицательный знак)

В случае если витрина данных уже запрошена в проект, запустить повторный матчинг невозможно. В этом случае рекомендуется создать новую витрину данных.

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

При запуске матчинга падает ошибка

Ошибка при старте матчинга может произойти по нескольким причинам:

  1. С момента создания витрины данных по момент запуска матчинга могли измениться состав датасета или свойства их атрибутов
  2. В случае недоступности RabbitMQ для сервиса Back-end API

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

Если ошибка продолжает воспроизводиться после перезагрузки страницы рекомендуется проверить дашборд Healthcheck мониторинга, чтобы убедиться в полной работоспособности сервиса Back-end API. В случае недоступности RabbitMQ readiness и liveness показатели сервиса будут красными. Следующим шагом необходимо определить является ли проблема массовой, для этого необходимо проверить аналогичные метрики для сервисов использующих RabbitMQ. Если все сервисы использующие RabbitMQ "покраснели" необходимо восстановить работу RabbitMQ. Если другие сервисы использующие RabbitMQ находятся в штатном состоянии, необходимо перезапустить контейнер с сервисом Back-end API. Если после перезагрузки проблема продолжает воспроизводиться необходимо проверить доступность RabbitMQ из контейнера Back-end API для этого обратитесь к вашему сетевому инженеру, администратору kubernetes кластера или разработчику платформы.

Проведение матчинга

При проведении матчинга возможен ряд проблем как с вашей инфраструктурой, так и с инфраструктурой компании с данными которой вы работаете. При подобных проблемах пользователи могут обратиться со следующей формулировкой: "Матчинг висит в статусе "В очереди" или "Обрабатывается" очень долго"

Возможные причины

Для обращений типа: "Матчинг висит в статусе "В очереди" или "Обрабатывается" очень долго" Вероятными причинами могут быть:

  1. Недоступность Анклава
  2. Недоступность RabbitMQ или Back-end API для анклава
  3. Некорректная работа Анклава
  4. Некорректное завершение работы анклава

Для обращений типа: При остановке матчинга падает ошибка вероятными причинами могут быть:

  1. Недоступность Анклава
  2. Отсутствие связи между Анклавом и Back-end API

Устранение проблем и поиск причин

Для решения проблемы рекомендуется уточнить у пользователя:

  1. Как давно был запущен матчинг
  2. Какая витрина данных является проблемной
  3. По какому количеству витрин данных пользователь запросил матчинг

Поскольку Анклав как таковой не имеет веб-интерфейса, его работоспособность можно определить только косвенно (не из интерфейса системы), при

Недоступность Анклава

Такая проблема может происходить только в случаях:

  1. Некорректной работы kubernetes
  2. Нехватки ресурсов (по умолчанию требуется 64GB оперативной памяти)
  3. По причине ошибки кодовой базы
  4. По причине недоступности CAS или ESP

В случае недоступности Анклава, его Healthcheck liveness=0 (красный) необходимо изучить его логи, на предмет критичных ошибок (level=50), перезагрузить под анклава и проверить наличие аналогичных ошибок в логах после перезапуска. Вне зависимости от того решил ли проблему перезапуск Анклава необходимо передать информацию об этом инциденте вашему kubernetes-администратору или разработчику платформы.

Недоступность RabbitMQ или Back-end API для Анклава

Подобные проблемы могут возникать в случаях нестабильной работы kubernetes-кластера или сети kubernetes-кластера. Для того чтобы найти причину проблемы, выполнить восстановительные работы или проконсультировать пользователя, необходимо:

  1. Изучить дашборды HealthCheck на предмет доступности сервиса Back-end API. В случае если была проблема с этим сервисом, Анклав не мог отправить команду Bac-end API для смены статуса, в этом случае рекомендуется запустить процесс матчинга повторно.
  2. Изучить дашборд Easy RabbitMQ (K8S) на предмет наличия сообщений в очереди enclave_tasks.
    1. Если в очереди есть сообщения в ready, но нет сообщений в unacked это означает что Анклав не может получить сообщение из RabbitMQ. В этом случае рекомендуется перезапустить Анклав и сообщить об инциденте вашему администратору kubernetes-кластера и разработчику платформы.
    2. Если в очереди есть сообщения в unacked, значит анклав сейчас обрабатывает это сообщение. В этом случае необходимо изучить логи Анклава на предмет ошибок и появления новых записей лога после ошибки. Если после ошибки новых записей в логе нет, рекомендуется перезапустить анклав, передать лог с ошибкой разработчику платформы или вашему kubernetes-администратору.
    3. Если в очереди есть сообщения в unacked, в логе нет ошибок и судя по логам выполняется обработка данных и Анклав работает в штатном режиме. Никаких действий производить не требуется, ожидайте завершения исполнения задачи.

Некорректная работа Анклава

Все ошибки анклава логируются. В случае возникновения не типовых ошибок они будут записаны в Kibana c log-level=50. В случае если вы встретили ошибку с уровнем 50 в логах Анклава и после этой ошибки не было новых записей лог-сообщений рекомендуется перезапустить Анклав, с целью попытки воспроизведения ошибки (вероятно ошибка носила временны/сетевой характер) и обратиться к разработчику платформы. Вероятнее всего проблема могла возникнуть из-за проблем с кодовой базой после обновления платформы.

Некорректное завершение работы анклава

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

Результаты матчинга

По проблемам с результатами матчинга пользователи могут обратиться со следующими формулировками:

  • "Матчинг дал нулевые результаты" или "В прошлый раз результат был другим"
  • "Матчинг завершился с ошибкой"

Возможные причины

  1. У датасетов нет пересекающихся строк
  2. Возникла техническая проблема с Анклавом компании или Анклавом партнера

Устранение проблем и поиск причин

Для решения проблемы рекомендуется уточнить у пользователя:

  1. Как давно был запущен матчинг
  2. Какая витрина данных является проблемной
  3. По какому количеству витрин данных пользователь запросил матчинг
  4. Где в интерфейсе пользователь видит ошибку
    1. В результате матчинга
    2. Напротив одного из датасетов

У датасетов нет пересекающихся строк

В случае если по результату матчинга, число совпавших строк =0, это означает что между датасетами которые матчились в витрине данных нет общих/совпадающих строк. Если ранее при матчинге таких же датасетов был результат отличный от 0 или просто другой это может означать:

  1. Данные в датасете могли измениться с матчинга давшего не 0 результат / иной результат
  2. Фильтры или атрибуты матчинга проблемной витрины данных отличаются от предыдущей витрины данных

Возникла техническая проблема с Анклавом компании или Анклавом партнера

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

  1. Были изменены данные в ClickHouse
  2. Были использованы не lower case наименования таблиц или полей в ClickHouse
  3. ClickHouse был недоступен
  4. На момент матчинга возникали проблемы с DataService API
  5. На момент матчинга были проблемы с Анклавом партнера

Все эти проблемы могут быть обнаружены в лог-записях анклава в Kibana c level=50

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

Были изменены данные в ClickHouse

Поскольку данные в ClickHouse обновляются не мгновенно может возникнуть ситуация, когда состав полей в ClickHouse был изменен, но в системе эти изменения не отображены. В этом случае необходимо:

  1. Уточнить у пользователя есть ли "скрытые датасеты" в проблемной витрине данных
  2. Уточнить у пользователя если ли витрины данных с восклицательным знаком

Если есть, рекомендуется изменить витрину матчинга или саму таблицу в ClickHouse

Были использованы не lower case наименования таблиц или полей в ClickHouse

Согласно правилам публикации данных все наименования сущностей в ClickHouse (БД, таблицы, поля) должны именоваться в нижнем регистре. В случае если по какой-то причине сущность в ClickHouse будет именоваться иначе, при матчинге запрос упадет с ошибкой. Соответствующее лог-сообщение вы сможете обнаружить в логах Анклава и Dataservice API. В этом случае необходимо изменить наименование поля/таблицы/БД в ClickHouse на наименование в нижнем регистре.

ClickHouse был недоступен

В случае если на момент матчинга ClickHouse был недоступен, матчинг завершится с ошибкой. При возникновении подобных случаев рекомендуется обратиться к администратору вашего DWH для уточнения возможных проблем доступности ClickHouse. В этом кейсе вы обнаружите лог сообщение с ошибкой в логах Анклава и Dataservice API.

На момент матчинга возникали проблемы с DataService API

Поскольку Анклав получает локальные данные от DataService API необходимо убедиться что на время матчинга сервис работал в штатном режиме. Информацию о работоспособности сервиса DataService API возможно получить изучив дашборд мониторинга Healthcheck.

На момент матчинга были проблемы с Анклавом партнера

У ваших партнеров установленна аналогичная версия платформы, действующая по таким=же принципам, как и ваш экземпляр. При матчинге у другой компании могут возникнуть такие-же проблемы, как и на вашем инстансе. Дополнительно необходимо учитывать, что проблема может возникнуть на сетевом уровне, при связи двух анклавов, из-за сетевых проблем канала между Анклавами. В любом случае в интерфейсе системы, в карточке витрины данных напротив проблемного датасета будет отображен статус "ошибка". В логах Анклава будет отображена соответствующая ошибка. При возникновении такой ситуации рекомендуется проверить доступность канала между вашими инстансами и связаться с партнером для уточнения возможных проблем с их инстансом.