Odeslání cloudové služby, virtuálního počítače nebo Service Fabric dat do služby Application Přehledy
Cloudové služby, Virtual Machines, Virtual Machine Scale Sets a Service Fabric používají rozšíření Azure Diagnostics ke shromažďování dat. Diagnostika Azure odesílá data do Azure Storage tabulek. Pomocí rozšíření 1.5 nebo novějšího ale můžete všechna Azure Diagnostics data nebo jejich podmnožinu předáte do jiných umístění.
Tento článek popisuje, jak odesílat data z rozšíření Azure Diagnostics do služby Application Přehledy.
Vysvětlení konfigurace diagnostiky
Diagnostické rozšíření Azure 1.5 zavedlo jímky, což jsou další umístění, kam můžete odesílat diagnostická data.
Příklad konfigurace jímky pro aplikační Přehledy:
<SinksConfig>
<Sink name="ApplicationInsights">
<ApplicationInsights>{Insert InstrumentationKey}</ApplicationInsights>
<Channels>
<Channel logLevel="Error" name="MyTopDiagData" />
<Channel logLevel="Verbose" name="MyLogData" />
</Channels>
</Sink>
</SinksConfig>
"SinksConfig": {
"Sink": [
{
"name": "ApplicationInsights",
"ApplicationInsights": "{Insert InstrumentationKey}",
"Channels": {
"Channel": [
{
"logLevel": "Error",
"name": "MyTopDiagData"
},
{
"logLevel": "Error",
"name": "MyLogData"
}
]
}
}
]
}
Atribut Název jímky je řetězcová hodnota, která jednoznačně identifikuje jímku.
Element ApplicationInsights určuje instrumentační klíč prostředku Application Insights, kam se odesílala diagnostická data Azure.
- Pokud ještě nemáte prostředek application Přehledy, další informace o vytvoření prostředku a získání instrumentačního klíče Přehledy najdete v tématu Vytvoření nového prostředku služby Application Přehledy.
- Pokud vyvíjíte cloudovou službu pomocí sady Azure SDK 2.8 a novější, tento instrumentační klíč se vyplní automaticky. Hodnota je založená na nastavení APPINSIGHTS_INSTRUMENTATIONKEY služby při balení projektu cloudové služby. Viz Použití aplikačních Přehledy s Cloud Services.
Element Channels obsahuje jeden nebo více elementů Channel.
- Atribut name jednoznačně odkazuje na tento kanál.
- Atribut loglevel umožňuje určit úroveň protokolu, kterou kanál povoluje. Dostupné úrovně protokolů jsou v pořadí od většiny po nejméně informací:
- Verbose
- Informace
- Upozornění
- Chyba
- Kritické
Kanál funguje jako filtr a umožňuje vybrat konkrétní úrovně protokolu, které se mají odeslat do cílové jímky. Můžete například shromažďovat podrobné protokoly a odesílat je do úložiště, ale do jímky odesílat jenom chyby.
Tento vztah je znázorněný na následujícím obrázku.

Následující obrázek shrnuje hodnoty konfigurace a způsob jejich práce. V konfiguraci můžete zahrnout více jímek na různých úrovních hierarchie. Jímka na nejvyšší úrovni funguje jako globální nastavení a jímka zadaná v jednotlivém prvku funguje jako přepsání tohoto globálního nastavení.

Příklad dokončení konfigurace jímky
Tady je kompletní příklad veřejného konfiguračního souboru, který
- odesílá všechny chyby do služby Application Přehledy (zadané v uzlu DiagnosticMonitorConfiguration).
- také odesílá podrobné protokoly úrovně pro protokoly aplikací (zadané v uzlu Protokoly).
<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 InstrumentationKey}</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 InstrumentationKey}",
"Channels": {
"Channel": [
{
"logLevel": "Error",
"name": "MyTopDiagData"
},
{
"logLevel": "Verbose",
"name": "MyLogData"
}
]
}
}
]
}
}
V předchozí konfiguraci mají následující řádky následující významy:
Odeslání všech dat shromažďovaných diagnostikou Azure
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights",
}
Odeslání pouze protokolů chyb do jímky Přehledy aplikace
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights.MyTopDiagdata">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyTopDiagData",
}
Odesílání podrobných aplikačních protokolů do služby Application Přehledy
<Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" sinks="ApplicationInsights.MyLogData"/>
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyLogData",
}
Omezení
- Kanály protokoluje pouze typ, nikoli čítače výkonu. Pokud zadáte kanál s prvkem čítače výkonu, bude ignorován.
- Úroveň protokolu pro kanál nemůže překročit úroveň protokolu pro to, co shromažďuje diagnostika Azure. Například nemůžete shromáždit chyby protokolu aplikace v elementu Logs a pokusit se odeslat podrobné protokoly do jímky Application Insights. Atribut scheduledTransferLogLevelFilter musí vždy shromažďovat stejné nebo více protokolů než protokoly, které se pokoušíte odeslat do jímky.
- Data objektů blob shromážděná rozšířením Azure Diagnostics nelze odesílat do služby Application Přehledy. Například cokoli zadané pod uzlem Adresáře. V případě výpisů stavu systému se do úložiště objektů blob odesílá aktuální výpis stavu systému a do úložiště objektů blob se odesílá pouze oznámení o vygenerování výpisu stavu systému Přehledy.
Další kroky
- Informace o zobrazení diagnostických informací Azure najdete v článku o Přehledy.
- Pomocí PowerShellu povolte rozšíření Azure Diagnostics pro vaši aplikaci.
- Pomocí Visual Studio povolte rozšíření Azure Diagnostics pro vaši aplikaci.