Felhőszolgáltatás, virtuális gép vagy virtuális gép Service Fabric küldése az Application Elemzések

A felhőszolgáltatások, Virtual Machines, Virtual Machine Scale Sets és Service Fabric mind az Azure Diagnostics használatával gyűjtenek adatokat. Az Azure Diagnostics adatokat küld az Azure Storage tábláiba. Az 1.5-ös vagy újabb bővítmény használatával azonban az adatok egészét vagy egy részkészletét át is Azure Diagnostics más helyekre.

Ez a cikk azt ismerteti, hogyan küldhet adatokat a Azure Diagnostics bővítményből az Application Elemzések.

A diagnosztikai konfiguráció magyarázata

Az Azure Diagnostics 1.5-ös bővítménye bevezette a fogadókat, amelyek olyan további helyek, ahol diagnosztikai adatokat küldhet.

Példa egy fogadó konfigurációra az Application Elemzések:

<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 ApplicationInsights elem határozza meg annak az Application Insights-erőforrásnak a rendszerelemkulcsát, ahová az Azure diagnosztikai adatokat küldi.

    • Ha még nem létezik Application Elemzések-erőforrása, az erőforrás létrehozásával és a rendszerkulcs lekért létrehozásával kapcsolatos további információkért lásd: Create a new Application Elemzések resource (Új Application Elemzések-erőforrás létrehozása).
    • Ha az Azure SDK 2.8-as vagy újabb verziójával fejleszt felhőszolgáltatást, a rendszer automatikusan kitölti ezt a rendszer. Az érték a Felhőszolgáltatás-APPINSIGHTS_INSTRUMENTATIONKEY konfigurálásakor megadott konfigurációs beállításon alapul. Lásd: Use Application Elemzések with Cloud Services.
  • A Csatornák elem egy vagy több Csatorna elemet tartalmaz.

    • A névattribútum egyedileg hivatkozik erre a csatornára.
    • A loglevel attribútum lehetővé teszi a csatorna által lehetővé tesz naplózási szint megadását. Az elérhető naplózási szintek a legkevesebb információ sorrendben a következőek:
      • Részletes
      • Tájékoztatás
      • Figyelmeztetés
      • Hiba
      • Kritikus

A csatornák szűrőként viselkednek, és lehetővé teszik meghatározott naplózási szintek kiválasztását, amelyek elküldhetők a cél fogadónak. Gyűjthet például részletes naplókat, és elküldheti őket a tárolóba, de csak a hibákat küldheti el a fogadónak.

Az alábbi ábrán ez a kapcsolat látható.

A diagnosztika nyilvános konfigurációja

Az alábbi ábra összefoglalja a konfigurációs értékeket és azok működnek. Több fogadót is tartalmazhat a konfigurációban a hierarchia különböző szintjein. A felső szinten lévő fogadó globális beállításként működik, az egyes elemeknél megadott pedig a globális beállítás felülbírálásaként működik.

Diagnosztikai fogadók konfigurálása alkalmazás-Elemzések

Példa teljes fogadókonfigurációra

Példa a nyilvános konfigurációs fájlra, amely

  1. minden hibát elküld az Application Elemzések (a DiagnosticMonitorConfiguration csomópontban van megadva)
  2. A részletes szintű naplókat is küld az alkalmazásnaplókhoz (a Naplók csomópontban van 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 küldése

<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights">
"DiagnosticMonitorConfiguration": {
    "overallQuotaInMB": 4096,
    "sinks": "ApplicationInsights",
}

Csak hibanaplók küldése az Application 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 Application 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ípusát naplózják, a teljesítményszámlálókat nem. Ha teljesítményszámláló elemmel ad meg egy csatornát, a rendszer figyelmen kívül hagyja.
  • A csatornák naplózási szintje nem haladhatja meg az Azure Diagnostics által gyűjtött naplózási szintet. Nem gyűjthet például alkalmazásnapló-hibákat a Naplók elemben, és nem küldhet részletes naplókat az Application Insight fogadónak. A scheduledTransferLogLevelFilter attribútumnak mindig a fogadónak elküldeni próbált naplóknál egyenlő vagy több naplót kell gyűjtenie.
  • Az Azure Diagnostics bővítmény által gyűjtött blobadatok nem küldhetőek el az Elemzések. Például bármi, ami a Directories (Könyvtárak) csomópontban van megadva. Összeomlási memóriakép esetén a rendszer a tényleges összeomlási memóriaképet a blobtárolóba küldi, és csak egy értesítést küld az Application Elemzések.

Következő lépések