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ó.

Diagnostics Public Configuration

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.

Diagnostics Sinks Configuration with Application Insights

Teljes fogadókonfigurációs példa

Íme egy teljes példa a nyilvános konfigurációs fájlra, amely

  1. minden hibát elküld az Application Elemzések (a DiagnosticMonitorConfiguration csomóponton van megadva)
  2. 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