Prestatiebewaking met de Windows Azure Diagnostics-extensie
In dit document worden de stappen beschreven die nodig zijn voor het instellen van een verzameling prestatiemeteritems via de Extensie Windows Azure Diagnostics (WAD) voor Windows-clusters. Voor Linux-clusters stelt u de Log Analytics-agent in om prestatiemeteritems voor uw knooppunten te verzamelen.
Notitie
De WAD-extensie moet worden geïmplementeerd op uw cluster om deze stappen voor u te laten werken. Als deze niet is ingesteld, gaat u naar Gebeurtenisaggregatie en -verzameling met behulp van Windows Azure Diagnostics.
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Prestatiemeteritems verzamelen via wadCfg
Als u prestatiemeteritems wilt verzamelen via WAD, moet u de configuratie op de juiste manier wijzigen in de Resource Manager-sjabloon van uw cluster. Volg deze stappen om een prestatiemeteritem toe te voegen dat u wilt verzamelen voor uw sjabloon en een Resource Manager-resource-upgrade uit te voeren.
Zoek de WAD-configuratie in de sjabloon van uw cluster - zoek
WadCfg
. U voegt prestatiemeteritems toe om te verzamelen onder deDiagnosticMonitorConfiguration
.Stel uw configuratie in om prestatiemeteritems te verzamelen door de volgende sectie toe te voegen aan uw
DiagnosticMonitorConfiguration
."PerformanceCounters": { "scheduledTransferPeriod": "PT1M", "PerformanceCounterConfiguration": [] }
Hiermee
scheduledTransferPeriod
definieert u hoe vaak de waarden van de verzamelde tellers worden overgebracht naar uw Azure-opslagtabel en naar een geconfigureerde sink.Voeg de prestatiemeteritems toe die u wilt verzamelen aan de
PerformanceCounterConfiguration
prestatiemeteritems die in de vorige stap zijn gedeclareerd. Elke teller die u wilt verzamelen, wordt gedefinieerd met eencounterSpecifier
,sampleRate
,unit
enannotation
alle relevantesinks
items.
Hier volgt een voorbeeld van een configuratie met de teller voor de totale processortijd (de hoeveelheid tijd die de CPU in gebruik was voor verwerkingsbewerkingen) en Service Fabric Actor Method Invocations per seconde, een van de aangepaste prestatiemeteritems van Service Fabric. Raadpleeg Reliable Actor Performance Counters and Reliable Service Performance Counters for a full list of Service Fabric custom perf counters.
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": "50000",
"EtwProviders": {
"EtwEventSourceProviderConfiguration": [
{
"provider": "Microsoft-ServiceFabric-Actors",
"scheduledTransferKeywordFilter": "1",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableActorEventTable"
}
},
{
"provider": "Microsoft-ServiceFabric-Services",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableServiceEventTable"
}
}
],
"EtwManifestProviderConfiguration": [
{
"provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
"scheduledTransferLogLevelFilter": "Information",
"scheduledTransferKeywordFilter": "4611686018427387904",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricSystemEventTable"
}
}
]
},
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
"sampleRate": "PT1M",
"unit": "Percent",
"annotation": [
],
"sinks": ""
},
{
"counterSpecifier": "\\Service Fabric Actor Method(*)\\Invocations/Sec",
"sampleRate": "PT1M",
}
]
}
}
},
De steekproeffrequentie voor de teller kan worden gewijzigd op basis van uw behoeften. De notatie is PT<time><unit>
, dus als u wilt dat de teller elke seconde wordt verzameld, moet u de "sampleRate": "PT15S"
.
U kunt ook variabelen in uw ARM-sjabloon gebruiken om een matrix met prestatiemeteritems te verzamelen, wat handig kan zijn wanneer u prestatiemeteritems per proces verzamelt. In het volgende voorbeeld verzamelen we processortijd en garbagecollection-tijd per proces en vervolgens twee prestatiemeteritems op de knooppunten zelf allemaal met behulp van variabelen.
"variables": {
"copy": [
{
"name": "processorTimeCounters",
"count": "[length(parameters('monitoredProcesses'))]",
"input": {
"counterSpecifier": "\\Process([parameters('monitoredProcesses')[copyIndex('processorTimeCounters')]])\\% Processor Time",
"sampleRate": "PT1M",
"unit": "Percent",
"sinks": "applicationInsights",
"annotation": [
{
"displayName": "[concat(parameters('monitoredProcesses')[copyIndex('processorTimeCounters')],' Processor Time')]",
"locale": "en-us"
}
]
}
},
{
"name": "gcTimeCounters",
"count": "[length(parameters('monitoredProcesses'))]",
"input": {
"counterSpecifier": "\\.NET CLR Memory([parameters('monitoredProcesses')[copyIndex('gcTimeCounters')]])\\% Time in GC",
"sampleRate": "PT1M",
"unit": "Percent",
"sinks": "applicationInsights",
"annotation": [
{
"displayName": "[concat(parameters('monitoredProcesses')[copyIndex('gcTimeCounters')],' Time in GC')]",
"locale": "en-us"
}
]
}
}
],
"machineCounters": [
{
"counterSpecifier": "\\Memory\\Available Bytes",
"sampleRate": "PT1M",
"unit": "KB",
"sinks": "applicationInsights",
"annotation": [
{
"displayName": "Memory Available Kb",
"locale": "en-us"
}
]
},
{
"counterSpecifier": "\\Memory\\% Committed Bytes In Use",
"sampleRate": "PT15S",
"unit": "percent",
"annotation": [
{
"displayName": "Memory usage",
"locale": "en-us"
}
]
}
]
}
....
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": "50000",
"Metrics": {
"metricAggregation": [
{
"scheduledTransferPeriod": "PT1M"
}
],
"resourceId": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', variables('vmNodeTypeApp2Name'))]"
},
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"PerformanceCounterConfiguration": "[concat(variables ('processorTimeCounters'), variables('gcTimeCounters'), variables('machineCounters'))]"
},
....
Nadat u de juiste prestatiemeteritems hebt toegevoegd die moeten worden verzameld, moet u de clusterresource bijwerken zodat deze wijzigingen worden doorgevoerd in het actieve cluster. Sla uw gewijzigde versie op
template.json
en open PowerShell. U kunt uw cluster upgraden met behulp vanNew-AzResourceGroupDeployment
. De aanroep vereist de naam van de resourcegroep, het bijgewerkte sjabloonbestand en het parameterbestand en vraagt Resource Manager om de juiste wijzigingen aan te brengen in de resources die u hebt bijgewerkt. Zodra u bent aangemeld bij uw account en zich in het juiste abonnement bevindt, gebruikt u de volgende opdracht om de upgrade uit te voeren:New-AzResourceGroupDeployment -ResourceGroupName <ResourceGroup> -TemplateFile <PathToTemplateFile> -TemplateParameterFile <PathToParametersFile> -Verbose
Zodra de upgrade is geïmplementeerd (het duurt 15-45 minuten, afhankelijk van of dit de eerste implementatie en de grootte van uw resourcegroep is), moet WAD de prestatiemeteritems verzamelen en deze verzenden naar de tabel MET de naam WADPerformanceCountersTable in het opslagaccount dat is gekoppeld aan uw cluster. Bekijk uw prestatiemeteritems in Application Insights door de AI-sink toe te voegen aan de Resource Manager-sjabloon.
Volgende stappen
- Verzamel meer prestatiemeteritems voor uw cluster. Zie metrische prestatiegegevens voor een lijst met prestatiemeteritems die u moet verzamelen.
- Gebruik bewaking en diagnostische gegevens met een Windows-VM en Azure Resource Manager-sjablonen om verdere wijzigingen aan te brengen in uw
WadCfg
opslagaccounts, waaronder het configureren van meer opslagaccounts om diagnostische gegevens naar te verzenden. - Ga naar de wadCfg-opbouwfunctie om een volledig nieuwe sjabloon te maken en zorg ervoor dat uw syntaxis juist is om een volledig nieuwe sjabloon te maken en ervoor te zorgen dat uw syntaxis juist is.