Möchten Sie Ihre New Relic-Daten besser verstehen? New Relic Query Language (NRQL) kann helfen. Mit NRQL können Sie Ihre Daten in Echtzeit analysieren. Auch wenn es auf den ersten Blick überwältigend erscheinen kann, machen Sie sich keine Sorgen. In diesem zweiteiligen Blog behandeln wir 10 wesentliche NRQL-Funktionen und -Klauseln, die Ihnen helfen werden, NRQL besser zu verstehen und tiefere Einblicke in Ihre Daten zu gewinnen. Mit diesen Funktionen und Klauseln können Sie Prozentsätze berechnen, Heatmaps erstellen, bedingte Widgets erstellen und vieles mehr. Durch den Einsatz von NRQL können Sie mehr aus Ihrer Datenanalyse herausholen. Erfahren Sie, wie Sie mit NRQL wertvolle Erkenntnisse aus Ihren Daten gewinnen.
In Teil 1 dieses Blogs haben wir die grundlegenden NRQL-Funktionen behandelt, die zum Abfragen von Daten erforderlich sind. In Teil 2 befassen wir uns mit den etwas komplexeren Funktionen von NRQL. Wir behandeln Themen wie Histogramme, Heatmaps und erweiterte Vergleichsoperatoren. Wir untersuchen, wie Sie mit NRQL komplexe Datensätze analysieren und Muster und Trends in Ihren Daten identifizieren können. Und wir betrachten einige Best Practices zum Schreiben effizienter Abfragen und zur Leistungsoptimierung Ihrer NRQL-Abfragen.
Nr. 6: Latest
Mit der Funktion latest()
können Benutzer:innen den aktuellsten Wert eines Attributs über einen bestimmten Zeitraum abrufen. Mit einem einzelnen Attribut als Eingabe kann es den zuletzt aufgezeichneten Wert zurückgeben.
Hier ist ein einfaches Beispiel zum Abrufen des neuesten Werts des Attributs city im Karten-Widget aus dem PageView-Event:
FROM PageView
SELECT LATEST(city) AS 'Name:City'
FACET STRING(asnLatitude, precision: 5) AS 'Lat',
STRING(asnLongitude, precision: 5) As 'Lang'
SINCE 1 HOUR AGO
LIMIT MAX
Referenzen
- Erfahren Sie mehr über latest.
- Erfahren Sie mehr über das Karten-Widget.
Nr. 7: Wenn
Was tun Sie, wenn Sie eine einfache if-then-else-Kontrollstruktur mit Ihrer Abfrage benötigen, um eine bedingte Ausgabe zu erhalten? NRQL stellt Ihnen eine if()
-Funktion zur Verfügung, die in Kombination mit der SELECT
-Klausel nützlich ist.
Hier ist ein einfaches Beispiel, in dem wir den Workload-Status überprüfen und die Ausgabe basierend auf der Eigenschaft statusValue
als Ein oder Aus anzeigen:
FROM WorkloadStatus
SELECT LATEST(IF(statusValue = 'OPERATIONAL', '🟢 On', '🔴 Off')) AS 'Workload Status'
SINCE 30 SECONDS AGO
Klar können Sie in den Labels Emojis verwenden 😄. NRQL unterstützt die meisten Emojis 🤩.
Referenzen
- Lesen Sie mehr über if().
Nr. 8: Aparse
aparse
ist eine nützliche Funktion, um bestimmte Werte aus einer Zeichenfolge zu extrahieren. Sie können damit Strings parsen, die strukturierte Daten enthalten, und daraus bestimmte Werte extrahieren. Dies kann besonders nützlich sein, wenn Sie Logdaten oder andere Arten unstrukturierter Daten analysieren müssen.
aparse()
benötigt zwei Argumente:
– Ein Attribut mit einem String-Wert.
– Ein Zeichenmuster, das Ankerzeichenfolgen und zu extrahierende Zeichen enthält. Beispielsweise kann www.*.com
verwendet werden, um nur den Domain-Teil aus einer URL zu extrahieren.
Das folgende Bild ist ein Beispiel, bei dem der Hoststandort einen vorab festgelegten Wert enthält:
Im nächsten Beispiel extrahiert die Abfrage nur den gewünschten Teil der Zeichenfolge aus dem Ergebnis, behält jedoch den Standortnamen bei, nachdem der Präfixteil basierend auf dem angegebenen Anker-/Regex-Muster entfernt wurde.
SELECT APARSE(hostname,'host-tower-*') AS hostLocation
FROM SystemSample
WHERE hostname LIKE '%tower%'
Referenzen
- Lesen Sie mehr über aparse.
Nr. 9: Unterabfragen
NRQL unterstützt auch Unterabfragen. Dies sind Abfragen innerhalb anderer Abfragen. Unterabfragen sind eine leistungsstarke Möglichkeit, mehrere Abfragen zusammen in NRQL zu verwenden und Ergebnisse aus mehreren verschiedenen Datasets zu generieren.
Hier ist ein einfaches Beispiel, in dem wir alle Transaktionen für Hosts filtern und finden, die Logfehler aufweisen, ohne explizit Hostnamen anzugeben:
FROM Transaction
SELECT appId, appName, containerId, request.method
WHERE hostname = (
FROM Log
SELECT latest(host)
WHERE level = 'ERROR'
)
Unterabfrage mit IN-Klausel
Ein weiterer guter Use Case einer Unterabfrage ist die Erstellung einer dynamischeren Abfrage, anstatt mehrere Werte für Bedingungen zu schreiben. Wir können die IN()
-Klausel mit einer Unterabfrage verwenden, was nützlich ist, wenn sich die Filterkriterien im Laufe der Zeit ändern oder erhöhen könnten.
Hier ist ein Beispiel für einen Use Case:
Um die durchschnittliche Dauer aller Transaktionen für TransactionError über alle Entities hinweg zu ermitteln, können wir eine Beispielabfrage verwenden. Diese Abfrage sucht nach allen entity.guids unter Verwendung einer Unterabfrage und wendet dann das Ergebnis auf die WHERE
-Klausel für die Aggregation von average(duration)
an.
SELECT AVERAGE(duration) FROM Transaction
WHERE entity.guid IN (SELECT UNIQUES(entity.guid) FROM TransactionError)
FACET appName TIMESERIES LIMIT 3
Referenzen
- Lesen Sie mehr über Unterabfrage.
Nr. 10: Histogramme und Heatmaps
Histogramm
Mit Histogrammen können Benutzer:innen schnell Muster, Verteilungen und Trends in ihren Daten erkennen.
histogram()
akzeptiert drei Argumente:
– Attributname
– Höchstwert des Sampling-Bereichs
– Gesamtzahl der Buckets (zwischen 1 und 500), wobei die Bereichsgrenzen eingeschlossen sind
Sie können aus PageView ein Histogramm der Antwortzeiten erstellen (bis zu 10 Sekunden über 20 Buckets). Die Abfrage erzeugt eine Ausgabe von 20 verschiedenen Zeitblöcken (oder Buckets) auf der X-Achse für die Gesamtzahl der Anfragen auf der Y-Achse für das Attribut “duration” aus PageView.
SELECT HISTOGRAM(duration, 10, 20) FROM PageView SINCE 1 week ago
Heatmaps
Heatmaps()
sind nützlich für die Visualisierung von Mustern in einem Datensatz. Die Farbintensität in der Heatmap ändert sich von heller zu dunkler, wenn die Werte steigen oder fallen.
Um eine Heatmap zu erstellen, verwenden Sie die Funktion Histogram() mit nur einem einzigen, numerischen Attribut und fügen Sie eine FACET-Klausel hinzu. Hier ist ein Beispiel einer Heatmap, die die verschiedenen Betriebssysteme zeigt, von denen aus in den letzten drei Stunden auf unsere Website zugegriffen wurde.
SELECT HISTOGRAM(duration) FROM PageView FACET userAgentOS SINCE 3 HOURS AGO
Referenzen
- Lesen Sie mehr über Histogramme.
Wichtigste Erkenntnisse
Hier ist eine Liste aller in dieser Serie behandelten Funktionen und Klauseln:
Wenn Sie NRQL beherrschen, können Sie Ihre Daten erfassen und interpretieren und so das Gesamtbild in leicht verständliche Teile zerlegen. Dies hilft Ihnen, auftretende Probleme zu erkennen, Ihre Daten in Echtzeit zu analysieren und wertvolle Erkenntnisse zu gewinnen. Unabhängig davon, ob Sie die Performance optimieren, Trends erkennen oder wichtige Metriken überwachen möchten, um zu fundierten Geschäftsentscheidungen zu gelangen, ist NRQL ein unverzichtbares Tool, das Ihnen dabei helfen kann, Ihre Daten umfassend zu verstehen.
Nächste Schritte
Wenn Sie New Relic noch nicht nutzen, registrieren Sie sich für ein kostenloses Konto, um alle unsere Funktionen zu testen. Das Einstiegskonto ist komplett kostenlos und beinhaltet 100 GB zur Datenerfassung sowie eine Komplettlizenz und unbegrenzte Basic-Lizenzen.
- Sie können NRQL interaktiv lernen, indem Sie unsere NRQL-Lern-App verwenden.
- Erkunden Sie den Query Builder von New Relic und erstellen Sie Ihre eigenen Diagramme und Dashboards.
- Erfahren Sie mehr über unsere NRQL-Konsole und werden Sie NRQL-Profi.
- Kommen Sie aus der Prometheus-Welt? New Relic unterstützt Abfragen im PromQL-Stil.
Die in diesem Blog geäußerten Ansichten sind die des Autors und spiegeln nicht unbedingt die Ansichten von New Relic wider. Alle vom Autor angebotenen Lösungen sind umgebungsspezifisch und nicht Teil der kommerziellen Lösungen oder des Supports von New Relic. Bitte besuchen Sie uns exklusiv im Explorers Hub (discuss.newrelic.com) für Fragen und Unterstützung zu diesem Blogbeitrag. Dieser Blog kann Links zu Inhalten auf Websites Dritter enthalten. Durch die Bereitstellung solcher Links übernimmt, garantiert, genehmigt oder billigt New Relic die auf diesen Websites verfügbaren Informationen, Ansichten oder Produkte nicht.