Журналы Application Insights отсутствуют или неверны для Функции Azure приложений
Вы можете внимательно отслеживать приложение-функцию через интеграцию между Функции Azure и Application Insights. Кроме того, вы можете использовать Application Insights без какой-либо настраиваемой конфигурации.
Если журналы Application Insights отсутствуют или данные кажутся частичными или неточными, выполните следующие действия, чтобы устранить проблему.
Проверка конфигурации приложения-функции
Перейдите к приложению-функции в портал Azure.
Выберите Диагностика и решение проблем, чтобы открыть Функции Azure диагностика.
В строке поиска введите Проверки конфигурации функций и откройте ее.
Вы увидите диагностический отчет обо всех проверках конфигурации приложения-функции. В частности, для Application Insights выполняются следующие проверки:
Существует только один из следующих параметров подключения:
APPINSIGHTS_INSTRUMENTATIONKEY
Ключ инструментирования Application InsightsAPPLICATIONINSIGHTS_CONNECTION_STRING
ПодключенияДля более стабильного поведения рекомендуется использовать APPLICATIONINSIGHTS_CONNECTION_STRING . Возможность использования
APPINSIGHTS_INSTRUMENTATIONKEY
будет прекращена до 2025 года.
Встроенное
AzureWebJobsDashboard
ведение журнала отключено, как рекомендуется.Выборка включена для Функции Azure телеметрии (включена по умолчанию).
Рекомендация. Приложение-функция должно быть в версии 4, а версия среды выполнения должна быть не менее 4.15.2xx. Это связано с тем, что начиная с этой версии вы можете отслеживать потоки журналов из Функции Azure в службу Application Insights. Отслеживая потоки журналов, можно проверка отсутствующих журналов.
Журналы отсутствуют или частично
Application Insights собирает данные журнала, производительности и ошибок. Конфигурация выборки используется для уменьшения объема телеметрии. Функция выборки включена по умолчанию с параметрами, показанными в следующем примере host.json . Исключенные типы не являются выборкой.
{
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 20,
"excludedTypes": "Request;Exception"
}
}
}
}
Если вы заметили частично отсутствующие журналы, это может произойти из-за выборки. Чтобы определить фактическую частоту выборки, используйте запрос Аналитики, который использует требуемый интервал времени, показанный в следующем фрагменте кода. Если вы заметили TelemetrySavedPercentage
, что для любого типа выборки меньше 100, то этот тип телеметрии выполняется выборка.
union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > todatetime("mm/dd/yyyy hh:mm:ss") and timestamp < todatetime("mm/dd/yyyy hh:mm:ss")
| summarize TelemetrySavedPercentage = 100/avg(itemCount), TelemetryDroppedPercentage = 100-100/avg(itemCount) by bin(timestamp, 1d), itemType
| sort by timestamp asc
Дополнительные сведения см . в статье Сбор, хранение и хранение данных в Application Insights.
Управление объемом и детализацией журналов
Вы можете увеличить или отключить записанные журналы. Для этого можно использовать сочетание уровня журнала и категорий, настроенных в host.json.
Средство ведения журнала Функции Azure включает категорию для каждого журнала. Категория указывает, какая часть кода среды выполнения или код функции создал журнал. Например:
- И
Host.Results
Function.<YOUR_FUNCTION_NAME>
— это некоторые из доступных категорий. - Каждому журналу назначается уровень журнала. Значение указывает относительную важность, например
Warning
илиInformation
.
Дополнительные сведения см. в других доступных категориях и уровнях журналов .
Вы можете настроить, как приложение должно записывать журналы, следуя примеру фрагмента кода:
{
"version": "2.0",
"logging": {
"logLevel": {
"default": "Information", // catch all default, with modifications below for individual categories.
"Function": "Warning", // Warning level from all Functions (except the ones configured below).
"Host.Aggregator": "Trace", // Log all traces in the 'customMetrics' table of (and shown on Metrics/Alerts blade in AI) - use either this or Host.Results
"Host.Results": "Error", // Error and Critical requests are only logged in the 'requests' table of the AI (and shown on Monitor Functions blade in Functions App) - use either this or Host.Aggregator
"Function.Function1": "Information", //Information level logs from Function 1, logged in 'traces', 'dependencies' and 'customMetrics' tables of AI
"Function.Function2.User": "Information" //user code logs from Function2, logged in 'traces' table of AI
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond": 1,
"excludedTypes": "Exception"
}
}
}
}
Чтобы настроить эти значения на уровне параметров приложения (чтобы избежать повторного развертывания при host.json изменения), переопределите определенные host.json значения, создав эквивалентное значение в качестве параметра приложения. Дополнительные сведения см. в разделе Переопределение host.json значений.
Дополнительные примеры подавления журналов см. в разделе functions-log-suppress.
Приложение-функция, интегрированное с виртуальной сетью, не создает журналы
Если приложение-функция интегрировано с виртуальной сетью, необходимо открыть порт 443 для исходящего трафика в брандмауэре сервера, чтобы разрешить пакету SDK для Application Insights или агенту Application Insights отправлять данные на портал по следующим URL-адресам:
- dc.applicationinsights.azure.com
- dc.applicationinsights.microsoft.com
- dc.services.visualstudio.com
- * .in.applicationinsights.azure.com
Дополнительные сведения см. в разделе IP-адреса, используемые Azure Monitor.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.