Sie möchten 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 – keine Sorge: In diesem zweiteiligen Blog behandeln wir 10 wesentliche NRQL-Funktionen und -Klauseln, die Ihnen helfen, sich mit NRQL vertraut zu machen und tiefere Einblicke in Ihre Daten zu gewinnen. Mit diesen Funktionen und Klauseln können Sie Prozentsätze berechnen, Heatmaps und bedingte Widgets erstellen und vieles mehr. Durch den Einsatz von NRQL können Sie mehr aus Ihrer Datenanalyse herausholen. Sehen wir uns nun an, wie Sie mit NRQL wertvolle Erkenntnisse aus Ihren Daten gewinnen.
Nr. 1: X aus Y auswählen
SELECT X from Y , FROM Y SELECT X
Dies ist die einfachste Abfragemethode. Jede NRQL-Abfrage beginnt mit einer SELECT
-Anweisung oder einer FROM
-Klausel. Beginnen Sie Ihre erste Abfrage am besten mit FROM
. Dies zeigt Ihnen eine Liste der Werte für das verfügbare Event bzw. die verfügbare Metrik an, und SELECT
gibt an, welchen Teil eines Datentyps Sie abfragen möchten, indem Sie ein Attribut angeben oder eine Funktion. Beispielsweise werden mit SELECT * FROM Transaction
die Werte aller verfügbaren Attribute abgerufen, indem *
als Platzhalter verwendet wird.
Um die automatischen Vorschläge des Query Builders zu nutzen, verwenden Sie die FROM
-Klausel. Beispielsweise schlägt FROM Transaction SELECT transactionSubType
nur das relevante Attribut des ausgewählten Datensatzes vor.
Jede NRQL-Abfrage muss mit einer SELECT
-Anweisung oder einer FROM
-Klausel beginnen. Alle anderen Klauseln sind optional, aber wir könnten unsere anfängliche Abfrage weiter verbessern und beispielsweise den Zeitabschnitt genau angeben, Vergleiche anstellen oder Custom-Labels hinzufügen. Versuchen Sie Folgendes:
SINCE
Verwenden Sie die SINCE
-Klausel, um den Beginn einer Zeitspanne für die zurückgegebenen Daten zu definieren. Sie können eine Zeitzone für die Abfrage angeben, nicht jedoch für die Ergebnisse. NRQL-Ergebnisse basieren auf Ihrer Systemzeit, z. B. since 5 minutes ago
oder since 1 months ago limit max
. Hinweis: Der Standardwert ist 1 hour ago.
UNTIL
Dies wird verwendet, um einen anderen Endwert als den Standardwert anzugeben. Sobald eine Zeitspanne angegeben wurde, werden die Daten aufbewahrt und können nach Ablauf des Zeitraums überprüft werden. Hinweis: Der Standardwert ist NOW.
Hier ist ein nützliches Szenario, in dem wir SINCE
und UNTIL
kombinieren können, um ein Zeitreihendiagramm für max(duration)
von Transaktionen für 1 Monat abzüglich der Daten von heute zu erstellen:
FROM Transaction
SELECT MAX(duration)
WHERE appName = 'node-express-mongodb'
since 1 months ago until 1 DAY ago TIMESERIES auto
Hinweis: Es ist auch möglich, das absolute Datum und die Uhrzeit zu verwenden: SINCE '2022-10-10 09:00:00'
oder UNTIL '2022-10-10 10:00:00'
COMPARE WITH
Um die Werte für zwei verschiedene Zeitspannen zu vergleichen, erfordert COMPARE WITH
eine SINCE
- oder UNTIL
-Anweisung. Die durch COMPARE WITH
angegebene Zeit ist relativ zu der durch SINCE
oder UNTIL
angegebenen Zeit. Zum Beispiel: Durch SINCE 1 day ago COMPARE WITH 1 day ago
wird gestern mit dem Tag davor verglichen. Hier ist ein Beispiel zum Vergleichen der Werte für zwei verschiedene Zeitspannen:
SELECT average(duration) FROM Transaction SINCE 1 DAY AGO COMPARE WITH 1 WEEK AGO
AS
Die AS
-Klausel kann verwendet werden, um ein Attribut, einen Aggregator oder das Ergebnis einer mathematischen Funktion zu kennzeichnen. Dies kann beim Erstellen von Diagrammen äußerst hilfreich sein, da so das Ergebnis einer Gleichung oder einer Abfrage klarer identifiziert werden kann. Im Folgenden sehen Sie ein Beispiel für ein Diagramm, in dem AS
zur Beschriftung eines Datensatzes verwendet wurde. Diese Beschriftung kann das Verständnis der Diagrammergebnisse erleichtern, da sie die Quelle der Daten im Diagramm klar angibt.
SELECT count(*)/uniqueCount(session) AS 'Pageviews per Session'
FROM PageView
Nr. 2: Mathematische Funktionen
NRQL ermöglicht Ihnen die Verwendung einfacher und komplexer mathematischer Operatoren in einer SELECT
-Klausel. Sie können mathematische Berechnungen für einzelne Attribute und auch für die Ausgabe von Aggregatorfunktionen verwenden.
-
count : Damit wird die Anzahl der verfügbaren Datensätze ermittelt. Diese Funktion ähnelt SQL, sie zählt alle Datensätze für das angegebene Attribut.
FROM Transaction SELECT count(*)
-
average , min, max : – Damit werden Mindestwert, Höchstwert und Durchschnittswert eines Attributs berechnet. Sie können beispielsweise die Transaktionsdauer prüfen
FROM Transaction SELECT average(duration) ,max(duration), min(duration) WHERE host LIKE '%west%'
-
percentage : Damit berechnen Sie den Prozentsatz eines Zieldatensatzes. Das erste Argument erfordert eine Aggregatorfunktion für das gewünschte Attribut.
FROM TRANSACTION SELECT percentage(count(*), WHERE error IS true) AS 'Error Percent' WHERE host LIKE '%west%' EXTRAPOLATE
-
percentile : Damit lässt sich das Perzentil für das erforderliche Attribut berechnen
FROM TRANSACTION SELECT percentile(duration, 95, 75, 60) WHERE host LIKE '%west%' EXTRAPOLATE
Referenzen
- Erfahren Sie mehr über AGGREGATORFUNKTIONEN
Nr. 3: Zeitreihen
Verwenden Sie die TIMESERIES
-Klausel, um Daten als Zeitreihen zu erhalten, die in Zeitblöcke unterteilt sind. Diese Zeitblöcke werden auch „Buckets“ genannt und können als Sekunden, Minuten, Stunden usw. definiert werden.
Das Stichwort TIMESERIES
kann jeder Abfrage hinzugefügt werden, die eine Aggregationsfunktion verwendet, um die Werte im Zeitverlauf darzustellen.
FROM Transaction
SELECT MAX(duration)
WHERE appName = 'node-express-mongodb'
SINCE 1 MONTHS AGO
TIMESERIES AUTO
Sie können auch die Zeitabschnitte für die Serie definieren, z. B. TIMESERIES 30 seconds
, um Datenpunkte in der Serie in 30-Sekunden-Intervallen zu erfassen, TIMESERIES 1 minute
, um Datenpunkte in der Serie in 1-Minuten-Intervallen zu erfassen, und TIMESERIES max
, um alle Datenpunkte in der Serie ohne definiertes Intervall zu erfassen. Dadurch können Sie die Zeitabschnitte der Serie an den Zeitrahmen anpassen, mit dem Sie arbeiten möchten.
Referenzen
- Erfahren Sie mehr über TIMESERIES
Nr. 4: FACET (oder Gruppieren nach)
FACET
Verwenden Sie FACET
, um Ihre Ergebnisse bedingt nach Attributwerten zu gruppieren und für jede Gruppe zu trennen. Dies kann hilfreich sein, wenn Sie Ihre Daten nach verschiedenen Kategorien oder Dimensionen analysieren möchten.
Hier ist ein einfaches Beispiel mit der Klausel FACET
, in der Sie das Attribut PageView anhand jeder in Ihrem Datensatz vorhandenen Stadt gruppieren können:
SELECT count(*) FROM PageView FACET city
Das Ergebnis dieser Abfrage zeigt Ihnen die Anzahl der Seitenaufrufe für jede Stadt in Ihrem Datensatz, aufgeteilt in verschiedene Gruppen basierend auf dem City-Attribut.
FACET CASES
Die andere Variante von Facet
ist Facet Cases
. Wenn wir das Stichwort cases
zusammen mit Facet
verwenden, können wir der Abfrage mehrere Bedingungen hinzufügen oder sogar mehrere Attribute innerhalb eines FACET CASE
kombinieren.
Hier ist ein Beispiel, in dem Sie die FACET CASES-Klausel verwenden können, um PageView-Daten abzufragen und mehrere Ergebnisse unterschiedlicher Dauer aus dem Datensatz abzurufen:
SELECT count(*) FROM PageView
FACET CASES
(WHERE duration < 1,
WHERE duration > 1 and duration < 10)
Um Ihre Abfrageergebnisse besser lesbar und verständlicher zu machen, können Sie jeder Bedingung in den FACET CASES
ein benutzerdefiniertes Label zuweisen, indem Sie die Option as
für die Beschriftung verwenden:
SELECT count(*) from Transaction
FACET CASES(
where response.status LIKE '2%' OR httpResponseCode LIKE '2%' as '2xx Antworten',
where response.status LIKE '3%' OR httpResponseCode LIKE '3%' as '3xx Antworten',
where response.status LIKE '4%' OR httpResponseCode LIKE '4%' as '4xx Antworten',
where response.status LIKE '5%' OR httpResponseCode LIKE '5%' as '5xx Antworten'
)
Referenzen
Nr. 5: Filter
Das Filtern Ihrer Abfrageergebnisse kann nützlich sein, um die Ergebnisse auf die relevantesten Informationen einzugrenzen. NRQL bietet eine Vielzahl von Methoden zum Filtern Ihrer Datensätze.
Platzhalterfilter
Platzhalter- oder Wildcard-Filter sind sinnvoll, wenn Sie ein Abfrageergebnis mit einem bestimmten Muster für ausgewählte Datensatzeigenschaften filtern möchten. NRQL ermöglicht das Hinzufügen von Platzhalterfiltern mithilfe des Symbols %
.
Im folgenden Beispiel möchten wir einen Durchschnittswert für alle Eigenschaften in unserem Datensatz erhalten, die auf .duration enden. In den Ergebnissen sehen wir zwei Eigenschaften, die unserem Filter entsprechen:
FROM Metric SELECT average(%.duration) FACET metricName TIMESERIES
filter()
-Funktion
Die Funktion filter()
ist hilfreich, wenn wir Ergebnisse aus mehreren Attributen abfragen und kombinieren müssen. Mit filter()
können wir einfach mehrere Datensatzergebnisse in der Abfrage (durch Komma getrennt) kombinieren.
In diesem Beispiel verwenden wir einen Aggregator, um die Gesamtzahl aller Events in unserem Datensatz mit der Bezeichnung „Combined events“ aus den Attributen PageView und Transaction zu erhalten.
SELECT COUNT(*) AS 'Combined Events' FROM Transaction, PageView SINCE 1 DAY AGO
Wir können die Ausgabe interessanter gestalten, indem wir die Gesamtanzahl aller Events sowie die jeweilige Anzahl nur für die Events PageView- und Transaction anzeigen. Dazu verwenden Sie einfach die Funktion filter()
mit der folgenden Abfrage:
SELECT count(*) as 'Combined Events',
filter(count(*), WHERE eventType() = 'PageView') as 'Page Views',
filter(count(*), WHERE eventType()='Transaction') as 'Transactions'
FROM Transaction, PageView SINCE 1 DAY AGO
Hier ist ein weiteres Beispiel, in dem wir filter()
verwenden können, um mit der WHERE
-Klausel die Anzahl verschiedener Metriken aus der gesamten Transaction abzurufen:
FROM Transaction SELECT
filter(count(*), where request.uri not like '/api/%') as 'Others',
filter(count(*), where request.uri like '/api/tutorials%') as 'Tutorial Endpoints',
filter(count(*), where request.uri like '/api/weather%') as 'Weather Endpoints'
where appName = 'node-express-mongodb'
since 2 months ago limit max
Referenzen
- Lesen Sie mehr über FILTER()
In diesem Teil des Blogs haben wir die grundlegenden NRQL-Funktionen behandelt, die für einfache Datenabfragen erforderlich sind. Im nächsten Teil befassen wir uns mit den etwas komplexeren Features von NRQL. Mit diesen sind komplexe Datenabfragen und Visualisierungen möglich, sodass Sie das Beste aus Ihren Telemetriedaten herausholen können.
Nächste Schritte
Wenn Sie New Relic noch nicht nutzen, registrieren Sie sich für ein kostenloses Konto, um alle unsere Funktionen zu testen. Ihr kostenloses Konto beinhaltet 100 GB zur Datenerfassung, eine Komplettlizenz und unbegrenzte Basic-Lizenzen.
Im nächsten Teil dieser Blogserie erfahren Sie mehr zu weiteren NRQL-Funktionen und Best Practices.
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.