Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Lösungsmöglichkeiten
In diesem Artikel ist ein Lösungsvorschlag beschrieben. Ihr Cloudarchitekt kann diesen Leitfaden verwenden, um die Hauptkomponenten einer typischen Implementierung dieser Architektur zu visualisieren. Verwenden Sie diesen Artikel als Ausgangspunkt, um eine gut durchdachte Lösung zu entwerfen, die den spezifischen Anforderungen Ihrer Workload entspricht.
Diese Lösung bietet Anleitungen für die Verwendung von Azure Load Testing, einem Dienst, mit dem Sie Apache JMeter-Skripts und benutzerdefinierte Plug-Ins ausführen können, um Benutzer- und Geräteverhalten zu simulieren. In dieser Lösung wird auch erläutert, wie Sie Key Performance Indicators (KPIs) entwerfen und ein Dashboard für die Überwachung und Analyse der Ergebnisse des Ladetests in einer Beispielanwendung mit Azure Functions und Azure Event Hubs entwickeln. In diesem Beispiel wird Event Hubs verwendet, Sie können jedoch den gleichen Ansatz auf Azure IoT Hub anwenden, indem Sie den Event Hubs-Client auf den IoT Hub-Client ändern. In diesem Artikel wird davon ausgegangen, dass Sie mit JMeter, seinen Plug-Ins und benutzerdefinierten Plug-Ins und Funktionen und Event Hubs vertraut sind.
IoT Hub enthält mehr Kernkomponenten als Event Hubs, einschließlich Partitionen. Daher gilt der in diesem Artikel beschriebene Lastentestansatz auch für IoT Hub mit minimalen Änderungen.
Aufbau
Um Auslastungstests durchzuführen, benötigen Sie einen Testplan, der eine Reihe von Anweisungen enthält, die JMeter informiert, was während des Tests zu tun ist. Der Testplan kann mehrere Testszenarien enthalten, und jedes Szenario kann unterschiedliche Einstellungen und Konfigurationen aufweisen. Sie können beispielsweise ein Szenario haben, das einen einzelnen Benutzer simuliert, der auf eine Webanwendung zugreift, und ein anderes Szenario, das mehrere Benutzer gleichzeitig auf dieselbe Anwendung zugreift.
Laden Sie eine Visio-Datei dieser Architektur herunter.
Datenfluss
Der folgende Datenfluss entspricht dem vorherigen Diagramm:
Ein simuliertes Gerät sendet Daten über einen Load Testing-Agent an einen Event Hub. Jedes Verhalten des Geräts kann mithilfe von benutzerdefinierten JMeter-Plug-Ins simuliert werden. Der Load Testing-Agent sendet Daten an den Event Hub, nachdem es das benutzerdefinierte Plug-In für einen beliebigen Typ von simulierten Geräten ausgeführt hat.
Der Event Hub löst eine Azure-Funktions-App aus, die die Daten verarbeitet und an andere downstream-Dienste wie Azure SQL-Datenbank und Azure Digital Twins sendet.
Azure Monitor überwacht die Funktions-App und Event Hubs.
Load Testing sammelt die Daten aus Azure Monitor und zeigt sie in einem Dashboard an.
Komponenten
In diesem Beispiel werden die folgenden Komponenten verwendet:
Load Testing: Verwenden Sie Load Testing, um Apache JMeter-Skripts und benutzerdefinierte Plug-Ins auszuführen, um Benutzer- und Geräteverhalten zu simulieren. Load Testing bietet eine webbasierte Schnittstelle zum Verwalten und Ausführen von Auslastungstests und einer Reihe von APIs zum Automatisieren des Prozesses. Load Testing ist ein vollständig verwalteter Dienst, was bedeutet, dass Sie keine Server oder Infrastruktur verwalten müssen. In dieser Architektur lädt Load Testing die JMeter-Skripts und benutzerdefinierten Plug-Ins hoch, und es ist die Berechnung, an der diese Skripts ausgeführt werden.
Event Hubs: Event Hubs ist ein cloudbasierter Ereignisverarbeitungsdienst, mit dem Sie Ereignisse und Streamingdaten aus verschiedenen Quellen in Echtzeit sammeln, verarbeiten und analysieren können. Event Hubs unterstützt mehrere Protokolle, einschließlich Advanced Message Queuing Protocol (AMQP), HTTPS, Kafka-Protokoll, Message Queuing Telemetry Transport (MQTT) und AMQP über WebSocket. Diese Architektur ist ereignisbasiert, sodass Load Testing Ereignisse auffüllt, um die Workload zu laden.
IoT Hub: IoT Hub ist ein in der Cloud gehosteter verwalteter Dienst, der als zentraler Nachrichtenhub für die Kommunikation zwischen einer IoT-Anwendung und ihren angeschlossenen Geräten dient. Sie können Millionen von Geräten und deren Back-End-Lösungen zuverlässig und sicher verbinden. Fast jedes Gerät kann mit einem IoT Hub verbunden werden. Sie können diese Architektur an die Verwendung von IoT Hub anpassen, indem Sie den Event Hubs-Client auf den IoT Hub-Client ändern.
Azure-Funktionen: Funktionen sind ein serverloser Computedienst, mit dem Sie Code ausführen können, ohne Server oder Infrastruktur verwalten zu müssen. Es unterstützt mehrere Programmiersprachen, darunter C#, F#, Java, JavaScript, PowerShell, Python und TypeScript. Diese Architektur verwendet Funktionen als primäre Computeebene. Ereignisdaten in Event Hubs lösen Funktions-Apps aus und skalieren sie.
JMeter GUI: JMeter GUI ist ein Open-Source-Lasttesttool, das hauptsächlich zum Testen der Leistung von Webanwendungen verwendet wird. Sie können sie jedoch auch verwenden, um andere Arten von Anwendungen zu testen, z. B. SOAP- und REST-Webdienste, FTP-Server und Datenbanken.
Azure Monitor: Azure Monitor bietet Überwachungs- und Warnungsfunktionen für Azure-Ressourcen. Verwenden Sie sie, um die Leistung und Integrität Ihrer Anwendungen und der zugrunde liegenden Infrastruktur zu überwachen. In dieser Architektur überwacht Azure Monitor die Integrität von Azure-Infrastrukturkomponenten während des Auslastungstests.
Szenariodetails
Sie können Load Testing verwenden, um ein vorhandenes Apache JMeter-Skript anzuwenden und einen Auslastungstest im Cloudmaßstab auf einer beliebigen Azure-Ressource auszuführen.
Mit JMeter können Tester Auslastungstests, Stresstests und funktionsbezogene Tests erstellen und ausführen. Es simuliert die gleichzeitige Nutzung einer Webanwendung durch mehrere Benutzer, sodass Tester potenzielle Leistungsengpässe oder andere Probleme identifizieren können, die unter hoher Belastung auftreten können. Mit JMeter können Sie verschiedene Leistungsmetriken messen, z. B. Antwortzeit, Durchsatz und Fehlerrate.
JMeter verwendet eine GUI-basierte Schnittstelle, um Benutzern das Erstellen von Testplänen zu ermöglichen, was mehrere Testszenarien mit unterschiedlichen Einstellungen und Konfigurationen umfassen kann. Tester können JMeter auch mithilfe von Plug-Ins anpassen oder benutzerdefinierten Code schreiben. Die Plug-Ins können Benutzern helfen, mit Diensten zu arbeiten, die nicht-HTTP-Protokolle verwenden, z. B. AMQP und WebSocket.
JMeter bietet eine breite Palette von Features und Funktionen für Lasttests, aber die integrierte Funktionalität deckt möglicherweise keine spezifischen Anwendungsfälle oder Anforderungen ab. Durch die Entwicklung von benutzerdefinierten Plug-Ins können Tester neue Funktionen hinzufügen oder vorhandene Features an ihre Anforderungen anpassen.
Sie können beispielsweise ein benutzerdefiniertes Plug-In entwickeln, um einen bestimmten Benutzerverhaltenstyp zu simulieren oder realistischere Testdaten zu generieren. Sie können auch benutzerdefinierte Plug-Ins entwickeln, um JMeter in andere Tools oder Systeme zu integrieren, z. B. Protokollierungs- und Berichterstellungstools oder kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD)-Pipelines. Die benutzerdefinierten Plug-Ins können dazu beitragen, den Testprozess zu optimieren und die Integration von Lasttests in den gesamten Softwareentwicklungsworkflow zu vereinfachen. Sie ermöglichen Es Testern, JMeter auf ihre spezifischen Anforderungen anzupassen und die Genauigkeit und Effektivität ihrer Lasttests zu verbessern.
In diesem Beispiel meldet ein Gerät Temperatur und Feuchtigkeit über einen bestimmten Zeitraum. Im Beispiel wird dieses Verhalten mithilfe eines benutzerdefinierten JMeter-Plug-Ins simuliert. Die aktuelle Implementierung des benutzerdefinierten Plug-Ins generiert zufällige Daten mithilfe einer bereitgestellten Vorlage. Das Plug-In kann jedoch jedes mögliche komplexe Verhalten für jedes Gerät enthalten. In diesem Beispiel sendet das Gerät die Daten an einen Event Hub in Azure. Der Event Hub löst eine Azure-Funktions-App aus, die die Daten verarbeitet und an andere nachgeschaltete Dienste sendet, z. B. SQL-Datenbank. Azure Functions ist der Dienst, den die Architektur testet. Der Testplan wurde entwickelt, um das Verhalten des Geräts zu simulieren und Daten an den Event Hub zu senden.
Mögliche Anwendungsfälle
Die Verwendung von Load Testing mit benutzerdefinierten Plug-Ins kann in verschiedenen Szenarien hilfreich sein, z. B.:
- Testen der Leistung einer Anwendung, die nicht-HTTP-Protokolle verwendet, z. B. AMQP und WebSocket.
- Testen der Leistung einer Anwendung, die ein benutzerdefiniertes Protokoll verwendet.
- Testen der Leistung einer Anwendung, die ein nicht von Microsoft stammendes SDK verwendet.
- Simulieren eines bestimmten Benutzer- oder Geräteverhaltens.
- Erstellen realistischerer Testdaten.
Benutzerdefinierte Plug-Ins
In JMeter sind benutzerdefinierte Plug-Ins Softwarekomponenten, die Sie hinzufügen können, um die Standardfunktionalität zu erweitern. Benutzerdefinierte Plug-Ins fügen neue Features, Funktionen oder Integrationen zu JMeter hinzu. Sie können benutzerdefinierte Plug-Ins mithilfe der Java-Programmiersprache und des JMeter Plugin Development Kit (PDK) entwickeln. Der PDK bietet eine Reihe von Tools und APIs, mit denen Sie neue Plug-Ins erstellen können, einschließlich GUI-Elemente, Listener und Samplern.
Um einen benutzerdefinierten Sampler für Event Hubs in JMeter zu implementieren, befolgen Sie die Anweisungen in "Load Testing JMeter Plugins". Nachdem Sie ihren benutzerdefinierten Sampler implementiert haben, können Sie ihn wie jeder andere Sampler in Ihrem JMeter-Testplan in Load Testing verwenden.
Sie können einen Testplan implementieren, indem Sie eine Threadgruppe verwenden, die die Anzahl der Threads steuert, z. B. virtuelle Benutzer und Geräte, um ein bestimmtes Szenario auszuführen. Jede Threadgruppe kann unterschiedliche Einstellungen für die Anzahl der Threads, den Ramp-up-Zeitraum, die Schleifenanzahl und die Dauer aufweisen. Threadgruppen können sequenziell oder parallel ausgeführt werden, abhängig von der Konfiguration des Testplans und den Anwendungsanforderungen. Sie können den Sampler einer Threadgruppe hinzufügen, seine Parameter festlegen und nach Bedarf konfigurieren. Benutzerdefinierte Sampler können leistungsstarke Tools in JMeter sein, mit denen Sie komplexe Szenarien simulieren und Anforderungen anfordern können, die von den integrierten Samplern nicht unterstützt werden.
Erstellen eines Apache JMeter-Skripts mit einem benutzerdefinierten Plug-In
In diesem Abschnitt erstellen Sie ein Beispiel-JMeter-Testskript zum Laden einer Anwendung mit Event Hubs.
So erstellen Sie ein Beispiel-JMeter-Testskript:
Erstellen Sie eine LoadTest.jmx-Datei in einem Text-Editor, und fügen Sie den folgenden Codeausschnitt in die Datei ein. Dieses Skript simuliert einen Auslastungstest von 36 virtuellen Computern, die gleichzeitig Ereignisse an einen Event Hub senden. Das Abschließen dauert 10 Minuten.
<?xml version="1.0" encoding="UTF-8"?> <jmeterTestPlan version="1.2" properties="5.0" jmeter="5.5"> <hashTree> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> <stringProp name="TestPlan.comments"></stringProp> <boolProp name="TestPlan.functional_mode">false</boolProp> <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"/> </elementProp> <stringProp name="TestPlan.user_define_classpath"></stringProp> </TestPlan> <hashTree> <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> <boolProp name="LoopController.continue_forever">false</boolProp> <intProp name="LoopController.loops">-1</intProp> </elementProp> <stringProp name="ThreadGroup.num_threads">36</stringProp> <stringProp name="ThreadGroup.ramp_time">20</stringProp> <boolProp name="ThreadGroup.scheduler">true</boolProp> <stringProp name="ThreadGroup.duration">600</stringProp> <stringProp name="ThreadGroup.delay"></stringProp> <boolProp name="ThreadGroup.same_user_on_next_iteration">false</boolProp> </ThreadGroup> <hashTree> <com.microsoft.eventhubplugin.EventHubPlugin guiclass="com.microsoft.eventhubplugin.EventHubPluginGui" estclass="com.microsoft.eventhubplugin.EventHubPlugin" testname="Azure Event Hubs Sampler" enabled="true"> <!-- Azure Event Hub connection configuration using Managed Identity (see repository for instructions) --> <boolProp name="useManagedIdentity">true</boolProp> <stringProp name="eventHubNamespace">telemetry-ehn.servicebus.windows.net</stringProp> <stringProp name="eventHubName">telemetry-data-changed-eh</stringProp> <stringProp name="liquidTemplateFileName">StreamingDataTemplate.liquid</stringProp> </com.microsoft.eventhubplugin.EventHubPlugin> </hashTree> </hashTree> </hashTree> </jmeterTestPlan>
Die Implementierung von
com.microsoft.eventhubplugin.EventHubPluginGui
undcom.microsoft.eventhubplugin.EventHubPlugin
sind in Azure-Beispielen verfügbar.Legen Sie in der Datei die Verbindungswerte für Event Hubs mithilfe der zugewiesenen verwalteten Identität der Testläufer fest. Diese Identität muss Schreibzugriff auf die Event Hubs-Instanz haben.
Legen Sie in der Datei den Wert des
eventHubName
Knotens auf den Event Hub-Namen fest, z. B.telemetry-data-changed-eh
Legen Sie den Wert des
liquidTemplateFileName
Knotens auf die Datei fest, die die Nachricht enthält, die an den Event Hub gesendet wird. Erstellen Sie z. B. eine Datei mit dem folgenden NamenStreamingDataTemplate.liquid
als:{ {% assign numberOfMachines = 36 %} {% assign machineId = dataGenerator.randomNaturalNumber | modulo: numberOfMachines %} "MachineId": "{{machineId | prepend: '0000000000000000000000000000000000000000' | slice: -27, 27 }}" "Temperature": {{dataGenerator.randomInt | modulo: 100 }}, "Humidity": {{dataGenerator.randomInt | modulo: 100 }} }
In diesem Beispiel ist die Nutzlast für die Event Hub-Nachricht ein JSON-Objekt mit drei Eigenschaften,
MachineId
, undTemperature
Humidity
.MachineId
ist eine zufällig generierte ID, die 27 Zeichen lang ist undTemperature
Humidity
zufällige ganze Zahlen sind, die kleiner als 100 sind. Diese Datei ist eine Loquid Template-Syntax. Die Liquid-Vorlage ist eine beliebte Vorlagensprache, die in verschiedenen Webentwicklungsframeworks verwendet wird. Mit Liquid Template können Entwickler dynamische Inhalte erstellen, die einfach aktualisiert und geändert werden können. Sie ermöglichen es Ihnen, Variablen, Bedingungen, Schleifen und andere dynamische Elemente in Ihre Event Hub-Nachrichten einzufügen. Die Syntax ist einfach, und es stehen viele Onlineressourcen zur Verfügung, die Ihnen bei den ersten Schritten helfen. Flüssige Vorlagen bieten eine leistungsstarke und flexible Möglichkeit, dynamische, anpassbare Nachrichten zu erstellen.Speichern und schließen Sie die Datei.
Wichtig
Fügen Sie keine persönlichen Daten in den Sampler-Namen im JMeter-Skript ein. Die Samplernamen erscheinen im Dashboard der Testergebnisse der Lasttests. Ein Beispiel für eine flüssige Vorlage zusammen mit der JMeter-Skriptdatei steht zum Herunterladen bei Azure-Beispielen zur Verfügung.
Aktualisieren des benutzerdefinierten Plug-Ins von Event Hubs auf IoT Hub
Das benutzerdefinierte Plug-In verwendet Event Hubs als primäre Zielressource. Die folgende Konfiguration ist das SDK-Clientsetup für Event Hubs:
EventHubProducerClient producer = null;
EventHubClientBuilder producerBuilder = new EventHubClientBuilder();
producerBuilder.credential(getEventHubNamespace(), getEventHubName(), new DefaultAzureCredentialBuilder().build());
producer = producerBuilder.buildProducerClient();
EventDataBatch batch = producer.createBatch(new CreateBatchOptions());
batch.tryAdd(new EventData(msg));
producer.send(batch);
Das folgende Beispiel zeigt, wie Sie dieselbe Lösung wiederverwenden, die IoT-Abhängigkeiten hinzufügen und den SDK-Client so ändern können, dass IoT Hub verwendet wird:
IotHubServiceClientProtocol protocol = IotHubServiceClientProtocol.AMQPS;
ServiceClient client = new ServiceClient(getIoTHostName(), new DefaultAzureCredentialBuilder().build(), protocol);
client.open();
Message message = new Message(msg);
client.send(getDeviceName(), message);
client.close();
Ausführen des Ladetests mithilfe des neuen Plug-Ins
Das Lasttestsystem startet Ihren Lasttest, indem es zuerst das JMeter-Skript zusammen mit allen anderen Dateien auf Testmaschineninstanzen bereitstellt. Bevor Sie den Test ausführen, wechseln Sie zur Registerkarte "Parameter", um alle erforderlichen Parameter zu definieren und festzulegen. Weitere Informationen finden Sie unter Anpassen eines Ladetests mit Apache JMeter-Plug-Ins und Load Testing.
Einrichten von Leistungstests für die Umgebung
Für Leistungstests ist es wichtig, dass Ihre Testumgebung der Produktionsumgebung ähnelt. In diesem Beispiel wird die folgende Umgebung für Leistungstests verwendet, um die Kapazität und Leistung des Systems besser zu verstehen.
Dienst | Konfiguration |
---|---|
Ereignis-Hubs | Premium mit einer Verarbeitungseinheit |
Azure-Funktionen | Linux mit Premium Plan (EP1) – 210 ACU, 3,5 GB Arbeitsspeicher und 1 vCPU-Entsprechung Standard_D1_v2 |
Region | USA, Osten |
Die Auswahl der richtigen Dienstebene für jeden Azure-Dienst, einschließlich Event Hubs und Azure Functions, ist ein komplexer Prozess und hängt von vielen Faktoren ab. Weitere Informationen finden Sie unter "Event Hubs-Preise und Funktionen".For more information, see Event Hubs pricing and Functions pricing.
Entwerfen von KPIs für Leistungstests
Bevor Sie KPIs für Leistungstests entwerfen können, müssen Sie die Geschäftsanforderungen und die Systemarchitektur definieren. Die Geschäftsanforderungen informieren Sie, welche KPIs, z. B. Antwortzeit, Durchsatz oder Fehlerrate, die Sie messen möchten. Die Systemarchitektur teilt Ihnen mit, wie Sie die Leistung jeder Komponente testen, z. B. Webserver, Datenbanken oder APIs. Sie hilft Ihnen auch, die beste Leistungsteststrategie auszuwählen, z. B. Belastungstests, Stresstests oder Ausdauertests.
In diesem Beispiel werden die folgenden geschäftlichen Anforderungen erfüllt:
- Das System kann 1.000 Anforderungen pro Sekunde verarbeiten.
- Die Systemsicherheit ist höher als 0,99.
- Das System kann 1.000 gleichzeitige Geräte verarbeiten, die ihre persönlichen Dateninformationen melden.
- Sie können die maximale Kapazität des Systems in Bezug auf die Anzahl der Geräte angeben, die es unterstützen kann. Das System kann beispielsweise 1.000 gleichzeitige Geräte mit dreimal der aktuellen Kapazität unterstützen.
Um zu messen, ob das System diese Anforderungen erfüllt, können Sie die folgenden KPIs für Leistungstests verwenden:
Leistungsindikator | Beschreibung |
---|---|
RPS | Anforderungen pro Sekunde für einen Event Hub |
LADUNG | Anzahl der Lasten oder Anforderungen, die während der Leistungstests an den Event Hub gesendet werden |
Infrarot | Anzahl der Funktionsaufrufe oder Eingaberate |
RT | Durchschnittliche Laufzeit für Azure Functions |
AMU | Durchschnittliche Speicherauslastung für Azure-Funktionen |
SR | Erfolgsquote aller Funktions-App-Aufrufe |
ARS | Durchschnittliche Nachgeschaltete Dienstantwortzeit für Dienste wie SQL Server oder microservice |
DF | Anzahl der Abhängigkeitsfehler, einschließlich interner Funktionsanwendungsfehler |
MRPS | Maximale RPS ohne Backlog im Event Hub (Systemkapazität) |
Messen von KPIs
Um KPIs zu messen, müssen Sie über eine Leistungsteststrategie verfügen. Die Strategie definiert den Leistungstestansatz für jede Komponente. In diesem Beispiel wird die folgende Leistungsteststrategie verwendet.
Event Hubs: Der Leistungstestansatz für den Event Hub besteht darin, viele Nachrichten an den Event Hub zu senden und dann das RPS und LOAD zu messen. Das RPS ist die Anzahl der Nachrichten, die pro Sekunde an den Event Hub gesendet werden. LOAD ist die Gesamtanzahl der Nachrichten, die während der Leistungstests an den Event Hub gesendet werden. Lasttests können RPS und LOAD messen.
Azure-Funktionen: Der Leistungstestansatz für Funktionen besteht darin, die folgenden Metriken zu messen.
- Infrarot
- RT
- AMU
- SR
- ARS
- DF
Azure Monitor kann AMU, ARS und DF messen, jedoch nicht IR, RT oder SR. Aktivieren Sie Application Insights für Azure-Funktionen, um KPIs mithilfe von Azure Monitor zu messen. Weitere Informationen finden Sie unter Application Insights Integration.
Nachdem Sie Azure Monitor aktiviert haben, können Sie die folgenden Abfragen verwenden, um KPIs zu messen:
IR:
FunctionAppLogs | where Category startswith "name-space-of-your-function" and Message startswith "Executed" | summarize count() by FunctionName, Level, bin(TimeGenerated, 1h) | order by FunctionName desc
RT:
FunctionAppLogs| where Category startswith "name-space-of-your-function" and Message startswith "Executed "| parse Message with "Executed " Name " (" Result ", Id=" Id ", Duration=" Duration:long "ms)"| project TimeGenerated, Message, FunctionName, Result, FunctionInvocationId, Duration
SR:
FunctionAppLogs| where Category startswith "name-space-of-your-function" and Message startswith "Executed" | summarize Success=countif(Level == "Information" ), Total=count() by FunctionName| extend Result=Success*100.0/Total| project FunctionName, Result| order by FunctionName desc
Azure Monitor-Dashboardbeispiel
Die folgende Abbildung zeigt ein Beispiel für das Azure Monitor-Dashboard. Sie zeigt die KPIs für Azure-Funktionen basierend auf den vorherigen Abfragen an.
Zusammenfassung
In diesem Artikel haben Sie erfahren, wie Sie KPIs entwerfen und ein Dashboard für Auslastungstests entwickeln. Außerdem haben Sie erfahren, wie Sie benutzerdefinierte Plug-Ins in JMeter verwenden, um Auslastungstests für Azure Functions durchzuführen, die in Event Hubs integriert sind. Sie können denselben Ansatz verwenden, um Auslastungstests für andere Azure-Dienste durchzuführen. Sie können auch eine CI/CD-Pipeline für Ihre Ladetestskripts mithilfe von Azure DevOps einrichten.
Weitere Informationen finden Sie unter "Load Testing".
Beitragende
Microsoft pflegt diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.
Hauptautoren:
- Mahdi Setayesh | Principal Software Engineer
- Oscar Fimbres | Senior Software Engineer
Um nicht-öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.
Nächste Schritte
- Auslastungstests
- Beispielcode für ein benutzerdefiniertes JMeter-Plug-In
- So entwickeln Sie ein neues benutzerdefiniertes Plug-In
- Anpassen eines Auslastungstests mit Apache JMeter-Plug-Ins und Load Testing
- Was ist Application Insights?
- Auslastungstests für Ihre Azure-App-Dienstanwendungen
- Schnellstart: Erstellen und Ausführen eines Auslastungstests mit Load Testing
- Eine Website einem Lasttest mithilfe eines JMeter-Skripts im Rahmen von Lasttests unterziehen
- Schnellstart: Automatisieren eines vorhandenen Auslastungstests mit CI/CD
- Tutorial: Ausführen eines Auslastungstests zum Identifizieren von Leistungsengpässen in einer Web-App