Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Облачные службы, Виртуальные машины, Масштабируемые наборы виртуальных машин и службы Fabric используют расширение Диагностика Azure для сбора данных. Диагностика Azure отправляет данные в таблицы служба хранилища Azure. Однако вы также можете передать все или подмножество данных в другие расположения с помощью расширения Диагностика Azure 1.5 или более поздней версии.
В этой статье описывается, как отправлять данные из расширения Диагностика Azure в Application Insights.
Это важно
Расширение Диагностика Azure было устарело 31 марта 2026 года и больше не поддерживается. Новые развертывания расширения не рекомендуется. Чтобы обеспечить постоянную поддержку и доступ к новым функциям, перейдите к альтернативным решениям, рекомендуемыми здесь.
Описание конфигурации системы диагностики
Расширение диагностики Azure версии 1.5 ввело понятие синков, которые являются дополнительными местами хранения, предназначенными для отправки диагностических данных.
Ниже приведен пример конфигурации приемника для Application Insights.
<SinksConfig>
<Sink name="ApplicationInsights">
<ApplicationInsights>{Insert ConnectionString}</ApplicationInsights>
<Channels>
<Channel logLevel="Error" name="MyTopDiagData" />
<Channel logLevel="Verbose" name="MyLogData" />
</Channels>
</Sink>
</SinksConfig>
"SinksConfig": {
"Sink": [
{
"name": "ApplicationInsights",
"ApplicationInsights": "{Insert ConnectionString}",
"Channels": {
"Channel": [
{
"logLevel": "Error",
"name": "MyTopDiagData"
},
{
"logLevel": "Error",
"name": "MyLogData"
}
]
}
}
]
}
Атрибут имени приемника— это строковое значение, однозначно определяющее приемник.
Элемент ApplicationInsights указывает строку подключения ресурса Application Insights, куда отправляются данные диагностики Azure.
- Если у вас нет существующего ресурса Application Insights, см. статью "Создание ресурса Application Insights".
- Если вы разрабатываете облачную службу с Azure SDK 2.8 и более поздних версий, строка подключения автоматически заполняется. Значение основано на параметре конфигурации службы APPLICATIONINSIGHTS_CONNECTION_STRING при упаковке проекта облачной службы, см. раздел "Использование Application Insights с облачными службами".
Элемент Channels содержит один или несколько элементов Channel.
- Атрибут name однозначно ссылается на этот канал.
- Атрибут Loglevel позволяет указать уровень ведения журнала для канала. Доступные уровни журнала в порядке наименьшей информации:
- Подробный
- Информация
- Предупреждение
- Ошибка
- Критически важно
Канал действует как фильтр и позволяет выбрать конкретные уровни ведения журнала для отправки в приемник. Например, можно собирать подробные журналы и отправлять их в хранилище, а в приемник отправлять только журнал ошибок.
Эта взаимосвязь показана на следующем рисунке.
На следующем рисунке показаны значения конфигурации и как они работают. В конфигурацию можно включить несколько приемников на разных уровнях иерархии. Приемник, указанный на верхнем уровне, действует как глобальный параметр, а приемник, указанный на уровне отдельного элемента, действует как переопределение для этого глобального параметра.
Полный пример конфигурации приемника
Ниже приведен полный пример общедоступного файла конфигурации, который:
- Отправляет все ошибки в Application Insights (указано в узле DiagnosticMonitorConfiguration).
- Также отправляет журналы уровня Verbose для журналов приложений (указанных в узле Logs).
<WadCfg>
<DiagnosticMonitorConfiguration overallQuotaInMB="4096"
sinks="ApplicationInsights.MyTopDiagData"> <!-- All info below sent to this channel -->
<DiagnosticInfrastructureLogs />
<PerformanceCounters>
<PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT3M" />
<PerformanceCounterConfiguration counterSpecifier="\Memory\Available MBytes" sampleRate="PT3M" />
</PerformanceCounters>
<WindowsEventLog scheduledTransferPeriod="PT1M">
<DataSource name="Application!*" />
</WindowsEventLog>
<Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose"
sinks="ApplicationInsights.MyLogData"/> <!-- This specific info sent to this channel -->
</DiagnosticMonitorConfiguration>
<SinksConfig>
<Sink name="ApplicationInsights">
<ApplicationInsights>{Insert ConnectionString}</ApplicationInsights>
<Channels>
<Channel logLevel="Error" name="MyTopDiagData" />
<Channel logLevel="Verbose" name="MyLogData" />
</Channels>
</Sink>
</SinksConfig>
</WadCfg>
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyTopDiagData", "_comment": "All info below sent to this channel",
"DiagnosticInfrastructureLogs": {
},
"PerformanceCounters": {
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
"sampleRate": "PT3M"
},
{
"counterSpecifier": "\\Memory\\Available MBytes",
"sampleRate": "PT3M"
}
]
},
"WindowsEventLog": {
"scheduledTransferPeriod": "PT1M",
"DataSource": [
{
"name": "Application!*"
}
]
},
"Logs": {
"scheduledTransferPeriod": "PT1M",
"scheduledTransferLogLevelFilter": "Verbose",
"sinks": "ApplicationInsights.MyLogData", "_comment": "This specific info sent to this channel"
}
},
"SinksConfig": {
"Sink": [
{
"name": "ApplicationInsights",
"ApplicationInsights": "{Insert ConnectionString}",
"Channels": {
"Channel": [
{
"logLevel": "Error",
"name": "MyTopDiagData"
},
{
"logLevel": "Verbose",
"name": "MyLogData"
}
]
}
}
]
}
}
В предыдущей конфигурации приведенные ниже строки имеют следующий смысл.
Отправьте все данные, которые собирает диагностика Azure.
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights",
}
Отправка в приемник Application Insights только журналов ошибок
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights.MyTopDiagdata">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyTopDiagData",
}
Отправка подробных журналов приложений в Application Insights
<Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" sinks="ApplicationInsights.MyLogData"/>
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyLogData",
}
Ограничения
- Каналы ведут журнал только типов, но не счетчиков производительности. Если указать канал с элементом счетчика производительности, он игнорируется.
- Уровень ведения журнала для канала не может превышать уровень ведения журнала для собираемого диагностикой Azure. Например, вы не можете собирать ошибки журнала приложений в элементе Logs и пытаться отправить подробные журналы в приемник Application Insights. Атрибут scheduledTransferLogLevelFilter всегда должен собирать равные или более журналы, чем журналы, которые вы пытаетесь отправить в приемник.
- Невозможно отправить данные блобов, собранные расширением диагностики Azure, в Application Insights. Например, данные, указанные в узле Directories. Для дампов аварийного сбоя фактический дамп отправляется в хранилище BLOB-объектов, и только уведомление о создании этого дампа отправляется в Application Insights.
Следующие шаги
- Узнайте, как просмотреть сведения о диагностике Azure в Application Insights.
- Используйте PowerShell, чтобы включить расширение диагностики Azure для приложения.
- Используйте Visual Studio, чтобы включить расширение диагностики Azure для приложения.