Cloud Service-, virtuálisgép- vagy Service Fabric-diagnosztikai adatok küldése az Alkalmazás Elemzések
A felhőszolgáltatások, a virtuális gépek, a virtuálisgép-méretezési csoportok és a Service Fabric mind az Azure Diagnostics bővítményt használják az adatok gyűjtésére. Az Azure Diagnostics adatokat küld az Azure Storage-táblákba. Az Azure Diagnostics 1.5-ös vagy újabb bővítményével azonban az adatok egészét vagy egy részét más helyekre is átirányíthatja.
Ez a cikk azt ismerteti, hogyan küldhet adatokat az Azure Diagnostics bővítményből az Alkalmazás Elemzések.
A diagnosztikai konfiguráció ismertetése
Az Azure Diagnostics 1.5-ös bővítménye bevezette a fogadókat, amelyek további helyek, ahol diagnosztikai adatokat küldhet.
Példa egy fogadó konfigurációjára az Application Elemzések esetében:
<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"
}
]
}
}
]
}
A Fogadónév attribútum egy sztringérték, amely egyedileg azonosítja a fogadót.
Az Alkalmazás Elemzések elem annak az Application Insights-erőforrásnak a rendszerállapot-kulcsát adja meg, ahová az Azure diagnosztikai adatokat küldi.
- Ha még nem rendelkezik alkalmazás-Elemzések erőforrással, az erőforrás létrehozásával és a rendszerállapot-kulcs lekérésével kapcsolatos további információkért tekintse meg az Új alkalmazás Elemzések erőforrás létrehozása című témakört.
- Ha felhőalapú szolgáltatást fejleszt az Azure SDK 2.8-ás és újabb verziójával, a rendszer automatikusan kitölti ezt a rendszerállapot-kulcsot. Az érték a APPINSIGHTS_INSTRUMENTATIONKEY szolgáltatáskonfigurációs beállításon alapul a Cloud Service-projekt csomagolásakor. Lásd: Alkalmazás Elemzések használata a Cloud Services szolgáltatással.
A Csatornák elem egy vagy több csatornaelemet tartalmaz.
- A névattribútum egyedileg hivatkozik erre a csatornára.
- A loglevel attribútum lehetővé teszi a csatorna által megengedhető naplószint megadását. A rendelkezésre álló naplószintek a lehető legkevesebb információ érdekében a következők:
- Részletezés
- Tájékoztatás
- Figyelmeztetés:
- Hiba
- Critical
A csatornák szűrőként viselkednek, és lehetővé teszik adott naplószintek kiválasztását a cél fogadónak való küldéshez. Gyűjthet például részletes naplókat, és elküldheti őket a tárolóba, de csak hibaüzeneteket küldhet a fogadónak.
Az alábbi ábrán ez a kapcsolat látható.
Az alábbi ábra összefoglalja a konfigurációs értékeket és azok működését. A konfigurációban több fogadó is szerepelhet a hierarchia különböző szintjein. A felső szinten lévő fogadó globális beállításként működik, és az egyes elemnél megadottak felülbírálják ezt a globális beállítást.
Teljes fogadókonfigurációs példa
Íme egy teljes példa a nyilvános konfigurációs fájlra, amely
- minden hibát elküld az Application Elemzések (a DiagnosticMonitorConfiguration csomóponton van megadva)
- Részletes szintű naplókat is küld az alkalmazásnaplókhoz (a Naplók csomóponton megadva).
<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"
}
]
}
}
]
}
}
Az előző konfigurációban a következő sorok jelentése a következő:
Az Azure Diagnostics által gyűjtött összes adat elküldése
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights",
}
Csak hibanaplók küldése az alkalmazás Elemzések fogadóba
<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights.MyTopDiagdata">
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyTopDiagData",
}
Részletes alkalmazásnaplók küldése az Alkalmazás Elemzések
<Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" sinks="ApplicationInsights.MyLogData"/>
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 4096,
"sinks": "ApplicationInsights.MyLogData",
}
Korlátozások
- A csatornák csak a naplótípust, a teljesítményszámlálókat nem. Ha teljesítményszámláló elemet tartalmazó csatornát ad meg, az figyelmen kívül lesz hagyva.
- Egy csatorna naplószintje nem haladhatja meg az Azure-diagnosztika által gyűjtött naplószintet. Nem gyűjthet például alkalmazásnapló-hibákat a Naplók elemben, és nem kísérelheti meg részletes naplók küldését az Application Insights fogadóba. Az ütemezettTransferLogLevelFilter attribútumnak mindig egyenlő vagy több naplót kell gyűjtenie, mint a fogadónak elküldeni kívánt naplók.
- Az Azure diagnostics bővítmény által gyűjtött blobadatokat nem küldheti el az Alkalmazás Elemzések. Például a Címtárak csomópont alatt megadott bármi. Összeomlási memóriaképek esetén a rendszer elküldi a tényleges összeomlási memóriaképet a blobtárolóba, és csak az összeomlási memóriakép létrejöttéről szóló értesítést küldi el az Alkalmazás Elemzések.
Következő lépések
- Megtudhatja, hogyan tekintheti meg az Azure diagnosztikai adatait az Alkalmazás Elemzések.
- A PowerShell használatával engedélyezheti az Azure diagnostics bővítményt az alkalmazáshoz.
- A Visual Studio használata az Azure diagnostics bővítmény engedélyezéséhez az alkalmazáshoz