Рейтинг:0

Application Insights не регистрирует все выходные данные модуля ведения журнала

флаг ph

Мы размещаем REST API, написанный на Python, в функциях Azure и используем Ведение журнала следить за ним.

Иногда не все ожидаемые выходные данные отображаются в Application Insights.

Вот пример того, как это должно выглядеть:

2021-10-26T18:44:13Z [Подробно] Отправка идентификатора вызова: 64be8d30-a3ff-41d0-a653-de20c48db85a
2021-10-26T18:44:13Z [Подробно] Идентификатор вызова публикации: 64be8d30-a3ff-41d0-a653-de20c48db85a на workerId: 834c70c0-d3bd-4dab-89b6-c8cb77c2f6a7
2021-10-26T18:44:13Z [Информация] ******************************************* ****************************
2021-10-26T18:44:13Z [Информация] AzureResourceClient инициализирован за: 0 миллисекунд
2021-10-26T18:44:13Z [Информация] Таймер: истекшее время INIT: 228 миллисекунд
2021-10-26T18:44:13Z [Информация] ПРИЗЫВ: 581aa19c-05c3-4e3a-a47b-13c6523c141c
2021-10-26T18:44:13Z [Информация] МЕТОД и URL: ...
2021-10-26T18:44:13Z [Информация] ПОЛЬЗОВАТЕЛЬ И КОМПАНИЯ: ...
2021-10-26T18:44:13Z [Информация] ЗАПРОС КОМПАНИИ: ...
2021-10-26T18:44:13Z [Информация] КОЛЛЕКЦИЯ И ПУНКТ: ...
2021-10-26T18:44:13Z [Информация] АКЦИЯ: ...
2021-10-26T18:44:13Z [Информация] AzureResourceClient, всего выполнено запросов: 2, накоплено x-ms-request-charge: 4,16 (в среднем 2,08 на запрос)
2021-10-26T18:44:13Z [Информация] Таймер: ГЛАВНОЕ истекшее время: 229 миллисекунд
2021-10-26T18:44:13Z [Информация] Выполнено «Functions.main» (успешно, Id = 581aa19c-05c3-4e3a-a47b-13c6523c141c, продолжительность = 246 мс)

А вот пример усеченного вывода:

2021-10-26T18:44:13Z [Подробно] Отправка идентификатора вызова: fd430857-1f0c-47c9-9ec8-47dcb17c767c
2021-10-26T18:44:13Z [Подробно] Идентификатор вызова публикации: fd430857-1f0c-47c9-9ec8-47dcb17c767c на workerId:834c70c0-d3bd-4dab-89b6-c8cb77c2f6a7
2021-10-26T18:44:13Z [Информация] ******************************************* ****************************
2021-10-26T18:44:13Z [Информация] AzureResourceClient инициализирован за: 0 миллисекунд
2021-10-26T18:44:13Z [Информация] Таймер: истекшее время INIT: 290 миллисекунд
2021-10-26T18:44:13Z [Информация] ПРИЗЫВ: 64be8d30-a3ff-41d0-a653-de20c48db85a

... это оно. Он просто останавливается. Однако вызов API завершается правильно — у нас нет оснований полагать, что произошла ошибка или исключение.

Мы считаем, что проблема, возможно, связана с тем, что стандартный вывод не очищается, а вызывается logging.StreamHandler(поток=sys.stdout).flush() перед возвратом ответа HTTP не имеет никакого эффекта.

Как мы можем гарантировать, что все ожидаемых результатов попадает в Application Insights?

БОНУС: вывод часто задерживается на десятки секунд (в некоторых случаях на несколько минут). Как мы можем гарантировать, что выходные данные журнала будут доступны мгновенно и в порядке выполнения?

Ответить или комментировать

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