Implementierung der API-Überwachung für eine effiziente Infrastruktur

Infrastrukturen stützen sich heutzutage stark auf APIs. Diese zu testen und zu überwachen ist wichtig, um die Leistung aufrechtzuerhalten, Störungen der Arbeitsabläufe zu vermeiden und die maximale Sicherheit aller abhängigen Dienste zu gewährleisten.

Was ist API-Monitoring?

 API steht für Application Programming Interface und ermöglicht die Kommunikation zwischen zwei oder mehreren Computern. Sie wird in der Regel zusammen mit einer Software erstellt, damit erfahrene User:innen oder Entwickler:innen, intern und extern, eine Schnittstelle zu den von dieser Software angebotenen Diensten haben und darauf aufbauen können.

Es versteht sich daher von selbst, dass das API-Monitoring die kumulativen Bemühungen und Praktiken zur Überwachung des einwandfreien Funktionierens einer solchen Schnittstelle darstellt. API-Monitoring-Tools sind darauf ausgelegt, die Leistung Ihrer APIs und die Korrektheit der von ihnen zurückgegebenen Daten zu analysieren. Letzteres ist von entscheidender Bedeutung, da sich andere Komponenten oder Softwareprogramme darauf verlassen, dass APIs korrekt reagieren und die erwarteten Daten zurückgeben. Andernfalls funktionieren sie nicht oder führen zu unerwarteten Ergebnissen.

APIs sind wie Bausteine für größere Softwarestrukturen. Sie müssen ausreichend leistungsfähig sein, um von einer großen Zahl von Nutzern verwendet werden zu können, und sie müssen die richtige Art und Menge von Daten zurückgeben, um zuverlässig zu sein. Das API-Monitoring sorgt dafür, dass beides der Fall ist.

Was ist API-Testing?

Während sich das API-Monitoring auf APIs im Produktionszustand konzentriert, setzt die API-Prüfung früher ein. Es handelt sich dabei um einen Prozess, der idealerweise in die Entwicklung jeder API integriert ist und ihre Entwicklung verfolgt. Bei API-Tests geht es nicht so sehr um Stabilität und Zuverlässigkeit, sondern vielmehr darum, dass der neue Code die Funktionen nicht beeinträchtigt oder dass er keine großen Auswirkungen auf die Gesamtleistung hat.

Man setzt API-Tests ein, um Fehler zu vermeiden, die sich später in die Produktion einschleichen könnten. Dabei wird Schritt für Schritt überprüft, ob alle zuvor funktionierenden Funktionen und Endpunkte (jeder der Knoten, mit denen eine Verbindung hergestellt werden kann) der API noch gültige Daten zurückliefern. Beim Testen von API-Endpunkten wird jeder Punkt, der sich in einer API aufrufen lässt, überprüft, um sicherzustellen, dass keiner davon defekt ist oder unerwartete Ergebnisse zurückgibt.

Sobald die die Tests die API als stabil und vollwertig einstufen, geht sie in Produktion. Die Testphase ist damit beendet, und aus dem API-Test wird das API-Monitoring, das heißt, dass API-Monitoring-Tools die API nun überprüfen.

API illustration

Wie funktioniert API-Monitoring?

Die einfachste Art des API-Monitorings besteht darin, jeden Endpunkt aufzurufen und zu überprüfen, ob er antwortet, die richtigen Daten zurückgibt und eine akzeptable Leistung erbringt. Das ist, kurz gesagt, das API-Endpoint-Monitoring, das den Großteil der Überwachung einer API ausmacht. Es gibt jedoch auch fortschrittlichere Lösungen für das  Endpoint-Monitoring, wie beispielsweise das Schreiben synthetischer Tests, die emulieren, wie Benutzer eine API mit benutzerdefinierten Robotern abfragen. Dies ist ein Teil des Synthetic-Monitorings, das weit über die reine Überwachung von APIs hinausgeht, aber oft verwendet wird, um eine automatisierte und personalisierte Methode zu haben.

Unabhängig von den Möglichkeiten, die das API-Monitoring-Tool Ihrer Wahl bietet, gibt es einige wichtige Bereiche, die Sie bei der Durchführung des API-Monitorings überprüfen müssen.

Verfügbarkeit: Wenn ein API-Endpunkt nicht mehr antwortet, ist das ein Problem, das sie umgehen lösen müssen. Daher sollte das Monitoring-Tool sofort eine Benachrichtigung auslösen, wenn ein oder gar mehrere Endpunkte nicht mehr antworten.

API-Performance: Selbst wenn alle Endpunkte Anrufe korrekt zurücksenden, ist eine API von geringem Nutzen, wenn ihre Leistung nicht dem Standard entspricht. Daher sollten Sie die HTTP-Statuscodes auf ihre Korrektheit hin überprüfen und die Antwortzeiten überwachen. So stellen Sie sicher, dass es keine Verschlechterung gibt, die auf ein potenzielles Problem hinweisen könnte. Außerdem sollte man Leistungsunterschiede zwischen Entwicklungs- und Produktionsumgebungen berücksichtigen, da sie Aufschluss über Bugs geben können.

Datenvalidierung: Eine API ist nutzlos, wenn die Endpunkte andere Daten als erwartet zurückgeben oder ein zufälliges Verhalten zeigen. Sie müssen mit dem übereinstimmen, was Benutzer:innen und Dienste, die von der API abhängig sind, erwarten. Die Validierung der zurückgegebenen Daten mit einem Satz gültiger Daten ist mit den meisten API-Monitoring-Tools leicht möglich und lässt sich schnell mit synthetischen Tests durchführen.

Damit haben Sie die wichtigsten Aspekte des API-Monitorings abgedeckt. Diese sollten Sie nie außer Acht lassen, unabhängig davon, ob Sie eine REST-API oder einen anderen Typ überwachen. 

Vorteile des API-Monitorings

Das REST-API-Monitoring ist mit die verbreitetste Kategorie des API-Monitorings und kann Ihnen nicht nur bei Ihren eigenen APIs helfen, sondern auch bei Integrationen. API-Monitoring-Lösungen verschaffen Ihnen Einblick in die APIs von Drittanbietern und Partnern, etwa die von verwendeten Cloud-Diensten oder die eines Zahlungssystems für Ihre E-Commerce-Website. Auf diese Weise erkennen Sie nicht nur Probleme, die außerhalb Ihres Einflussbereichs liegen, sondern können auch Ihre Partner zur Verantwortung ziehen.

Ähnlich verhält es sich, wenn Sie eine externe API verwenden und sich darauf verlassen, dass diese Ihnen einen bestimmten Satz von Daten zur Verfügung stellt: Das Monitoring der API-Endpunkte kann Änderungen an den Funktionen sofort erkennen. Wenn sich ein Endpunkt der API ändert, indem er anders auf Anrufe antwortet oder komplett umbenannt wird, erhalten Sie durch das Monitoring eine Benachrichtigung und können darauf reagieren,, um Service-Unterbrechungen zu vermeiden. Mehrstufige User Journeys stützen sich oft auf mehrere APIs und verketten eine Anfrage nach der anderen. Wenn eine dieser APIs Änderungen einführt oder eine vorübergehende Unterbrechung erfährt, unterbricht das schnell geschäftskritische Workflows. Das Monitoring der einzelnen API-Endpunkte ist hier der Schlüssel zur Vermeidung von jeglichen Unterbrechungen.

Auch die API-Sicherheit ist ein wichtiges Thema. Oft nutzen böswillige Akteure Schwachstellen aus und können API-Endpunkte manipulieren oder Ihre Aufrufe an die API abhören. Durch ein API-Monitoring stellen Sie sicher, dass die Authentifizierung funktioniert und die Sicherheit der APIs, mit denen Sie sich verbinden, nicht gefährdet ist, indem Sie auf anormales Verhalten achten. Ein ungewöhnliches Verhalten kann darauf hindeuten, dass im Vorfeld eine Sicherheitsverletzung stattgefunden hat und Sie sehr vorsichtig sein sollten, welche Daten Sie mit der API kommunizieren.

Schließlich ist das Monitoring von REST-APIs besonders wichtig für Entwicklungsteams, die Dienste erstellen, die von anderen Services abhängig sind. Die Sicherstellung, dass die API effizient und voll funktionsfähig ist, ist entscheidend dafür, dass diese Dienste weiterhin funktionieren und es keine Probleme damit gibt.

Schlüsselmetriken beim API-Monitoring

Unabhängig davon, ob Sie eine REST-API oder eine andere Art des API-Monitorings durchführen, gibt es einige Metriken, die für alle APIs gelten. 

Verfügbarkeit und Betriebszeit sollten Ihr erstes Anliegen sein. Eine API muss funktionieren, daher ist das Monitoring ihrer ständigen Verfügbarkeit die erste Maßnahme. Daneben gibt die Überwachung der Fehlerrate der einzelnen Endpunkte Aufschluss darüber, wie oft eine API aufgrund von Authentifizierungs- oder Netzwerkfehlern oder eines Codefehlers nicht die gewünschten Ergebnisse liefert. Dies kann auf ein Problem mit der API oder mit den Diensten, die die API aufruft, hindeuten und muss weiter untersucht werden.

Leistungsbezogene Metriken sollten Sie ebenfalls regelmäßig überprüfen, um sicherzustellen, dass die API angemessen funktioniert. Dazu gehören mindestens die CPU- und Speichernutzung der Server, die die API-Aufrufe empfangen, und die Antwortlatenz der API insgesamt. Dabei sollten Sie großen Auslastungsspitzen oder langen Latenzzeiten schnell auf den Grund gehen, um sicherzustellen, dass sich dahinter keine wachsenden Probleme verbergen.

Wichtig ist auch das Monitoring des gesamten API-Verbrauchs. Dabei handelt es sich um die Summe der Anfragen pro Minute oder Sekunde, die die API bearbeitet. Dies ist wichtig für die Kapazität, denn es gibt Aufschluss darüber, ob die API über genügend Ressourcen verfügt, um alle Aufrufe zu bedienen, oder ob ein Cyberangriff im Gange ist, der möglicherweise eine Spitze von Anfragen verursacht.

Herausforderungen beim API-Monitoring

Das API-Monitoring kann schnell komplex werden und eine zunehmende Herausforderung für IT-Teams darstellen. Erstens gibt es mehrere Arten von APIs. Das Monitoring von REST-APIs ist vielleicht die beliebteste, aber nicht die einzige, die Sie in Betracht ziehen müssen. GraphQL ist eine neuere Ergänzung, die eine genauere Kontrolle der Datenanfragen ermöglicht, was beim Monitoring einige zusätzliche Probleme mit sich bringt. Was die Architektur betrifft, so können APIs monolithisch sein oder auf Microservices oder Serverless-Computing basieren, was für IT-Teams jeweils eine Reihe von Problemen mit sich bringt. Eine monolithische API kann sich zu einem Engpass für die Infrastruktur entwickeln, wenn man die Leistung nicht genau überwacht. Gleichzeitig sie jedoch einfacher zu überwachen als Hunderte von Microservices, die sicherlich agiler und skalierbarer, aber auch komplexer sind.

Manchmal werden APIs so erstellt, dass sie einen Teil ihrer Informationen nicht preisgeben, etwa geschützte Daten. Es kann sein, dass ein Teil der Infrastruktur überhaupt nicht als API offengelegt wird oder kein vollständiges Bild seiner Leistung liefert. Das muss man beim API-Monitoring berücksichtigen, indem man kontrolliert, wie viel man von außen überprüfen kann, vor allem wenn es sich um die zu überwachende API um die eines Drittanbieters handelt. , wie viel man von außen überprüfen kann, wenn es sich um eine Drittanbieter-API handelt, die man überwacht.

Seltener, aber dennoch möglich, sind Monitoring-Lösungen, die zu viele Ressourcen beanspruchen oder die nicht richtig auf die Anforderungen der Software abgestimmt sind. Dies kann die Monitoring-Server verlangsamen oder den Netzwerkverkehr überlasten, der auch mit Ihrer API-Infrastruktur geteilt wird. Dann stellen Sie beim API-Monitoring einen Leistungsabfall fest, der nicht auf die APIs selbst zurückzuführen ist, sondern diese nur betrifft. Hier hängt in der Tat viel davon ab, wie Ihre Monitoring-Infrastruktur konzipiert ist.

Silo-Daten sind ein häufigeres Problem beim API-Monitoring. Sie entstehen, wenn man unterschiedliche Datentypen aus verschiedenen Teilen des Systems verwendet. Wenn eine API versucht, Geräte zu verbinden, die nicht dasselbe Format oder denselben Datentyp verwenden, kann es zu Fehlern kommen, die den IT-Admins vorgaukeln, dass die API selbst fehlerhaft ist. Diese Fehler sollten verhindert oder behoben werden, bevor sie die API-Monitoring-Phase erreichen, idealerweise in der API-Testphase.

API-Monitoring und Synthetic-Monitoring

Ein API-Monitoring lässt sich mit verschiedenen Tools durchführen und ist meist ein reaktiver Monitoring-Prozess: Die Endpunkte einer API werden rekursiv auf Verfügbarkeit, Fehler und Korrektheit geprüft. Eine aktivere Methode zur Überwachung von API-Endpunkten ist die Verwendung synthetischer Tests, die die Leistungsfähigkeit des synthetischen Monitorings ausnutzen. Mit einer leistungsfähigen Lösung wie dem Checkmk Synthetic Monitoring können Sie Anfragen und Aktionen aus der ganzen Welt an Ihre API simulieren. Tatsächliche Anfragen und Operationen, die normalerweise Endnutzer:innen oder Entwickler:innen an eine API stellen, lassen sich mit synthetischen Tests simulieren, die die API-Monitoring-Lösung ausführt.

Das synthetische Monitoring hilft in allen Phasen der API-Entwicklung: sowohl während der API-Tests als auch später bei dem API-Monitoring. Die Möglichkeit, eigene Tests zu entwickeln, die auf die beabsichtigte Nutzung der API zugeschnitten sind, ist von unschätzbarem Wert für die Entdeckung von Fehlern und die Verbesserung der Erfahrung, die Sie mit Ihrer API bieten. Oder Sie möchten einfach eine genauere Kontrolle darüber haben, wie Sie einen Drittanbieter überwachen, von dem Ihre Infrastruktur abhängt.

Checkmk Synthetic Monitoring bietet die Flexibilität des Test-Frameworks der Robot Foundation, das in der Open-Source-Community für das Schreiben von synthetischen Tests bekannt ist, um effiziente synthetische Monitoring-Funktionen für das API-Monitoring und vieles mehr bereitzustellen.

FAQ

Was ist der Unterschied zwischen SOAP und REST APIs?

SOAP (Simple Object Access Protocol) ist eine Spezifikation für ein Messaging-Protokoll. Es wird verwendet, um strukturierte Informationen über Computer und Netzwerke auszutauschen. Es ist keine API und sagt auch nicht, wie eine solche zu strukturieren ist. REST (Representational State Transfer) ist stattdessen ein architektonischer Stil für den Entwurf und die Entwicklung von Software-Strukturen, zu denen auch APIs gehören. Eine REST-API ist eine API, die nach den Grundsätzen von REST aufgebaut ist. SOAP und REST sind also völlig unterschiedliche Konzepte, die ganz unterschiedliche Ziele verfolgen.

Was ist der Unterschied zwischen GraphQL und REST-APIs?

Sowohl GraphQL als auch REST-APIs werden zum Aufbau von Webdiensten verwendet, allerdings mit unterschiedlichen Ansätzen und Merkmalen. GraphQL ist eine vollständige Sprache zur Abfrage einer API nach Daten. Anders als bei REST-basierten APIs, bei denen man Endpunkte nach Daten abfragt, wird bei einer GraphQL-API eine Abfrage erstellt, um mehrere Informationen abzufragen, unabhängig vom Endpunkt. GraphQL verwendet einen einzigen Endpunkt, aber mehrere, oft recht komplexe Abfragen, um auf die API zuzugreifen, wohingegen REST-APIs endpunktbasiert sind. Die Abfrage ist also einfacher, aber es gibt eine große Anzahl verfügbarer Endpunkte.