Size: a a a

Яндекс.Диалоги (сообщество разработчиков)

2020 April 28

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
Dmitry Nikolaev
Ну вот потому и не исправить, то чего не увидеть.
Ошибки тикают, а сделать ничего нельзя. Остаётся просто наблюдать.
Запросите у саппорта user_id и точное время, когда была 5хх. Это должно помочь с дебагом.
источник

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
У меня тоже на графиках много таймаутов, которых быть не должно. Нужно разбираться с этим..
источник

DN

Dmitry Nikolaev in Яндекс.Диалоги (сообщество разработчиков)
Vitaliy Potapov
У меня тоже на графиках много таймаутов, которых быть не должно. Нужно разбираться с этим..
Часть из них связано с багом, о которой я писал выше.
Сегодня подумал, решил и создал об этом карточку на доске:
https://yaboard.com/task/5ea7cb1ae2356e6add018070
yaBoard.com
Карточка: Баг: Проблема "диалог не отвечает"
Взаимодействуем с диалогом.   Затем, если это, например, мобильное приложение, закрываем окно чата с диалогом, ну или просто сворачиваем приложение не выходя из навыка.  Затем, после какого-то периода времени (зачастую длинного, т.е. это часы, а не минуты) открываем приложение.  Запускаем "чаты" и возвращаемся к навыку. Вместо продолжения диалога с навыком слышим "диалог не отвечает".  Хотя это не так. Навык не только ответил, но и ответил очень быстро.  Довольно долго наблюдал за подобным и в итоге обнаружил, что происходит вот что:  Сначала в навык прилетает новая сессия (новый session_id), навык отвечает, но это все равно приводит к "диалог не отвечает".   А затем, при повторном запросе пользователя к навыку, прилетает запрос, но session_id предыдущий,  т.е. который уже был ранее и в нем даже session.new равен false.  Так что я почти уверен, что причина проблемы в том, что при повторной активации (после длительного простоя) чата с навыком  диалоги/приложение ждут ответ на другой номер сессии (старую сессию).…
источник

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
Возможно эти запросы до nginx не доходят, как выше писал Андрей. Поэтому только по user_id/session_id можно проверить
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Vitaliy Potapov
У меня тоже на графиках много таймаутов, которых быть не должно. Нужно разбираться с этим..
в процентах видимо 0.002 ?! По мне так эти провалы в сети неизбежны
источник

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
в процентах видимо 0.002 ?! По мне так эти провалы в сети неизбежны
Откуда цифра 0.002?
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Vitaliy Potapov
Откуда цифра 0.002?
предположение по своим графикам :)
источник

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
А, ну давай я тож посмотрю.
источник

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
Т.е. у тебя таймаут на 0.002% от всех запросов?
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Vitaliy Potapov
Т.е. у тебя таймаут на 0.002% от всех запросов?
0.02% если в консоле... Это когда мне кажется что на сервере нет проблем...
очень редко больше бывает (ну и эти проблемы я ловлю и сам), но выше 0.5% не видел на графиках
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Vitaliy Potapov
Т.е. у тебя таймаут на 0.002% от всех запросов?
с 1 провалом на 500 запросов видимо жить можно... Но по таймаутам в любом случае ничего не сделать, канал забивается иногда и ничего не сделать с этим. Отдельный то на вдс никто не кинет :)
Да и функции в облаке, вероятно тоже не на 100% могут выдать вовремя
источник

EK

Evgeny Kruglov in Яндекс.Диалоги (сообщество разработчиков)
канал можно проверить mtr например
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Evgeny Kruglov
канал можно проверить mtr например
а он покажет внешнюю сеть?
источник

EK

Evgeny Kruglov in Яндекс.Диалоги (сообщество разработчиков)
До впс на котором стоит приложение нужно запустить mtr и подождать час - и посмотреть потери
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Evgeny Kruglov
До впс на котором стоит приложение нужно запустить mtr и подождать час - и посмотреть потери
я ж не провайдер :) кто мне даст
источник

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
с 1 провалом на 500 запросов видимо жить можно... Но по таймаутам в любом случае ничего не сделать, канал забивается иногда и ничего не сделать с этим. Отдельный то на вдс никто не кинет :)
Да и функции в облаке, вероятно тоже не на 100% могут выдать вовремя
В я.функциях свой мониторинг, на котором я столько таймаутов невижу, сколько мониторинг диалогов показывает
источник

EK

Evgeny Kruglov in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
я ж не провайдер :) кто мне даст
ну у вас есть внещний ip?
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Evgeny Kruglov
ну у вас есть внещний ip?
есть руг-ру у которого купил впс. Разумеется он на каждый вдс/впс личный канал не выдаст
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Evgeny Kruglov
ну у вас есть внещний ip?
Четкого понимания как это все работает у меня нет... но явно проводок в дата центр идет штук 10, а серверов внутри ДЦ десятки тысяч... У меня в рб сервер так там вообще дают только 20 мбит канал... Навыки по таймауту падали на 10% запросов
источник

DN

Dmitry Nikolaev in Яндекс.Диалоги (сообщество разработчиков)
А кто-то в курил как работает, после весеннего обновления, сопоставления ответа навыка к запросы пользователя.
По новой документации получается, что session в ответе от навыка может полностью отсутствовать.
На видео, где Сергей Купцов рассказывает о нововведениях есть момент (11:07) где он демонстрирует код и говорит фразу "мы полностью поддерживаем API диалогов". В коде видно, что блок session присутствует.
Я сейчас вношу у себя изменения, на тему появившихся user.user_id и application_application_id и честно говоря очкую удалять из ответа блок session.
Я действительно не очень понимаю, как тогда ответ будет сопоставлен с запросом.
Да и в видео session есть.

Кто-то тут уже удалил блок session из ответов навыка ?
источник