Skicka molntjänst, virtuell dator eller Service Fabric diagnostikdata till Application Insights
Molntjänster, Virtual Machines, Virtual Machine Scale Sets och Service Fabric använder alla Azure Diagnostics för att samla in data. Azure Diagnostics skickar data till Azure Storage tabeller. Du kan dock också skicka alla data eller en delmängd av data till andra platser med hjälp Azure Diagnostics 1.5 eller senare.
Den här artikeln beskriver hur du skickar data från Azure Diagnostics-tillägget till Application Insights.
Förklaring av diagnostikkonfiguration
Azure Diagnostics-tillägget 1.5 introducerade mottagare, som är ytterligare platser där du kan skicka diagnostikdata.
Exempelkonfiguration av en mottagare för Application Insights:
<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"
}
]
}
}
]
}
Attributet Sink name (Namn på mottagare) är ett strängvärde som unikt identifierar mottagaren.
ApplicationInsights-elementet anger instrumenteringsnyckeln för Application Insights-resursen där Azure-diagnostikdata skickas.
- Om du inte har en befintlig Application Insights resurs kan du läsa skapa en ny Application Insights-resurs för mer information om hur du skapar en resurs och hämtar instrumenteringsnyckeln.
- Om du utvecklar en molntjänst med Azure SDK 2.8 och senare fylls den här instrumenteringsnyckeln i automatiskt. Värdet baseras på den konfigurationsinställning APPINSIGHTS_INSTRUMENTATIONKEY tjänsten vid paketering av Cloud Service-projektet. Se Använda program Insights med Cloud Services.
Elementet Kanaler innehåller ett eller flera kanalelement.
- Namnattributet refererar unikt till kanalen.
- Med attributet loglevel kan du ange den loggnivå som kanalen tillåter. Tillgängliga loggnivåer i ordning efter mest till minst information är:
- Verbose
- Information
- Varning
- Fel
- Kritiskt
En kanal fungerar som ett filter och gör att du kan välja specifika loggnivåer att skicka till mål-mottagaren. Du kan till exempel samla in utförliga loggar och skicka dem till lagringen, men bara skicka fel till mottagaren.
Följande bild visar den här relationen.

Följande bild sammanfattar konfigurationsvärdena och hur de fungerar. Du kan inkludera flera mottagare i konfigurationen på olika nivåer i hierarkin. Mottagaren på den översta nivån fungerar som en global inställning och den som anges i det enskilda elementet fungerar som en åsidosättning av den globala inställningen.

Fullständigt exempel på konfiguration av mottagare
Här är ett fullständigt exempel på den offentliga konfigurationsfilen som
- skickar alla fel till Application Insights (anges på noden DiagnosticMonitorConfiguration)
- skickar också utförliga nivåloggar för programloggarna (anges i noden Loggar).
<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"
}
]
}
}
]
}
}
I den tidigare konfigurationen har följande rader följande betydelser:
Skicka alla data som samlas in av Azure Diagnostics
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights",
}
Skicka endast felloggar till Program Insights mottagare
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights.MyTopDiagdata">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyTopDiagData",
}
Skicka utförliga programloggar till Application Insights
<Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" sinks="ApplicationInsights.MyLogData"/>
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyLogData",
}
Begränsningar
- Endast kanalloggtyp och inte prestandaräknare. Om du anger en kanal med ett prestandaräknarelement ignoreras den.
- Loggnivån för en kanal får inte överskrida loggnivån för det som samlas in av Azure Diagnostics. Du kan till exempel inte samla in programloggfel i elementet Logs och försöka skicka utförliga loggar till Application Insight-mottagaren. Attributet scheduledTransferLogLevelFilter måste alltid samla in lika med eller fler loggar än de loggar som du försöker skicka till en mottagare.
- Du kan inte skicka blobdata som samlas in av Azure Diagnostics-tillägget till Application Insights. Till exempel allt som anges under noden Kataloger. För kraschdumpar skickas den faktiska kraschdumpen till Blob Storage och endast ett meddelande om att kraschdumpen genererades skickas till Application Insights.
Nästa steg
- Lär dig hur du visar din Azure-diagnostikinformation i Application Insights.
- Använd PowerShell för att aktivera Azure Diagnostics-tillägget för ditt program.
- Använd Visual Studio för att aktivera Azure Diagnostics-tillägget för ditt program