{"id":53531,"date":"2019-12-04T00:00:00","date_gmt":"2019-12-03T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/ishhem-anomalii-i-predskazyvaem-sboi-s-pomoshhyu-nejrosetej"},"modified":"2020-02-18T14:01:26","modified_gmt":"2020-02-18T11:01:26","slug":"ishhem-anomalii-i-predskazyvaem-sboi-s-pomoshhyu-nejrosetej","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ishhem-anomalii-i-predskazyvaem-sboi-s-pomoshhyu-nejrosetej","title":{"rendered":"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/476a74b4808c9991139bb0d3c02762c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Die industrielle Entwicklung von Softwaresystemen erfordert gro\u00dfe Aufmerksamkeit f\u00fcr die Ausfallsicherheit des Endprodukts sowie eine schnelle Reaktion auf Ausf\u00e4lle und St\u00f6rungen, wenn diese auftreten. Monitoring hilft nat\u00fcrlich, auf Ausf\u00e4lle und St\u00f6rungen effizienter und schneller zu reagieren, reicht jedoch nicht aus. Erstens ist es sehr schwierig, eine gro\u00dfe Anzahl von Servern im Auge zu behalten \u2013 es bedarf vieler Menschen. Zweitens muss man gut verstehen, wie die Anwendung aufgebaut ist, um ihren Zustand vorherzusagen. Folglich braucht man viele Personen, die die von uns entwickelten Systeme, ihre Kennzahlen und Besonderheiten gut verstehen. Angenommen, selbst wenn gen\u00fcgend Personen gefunden werden, die bereit sind, sich damit zu besch\u00e4ftigen, ben\u00f6tigt es dennoch viel Zeit, um sie auszubilden.<\/p>\n<p><\/p>\n<p>Was sollen wir tun? Hier kommt uns die k\u00fcnstliche Intelligenz zur Hilfe. Der folgende Artikel handelt von <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Predictive_maintenance\">pr\u00e4diktiver Wartung<\/a><\/noindex> (predictive maintenance). Dieser Ansatz wird zunehmend popul\u00e4r. Es wurden viele Artikel dar\u00fcber geschrieben, auch auf Habr\u00e9. Gro\u00dfe Unternehmen nutzen diesen Ansatz umfassend, um die Funktionsf\u00e4higkeit ihrer Server zu gew\u00e4hrleisten. Nach Durchsicht zahlreicher Artikel beschlossen wir, diesen Ansatz auszuprobieren. Was kam dabei heraus? <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Einf\u00fchrung<\/h2>\n<p><\/p>\n<p>Das entwickelte Softwaresystem wird fr\u00fcher oder sp\u00e4ter in Betrieb genommen. Es ist dem Benutzer wichtig, dass das System ohne Ausf\u00e4lle funktioniert. Wenn es doch zu einer au\u00dfergew\u00f6hnlichen Situation kommt, sollte sie mit minimalen Verz\u00f6gerungen behoben werden. <\/p>\n<p><\/p>\n<p>Um die technische Unterst\u00fctzung des Softwaresystems zu vereinfachen, insbesondere wenn es viele Server gibt, werden in der Regel \u00dcberwachungsprogramme eingesetzt, die Metriken des laufenden Softwaresystems erfassen, die Diagnose seines Zustands erm\u00f6glichen und helfen zu bestimmen, was genau den Ausfall verursacht hat. Dieser Prozess wird als Monitoring des Softwaresystems bezeichnet.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/545e45775f8fc72a26f387234484fffc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>Abbildung 1. Schnittstelle zur \u00dcberwachung grafana<\/em><\/p>\n<p>Metriken sind verschiedene Kennzahlen eines Softwaresystems, seiner Ausf\u00fchrungsumgebung oder der physischen Rechenmaschine, auf der das System l\u00e4uft, mit einem Zeitstempel, zu dem die Metriken erfasst wurden. In der statischen Analyse werden die Metrikdaten als Zeitreihen bezeichnet. Um den Zustand des Softwaresystems zu \u00fcberwachen, werden Metriken in Form von Diagrammen dargestellt: auf der X-Achse die Zeit und auf der Y-Achse die Werte (Abbildung 1). Aus einem funktionierenden Softwaresystem k\u00f6nnen mehrere Tausend Metriken (von jedem Knoten) erfasst werden. Sie bilden den Raum der Metriken (mehrdimensionale Zeitreihen). <\/p>\n<p><\/p>\n<p>Da bei komplexen Softwaresystemen eine gro\u00dfe Anzahl an Metriken erfasst wird, wird die manuelle \u00dcberwachung zu einer schwierigen Aufgabe. Um das Volumen der vom Administrator zu analysierenden Daten zu reduzieren, enthalten \u00dcberwachungstools Instrumente zur automatischen Identifizierung m\u00f6glicher Probleme. Beispielsweise kann ein Trigger eingerichtet werden, der bei einer Verringerung des verf\u00fcgbaren Speicherplatzes auf einen angegebenen Schwellenwert ausgel\u00f6st wird. Au\u00dferdem k\u00f6nnen Serverausf\u00e4lle oder kritische Geschwindigkeitsverlangsamungen automatisch diagnostiziert werden. In der Praxis sind \u00dcberwachungstools ziemlich gut darin, bereits aufgetretene Ausf\u00e4lle zu erkennen oder einfache Symptome zuk\u00fcnftiger Ausf\u00e4lle zu identifizieren, aber insgesamt bleibt die Vorhersage m\u00f6glicher Fehler f\u00fcr sie eine harte Nuss. Die Vorhersage durch manuelle Analyse von Metriken erfordert das Hinzuziehen qualifizierter Spezialisten. Sie ist ineffizient. Die meisten potenziellen Ausf\u00e4lle k\u00f6nnten unbemerkt bleiben.<\/p>\n<p><\/p>\n<p>In letzter Zeit erfreut sich unter gro\u00dfen IT-Unternehmen, die Software entwickeln, das sogenannte predictive Maintenance f\u00fcr Softwaresysteme zunehmender Beliebtheit. Das Wesen dieses Ansatzes besteht darin, Fehler, die zur Degradierung des Systems f\u00fchren, in fr\u00fchen Phasen vor ihrem Ausfall mithilfe von k\u00fcnstlicher Intelligenz zu erkennen. Dieser Ansatz schlie\u00dft eine vollst\u00e4ndige manuelle \u00dcberwachung des Systems nicht aus. Er ist eine unterst\u00fctzende Ma\u00dfnahme f\u00fcr den \u00dcberwachungsprozess insgesamt. <\/p>\n<p><\/p>\n<p>Das Hauptinstrument zur Umsetzung von predictive Maintenance ist die Anomalieerkennung in Zeitreihen, da <strong>bei Auftreten einer Anomalie<\/strong> in den Daten die Wahrscheinlichkeit hoch ist, dass nach einer gewissen Zeit <strong>Es wird ein Fehler oder Ausfall auftreten<\/strong>. Eine Anomalie ist eine Abweichung der Kennzahlen eines Softwaresystems, wie z.B. die Feststellung einer Verschlechterung der Ausf\u00fchrungszeit einer bestimmten Anfrage oder der R\u00fcckgang der durchschnittlichen Anzahl bearbeiteter Anfragen bei konstantem Niveau der Kundensitzungen.<\/p>\n<p><\/p>\n<p>Die Aufgabe der Anomalieerkennung f\u00fcr Softwaresysteme hat ihre eigene Spezifik. Grunds\u00e4tzlich ben\u00f6tigt jede Software ein eigenes Design oder eine Anpassung vorhandener Methoden, da die Anomalieerkennung stark von den Daten abh\u00e4ngt, in denen sie durchgef\u00fchrt wird, und die Daten von Softwaresystemen stark variieren, je nach den Implementierungswerkzeugen bis hin zu der Computerarchitektur, unter der sie betrieben wird.<\/p>\n<p><\/p>\n<h2>Methoden zur Anomalieerkennung bei der Ausfallvorhersage von Softwaresystemen<\/h2>\n<p><\/p>\n<p>Zun\u00e4chst sei gesagt, dass die Idee der Ausfallvorhersage inspiriert wurde durch den Artikel <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/netcracker\/blog\/442620\/\">\u201eMaschinelles Lernen im IT-Monitoring\u201c<\/a><\/noindex>. F\u00fcr die \u00dcberpr\u00fcfung der Wirksamkeit des Ansatzes zur automatischen Anomalieerkennung wurde das Softwaresystem \u201eWeb-Konsolidierung\u201c ausgew\u00e4hlt, das eines der Projekte der NPO \u201eKrista\u201c ist. Zuvor wurde f\u00fcr dieses System eine manuelle \u00dcberwachung anhand der erhobenen Metriken durchgef\u00fchrt. Da das System recht komplex ist, werden eine gro\u00dfe Anzahl von Metriken erfasst: JVM-Kennzahlen (Belastung des Garbage Collectors), Kenngr\u00f6\u00dfen des Betriebssystems, unter dem der Code ausgef\u00fchrt wird (virtueller Speicher, % CPU-Auslastung des OS), Netzwerkkennzahlen (Netzwerkbelastung), des Servers selbst (CPU-Auslastung, Speicher), Wildfly-Metriken und eigene Metriken der Anwendung in allen kritischen Teilsystemen. <\/p>\n<p><\/p>\n<p>Alle Kennzahlen werden mit Hilfe von Graphite aus dem System abgerufen. Anf\u00e4nglich wurde die Whisper-Datenbank als Standardl\u00f6sung f\u00fcr Grafana verwendet, aber mit dem Wachstum der Kundenbasis konnte Graphite nicht mehr mithalten und lie\u00df die Durchsatzkapazit\u00e4t des Speichersystems des Rechenzentrums ersch\u00f6pfen. Daraufhin wurde beschlossen, eine effizientere L\u00f6sung zu suchen. Die Wahl fiel auf <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/343928\/\">Graphite+Clickhouse<\/a><\/noindex>, was es erm\u00f6glichte, die Belastung des Speichersystems erheblich zu reduzieren und das ben\u00f6tigte Speichervolumen um das F\u00fcnf- bis Sechsfache zu verringern. Im Folgenden ist das Schema des Mechanismus zur Erfassung von Metriken unter Verwendung von Graphite+Clickhouse dargestellt (Abbildung 2).<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/9b57d61a3e1e5e87922832ca2fc18d6e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p><em>Abbildung 2. Schema zur Erhebung von Metriken<\/em><\/p>\n<p>Das Schema stammt aus interner Dokumentation. Es zeigt den Datenaustausch zwischen grafana (der Benutzeroberfl\u00e4che f\u00fcr das Monitoring, die wir nutzen) und graphite. Die Metriken von der Anwendung werden von separater Software erfasst \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jmxtrans\/jmxtrans\">jmxtrans<\/a><\/noindex>. Diese speichert sie auch in graphite.<br \/>\nDas System \u201eWeb-Konsolidierung\u201c weist eine Reihe von Besonderheiten auf, die Prognosen \u00fcber Ausf\u00e4lle erschweren:<\/p>\n<p><\/p>\n<ol>\n<li>h\u00e4ufig kommt es zu einem Trendwechsel. F\u00fcr dieses Softwaresystem erscheinen unterschiedliche Versionen. Jede von ihnen bringt \u00c4nderungen im Softwareteil des Systems mit sich. Folglich beeinflussen die Entwickler direkt die Metriken dieses Systems und k\u00f6nnen einen Trendwechsel verursachen; <\/li>\n<li>die Besonderheit der Implementierung sowie die Ziele, die die Kunden mit diesem System verfolgen, verursachen oft Anomalien ohne vorhergehende Degeneration; <\/li>\n<li>der Anteil der Anomalien im Verh\u00e4ltnis zur Gesamtheit der Daten ist gering (&lt; 5%); <\/li>\n<li>es kann zu Unterbrechungen bei der Erfassung von Kennzahlen vom System kommen. In bestimmten kurzen Zeitintervallen schafft es das \u00dcberwachungssystem nicht, Metriken zu erfassen. Zum Beispiel, wenn der Server \u00fcberlastet ist. F\u00fcr das Training des neuronalen Netzwerks ist dies entscheidend. Es besteht die Notwendigkeit, diese L\u00fccken synthetisch zu f\u00fcllen;<\/li>\n<li>F\u00e4lle mit Anomalien sind h\u00e4ufig nur f\u00fcr bestimmte Zahlen\/Monate\/Zeitpunkte relevant (Saisonalit\u00e4t). Dieses System hat klare Nutzungsvorgaben f\u00fcr seine Nutzer. Folglich sind die Metriken nur zu bestimmten Zeiten von Bedeutung. Das System kann nicht konstant genutzt werden, sondern nur in bestimmten Monaten: selektiv je nach Jahr. Es entstehen Situationen, in denen das gleiche Verhalten der Metriken in einem Fall zu einem Ausfall des Softwaresystems f\u00fchren kann, in einem anderen jedoch nicht.<br \/>\nZun\u00e4chst wurden die Methoden zur Erkennung von Anomalien in den \u00dcberwachungsdaten von Softwaresystemen analysiert. In Artikeln zu diesem Thema wird bei niedrigen Anteilen an Anomalien im Verh\u00e4ltnis zum restlichen Datensatz h\u00e4ufig empfohlen, neuronale Netze zu verwenden. <\/li>\n<\/ol>\n<p><\/p>\n<p>Die grundlegende Logik zur Auffindung von Anomalien mit Hilfe von neuronalen Netzen ist in Abbildung 3 dargestellt:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/4d636fae327bf2e66a4c90728e2de0ea.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p><em>Abbildung 3. Auffindung von Anomalien mithilfe eines neuronalen Netzwerks<\/em><\/p>\n<p>Das Ergebnis der Prognose oder der Wiederherstellung des aktuellen Datenstroms wird durch die Abweichung von dem berechnet, was durch das funktionierende Softwaresystem erhalten wurde. Bei einer gro\u00dfen Diskrepanz zwischen den erhaltenen Kennzahlen vom Softwaresystem und dem neuronalen Netzwerk l\u00e4sst sich auf die Anomalie des aktuellen Datenabschnitts schlie\u00dfen. Es entstehen folgende Probleme bei der Verwendung neuronaler Netze:<\/p>\n<p><\/p>\n<ol>\n<li>F\u00fcr die korrekte Arbeit im Streaming-Modus m\u00fcssen die Daten zum Trainieren der neuronalen Netzwerkmodelle ausschlie\u00dflich \"normale\" Daten enthalten; <\/li>\n<li>Es ist erforderlich, ein aktuelles Modell zur korrekten Erkennung zu haben. Die \u00c4nderung von Trends und Saisonalit\u00e4ten in den Kennzahlen kann eine gro\u00dfe Anzahl von Fehlalarmen des Modells verursachen. Um das Modell zu aktualisieren, muss der Zeitpunkt klar definiert werden, an dem das Modell veraltet ist. Wenn das Modell zu sp\u00e4t oder zu fr\u00fch aktualisiert wird, wird h\u00f6chstwahrscheinlich eine gro\u00dfe Anzahl von Fehlalarmen folgen.<br \/>\nAuch darf die Suche nach und die Vermeidung von h\u00e4ufigen Fehlalarmen nicht vergessen werden. Es wird angenommen, dass diese haupts\u00e4chlich in au\u00dfergew\u00f6hnlichen Situationen auftreten. Sie k\u00f6nnen jedoch auch eine Folge des Fehlers des neuronalen Netzwerks aufgrund unzureichender Ausbildung sein. Es ist notwendig, die Anzahl der Fehlalarme des Modells zu minimieren. Andernfalls werden falsche Vorhersagen viel Zeit des Administrators in Anspruch nehmen, die f\u00fcr die System\u00fcberpr\u00fcfung vorgesehen ist. So wird es fr\u00fcher oder sp\u00e4ter dazu f\u00fchren, dass der Administrator einfach auf das \"paranoide\" \u00dcberwachungssystem nicht mehr reagiert.<\/li>\n<\/ol>\n<p><\/p>\n<h2>Recurrent Neural Network<\/h2>\n<p><\/p>\n<p>Zur Erkennung von Anomalien in Zeitreihen kann man <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%80%D0%B5%D0%BD%D1%82%D0%BD%D0%B0%D1%8F_%D0%BD%D0%B5%D0%B9%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D1%82%D1%8C\">ein rekurrentes neuronales Netzwerk <\/a><\/noindex>mit LSTM-Speicher verwenden. Das Problem ist nur, dass es nur f\u00fcr vorhersagbare Zeitreihen verwendet werden kann. In unserem Fall sind nicht alle Kennzahlen vorhersagbar. Der Versuch, RNN LSTM f\u00fcr die Zeitreihe anzuwenden, ist in Abbildung 4 dargestellt.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/d1a79122bf1c98f20b5d8795e6a666fe.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p><em>Abbildung 4. Beispiel der Arbeit eines rekurrenten neuronalen Netzwerks mit LSTM-Speichereinheiten<\/em><\/p>\n<p>Wie aus Abbildung 4 ersichtlich, konnte RNN LSTM die Anomaliesuche in diesem Zeitabschnitt erfolgreich durchf\u00fchren. Dort, wo das Ergebnis einen hohen Vorhersagefehler (mean error) aufweist, trat tats\u00e4chlich eine Anomalie in den Kennzahlen auf. Die Verwendung eines einzelnen RNN LSTM wird offensichtlich nicht ausreichen, da es nur f\u00fcr eine begrenzte Anzahl von Metriken anwendbar ist. Man kann dies als unterst\u00fctzende Methode zur Anomaliesuche verwenden. <\/p>\n<p><\/p>\n<h2>Autoencoder zur Vorhersage von Ausf\u00e4llen<\/h2>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%B2%D1%82%D0%BE%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D1%89%D0%B8%D0%BA\">Autoencoder<\/a><\/noindex> \u2013 im Wesentlichen ein k\u00fcnstliches neuronales Netzwerk. Die Eingabeschicht ist der Encoder, die Ausgabeschicht der Decoder. Der Nachteil aller neuronalen Netze dieses Typs ist, dass sie Anomalien schlecht lokalisieren. Es wurde die Architektur eines synchronen Autoencoders gew\u00e4hlt.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/bdec355107f1e22a7b608fcf7dcb0cf7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<p><em>Abbildung 5. Beispiel f\u00fcr die Funktionsweise eines Autoencoders<\/em><\/p>\n<p>Autoencoder werden auf normalen Daten trainiert und finden dann etwas Anomalisches in den in das Modell eingegebenen Daten. Genau das, was f\u00fcr diese Aufgabe ben\u00f6tigt wird. Es bleibt nur zu w\u00e4hlen, welcher der Autoencoder f\u00fcr diese spezielle Aufgabe geeignet ist. Die architektonisch einfachste Form eines Autoencoders besteht aus einem einfachen, nicht rekursiven neuronalen Netzwerk, das sehr \u00e4hnlich ist wie <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D0%BB%D0%BE%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BF%D0%B5%D1%80%D1%86%D0%B5%D0%BF%D1%82%D1%80%D0%BE%D0%BD_%D0%A0%D1%83%D0%BC%D0%B5%D0%BB%D1%8C%D1%85%D0%B0%D1%80%D1%82%D0%B0\">ein mehrschichtiger Perzeptron<\/a><\/noindex> (multilayer perceptron, MLP), mit einer Eingabeschicht, einer Ausgabeschicht und einer oder mehreren versteckten Schichten, die diese verbinden.<br \/>\nJedoch unterscheiden sich Autoencoder von MLP darin, dass der Ausgangslevel die gleiche Anzahl von Knoten hat wie der Eingang, und dass der Autoencoder nicht auf die Vorhersage eines Zielwerts Y trainiert wird, der durch den Eingang X vorgegeben ist, sondern darauf, seine eigenen X zu rekonstruieren. Daher sind Autoencoder un\u00fcberwachte Lernmodelle. <\/p>\n<p><\/p>\n<p>Die Aufgabe des Autoencoders besteht darin, die zeitlichen Indizes r0 \u2026 rn zu finden, die den anomalen Elementen im Eingangsvektor X entsprechen. Dieser Effekt wird durch die Suche nach dem quadratischen Fehler erreicht.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/f03800c42eb1998603c0ae217208d40a.jpg\" style=\"display:block;margin: 0 auto;\" \/> <\/p>\n<p><em>Abbildung 6. Synchroner Autoencoder<\/em><\/p>\n<p>F\u00fcr den Autoencoder wurde eine <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/2017\/abstracts\/2938.html\">synchrone Architektur<\/a><\/noindex>ausgew\u00e4hlt. Ihre Vorteile: die M\u00f6glichkeit, den Streaming-Modus zu verwenden, und eine vergleichsweise geringere Anzahl an Parametern des neuronalen Netzwerks im Vergleich zu anderen Architekturen.<\/p>\n<p><\/p>\n<h2>Der Mechanismus zur Minimierung von Fehlalarmen<\/h2>\n<p><\/p>\n<p>Angesichts der verschiedenen unerwarteten Situationen und der M\u00f6glichkeit einer unzureichenden Ausbildung des neuronalen Netzwerks wurde beschlossen, einen Mechanismus zur Minimierung von Fehlalarmen f\u00fcr das entwickelte Anomalieerkennungsmodell zu entwickeln. Dieser Mechanismus basiert auf einer Sammlung von Mustern, die vom Administrator klassifiziert wird. <\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D1%88%D0%BA%D0%B0%D0%BB%D1%8B\">Algorithmus zur dynamischen Transformation der Zeitachse<\/a><\/noindex> (DTW-Algorithmus, von engl. dynamic time warping) erm\u00f6glicht es, die optimale \u00dcbereinstimmung zwischen Zeitreihen zu finden. Er wurde erstmals in der Spracherkennung eingesetzt: Dabei wurde festgestellt, wie zwei Sprachsignale dasselbe gesprochene Wort darstellen. Sp\u00e4ter fand er auch in anderen Bereichen Anwendung.<\/p>\n<p><\/p>\n<p>Das Hauptprinzip zur Minimierung von Fehlalarmen besteht darin, eine Sammlung von Referenzen durch einen Operator zu erstellen, der verd\u00e4chtige F\u00e4lle klassifiziert, die durch neuronale Netze entdeckt wurden. Anschlie\u00dfend erfolgt der Vergleich der klassifizierten Referenz mit dem Fall, den das System erkannt hat, und es wird eine Schlussfolgerung \u00fcber die Zugeh\u00f6rigkeit des Falls zu einem Fehlalarm oder einem Problem getroffen. Der DTW-Algorithmus wird genau f\u00fcr den Vergleich zweier Zeitreihen verwendet. Das Hauptinstrument zur Minimierung bleibt jedoch die Klassifizierung. Es wird davon ausgegangen, dass das System nach der Sammlung einer gro\u00dfen Anzahl von Referenzf\u00e4llen seltener den Operator befragen wird, da die meisten F\u00e4lle \u00c4hnlichkeiten aufweisen.<\/p>\n<p><\/p>\n<p>Infolgedessen wurde auf der Grundlage der oben beschriebenen Methoden der neuronalen Netze ein experimentelles Programm zur Vorhersage von Systemausf\u00e4llen der \u201eWeb-Konsolidierung\u201c erstellt. Ziel dieses Programms war es, basierend auf dem vorhandenen Archiv von \u00dcberwachungsdaten und Informationen \u00fcber bereits aufgetretene Ausf\u00e4lle die Eignung dieses Ansatzes f\u00fcr unsere Softwaresysteme zu bewerten. Das Schema der Programmfunktion ist unten in Abbildung 7 dargestellt.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/08ad00dc7f8bd9463c786ce3d7469ed0.jpg\" style=\"display:block;margin: 0 auto;\" \/> <\/p>\n<p><em>Abbildung 7. Schema zur Vorhersage von Ausf\u00e4llen basierend auf der Analyse des Metrikraums<\/em><\/p>\n<p>Im Schema lassen sich zwei Hauptbl\u00f6cke erkennen: die Suche nach anomal auftretenden Zeitabschnitten im Datenstrom der \u00dcberwachung (Metriken) und der Mechanismus zur Minimierung von Fehlalarmen. Hinweis: Zu experimentellen Zwecken werden die Daten \u00fcber eine JDBC-Verbindung aus einer Datenbank abgerufen, in der sie in Graphite gespeichert werden.<br \/>\nIm Folgenden ist die Benutzeroberfl\u00e4che des aus der Entwicklung des \u00dcberwachungssystems erhaltenen Ergebnisses dargestellt (Abbildung 8).<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/e1123edf91c368a38151388a459514f4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>Abbildung 8. Benutzeroberfl\u00e4che des experimentellen \u00dcberwachungssystems<\/em><\/p>\n<p>Auf der Benutzeroberfl\u00e4che wird der Anomalie-Prozentsatz der erhaltenen Metriken angezeigt. In unserem Fall wird der Empfang simuliert. Wir haben bereits alle Daten der letzten Wochen und laden sie schrittweise zur \u00dcberpr\u00fcfung des Falls mit der Anomalie, die zum Ausfall f\u00fchrt, hoch. In der unteren Statusleiste wird der aktuelle Gesamtprozentsatz der Anomalie-Daten angezeigt, der mithilfe eines Autoencoders bestimmt wird. F\u00fcr die prognostizierten Metriken wird ebenfalls ein separater Prozentsatz angezeigt, der von einem RNN LSTM berechnet wird.<\/p>\n<p><\/p>\n<p>Beispiel f\u00fcr die Erkennung einer Anomalie an den CPU-Messwerten mithilfe des RNN LSTM (Abbildung 9).<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/b77517f01cb13031b28ae2ac7464fe19.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>Abbildung 9. RNN LSTM-Erkennung<\/em><\/p>\n<p>Ein ziemlich einfacher Fall, im Grunde ein normaler Ausrei\u00dfer, der jedoch zum Ausfall des Systems f\u00fchrt, wurde erfolgreich mit RNN LSTM berechnet. Der Anomaliewert in diesem Zeitraum liegt zwischen 85 und 95 %, alles \u00fcber 80 % (Schwelle experimentell festgelegt) wird als Anomalie angesehen.<br \/>\nBeispiel f\u00fcr die Erkennung einer Anomalie, als das System nach einem Update nicht starten konnte. Diese Situation erkennt der Autoencoder (Abbildung 10).<\/p>\n<p>\n<img decoding=\"async\" alt=\"Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe von Neuronalen Netzen voraus\" src=\"\/wp-content\/uploads\/2019\/12\/cf2e38fc569b3a4f8a3f150b396853cc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><em>Abbildung 10. Beispiel f\u00fcr die Erkennung durch den Autoencoder<\/em><\/p>\n<p>Wie aus der Abbildung zu sehen ist, blieb PermGen auf einem Niveau h\u00e4ngen. Der Autoencoder hielt das f\u00fcr merkw\u00fcrdig, da er zuvor so etwas nicht gesehen hatte. Hier betr\u00e4gt der Anomaliewert konstant 100 %, bis das System wieder in einen funktionsf\u00e4higen Zustand zur\u00fcckkehrt. Die Anomalie wird f\u00fcr alle Metriken angezeigt. Wie bereits erw\u00e4hnt, kann der Autoencoder Anomalien nicht lokalisieren. Der Operator ist in solchen Situationen beauftragt, diese Funktion zu erf\u00fcllen.<\/p>\n<p><\/p>\n<h2>Fazit<\/h2>\n<p><\/p>\n<p>Das PC-System \"Web-Konsolidierung\" wird nicht seit dem letzten Jahr entwickelt. Das System befindet sich in einem recht stabilen Zustand, und die Anzahl der registrierten Vorf\u00e4lle ist gering. Dennoch ist es gelungen, Anomalien zu finden, die zu Ausf\u00e4llen 5 bis 10 Minuten vor dem Auftreten eines Ausfalls f\u00fchren. In mehreren F\u00e4llen h\u00e4tte eine fr\u00fchzeitige Benachrichtigung \u00fcber den Ausfall helfen k\u00f6nnen, die f\u00fcr die Durchf\u00fchrung von \"Reparatur\"-Arbeiten festgelegte Zeit zu sparen.<\/p>\n<p><\/p>\n<p>Bei den Experimenten, die durchgef\u00fchrt werden konnten, ist es noch zu fr\u00fch f\u00fcr endg\u00fcltige Schlussfolgerungen. Momentan sind die Ergebnisse widerspr\u00fcchlich. Einerseits ist zu erkennen, dass Algorithmen auf Basis neuronaler Netze in der Lage sind, \"n\u00fctzliche\" Anomalien zu erkennen. Andererseits gibt es einen hohen Prozentsatz an falschen Positiven, und nicht alle Anomalien, die von einem qualifizierten Spezialisten erkannt werden, lassen sich von der Neuronalen Netz erkennen. Zu den Nachteilen geh\u00f6rt auch, dass das neuronale Netz derzeit f\u00fcr ein optimales Funktionieren ein supervised Learning erfordert.<\/p>\n<p><\/p>\n<p>F\u00fcr die weitere Entwicklung des Ausfallvorhersagesystems und die Verbesserung seines Zustands k\u00f6nnten mehrere Wege in Betracht gezogen werden. Dazu geh\u00f6rt eine detaillierte Analyse der F\u00e4lle mit Anomalien, die zu Ausf\u00e4llen f\u00fchren, was durch die Erg\u00e4nzung einer Liste kritischer Metriken, die den Zustand des Systems stark beeinflussen, und das Weglassen unn\u00f6tiger, nicht einflussreicher Metriken erreicht werden kann. Wenn wir in diese Richtung weiterarbeiten, k\u00f6nnten auch Versuche unternommen werden, Algorithmen speziell f\u00fcr unsere F\u00e4lle von Anomalien, die zu Ausf\u00e4llen f\u00fchren, zu spezialisieren. Es gibt auch einen anderen Weg: die Verbesserung der Architektur neuronaler Netze und damit eine Erh\u00f6hung der Erkennungsgenauigkeit bei gleichzeitig verk\u00fcrzter Lernzeit.<\/p>\n<p><\/p>\n<p>Ich danke meinen Kollegen, die mir bei der Erstellung und Aktualisierung dieses Artikels geholfen haben: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/vektory79\/\">Wiktor Werbiczkij<\/a><\/noindex> und Sergej Finoginow.<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/krista\/blog\/478392\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043a \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043e\u0442\u043a\u0430\u0437\u044b \u0438 \u0441\u0431\u043e\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0441\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f. \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043e\u0442\u043a\u0430\u0437\u044b \u0438 \u0441\u0431\u043e\u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0435\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u0443\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u2013 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u044e\u0434\u0435\u0439. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0443\u0436\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53531","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ishhem-anomalii-i-predskazyvaem-sboi-s-pomoshhyu-nejrosetej\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0449\u0435\u043c \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438 \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0431\u043e\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ishhem-anomalii-i-predskazyvaem-sboi-s-pomoshhyu-nejrosetej\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-03T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:26+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wir suchen Anomalien und sagen Ausf\u00e4lle mit Hilfe neuronaler Netze voraus | ProHoster","description":"Industrieentwicklung.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ishhem-anomalii-i-predskazyvaem-sboi-s-pomoshhyu-nejrosetej","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0449\u0435\u043c \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438 \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0431\u043e\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 | ProHoster","og:description":"\u041f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ishhem-anomalii-i-predskazyvaem-sboi-s-pomoshhyu-nejrosetej","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-03T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:26+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53531","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 07:46:24","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:23:55","updated":"2026-01-24 07:46:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/53531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=53531"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/53531\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=53531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=53531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=53531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}