Mehr denn je benötigen Engineering-Teams Observability für ihren gesamten Stack. New Relic Data Plus trägt diesem Bedarf Rechnung – mit transparenten, kosteneffizienten Preisstrukturen auf GB-Basis. Kombiniert werden dabei unsere bestehenden Daten-Features mit branchenführender Sicherheit, Skalierbarkeit und Performance. Enthalten sind zudem auch Optimierungen und neue Funktionen wie erweiterte Retention für Indexing, Log-Verschleierung und FedRAMP mit einer Einsparung von insgesamt bis zu 56 % bei Kosten von $ 0,50 je Gigabyte.

Außerdem erhalten Sie mit Data Plus längere Abfragelängen: Die aktuelle Datenoption bietet eine Abfragelänge von 1 Minute. Data Plus erweitert die maximale Abfragelänge über New Relic Query Language (NRQL) und NerdGraph. Kund:innen mit Data Plus können somit:

  • NRQL-Abfragen über NerdGraph mit einer Länge von bis zu 10 Minuten durchführen
  • Reguläre NRQL-Abfragen mit einer Maximallänge von 2 Minuten durchführen

Wann macht NRQL Sinn?

Immer komplexere Systeme machen häufiger auch die Suche in großen Datensets notwendig. Mit NRQL lässt sich über den NRQL Query Builder oder die NerdGraph API Observability auf Ihren gesamten Tech-Stack erweitern. Weiter können so Custom-Dashboards konzipiert und Antworten auf geschäftliche Fragestellungen mit Daten eruiert werden. Beim neuen Abfragemaximum in Data Plus ist nun auch die Abfrage größerer Datensets ohne Timeout-Risiko möglich.

Die Nutzung der erweiterten Abfragelänge in Data Plus lässt sich wie folgt einsteuern:

Im vorliegenden Artikel sowie auch in unserem Video gehen wir darauf ein, wie Sie via NerdGraph Abfragen für größere Datenbanken durchführen.

Abfragelängen in NerdGraph

Mit Data Plus vermeiden Sie Probleme, die im Kontext von verkürzten Abfragelängen entstehen können, etwa bei der Fehlererkennung und allgemeinen Transparenz in Ihrem Stack. 

Wir empfehlen in diesem Zusammenhang unser Tutorial zum NerdGraph Explorer sowie den Abruf Ihres New Relic API-Key. Rufen Sie dann auch Ihre ID ab. Hier die zugehörige Abfrage mit NRQL:  

{
 actor {
   user {
     name
     id
   }
 }
}

Eine synchrone NRQL-Länge empfiehlt sich für kompaktere Abfragen wie diese und allgemein solche, die sich nicht über Millionen an Datenpunkten erstrecken. Im Fall von größeren, komplexeren Datenvolumina bietet jedoch 1 Minute womöglich nicht ausreichend Zeit, um relevante Ergebnisse abzurufen. Im folgenden Beispiel nutzen wir eine NRQL-Abfrage via NerdGraph für Transaktionen von vor 2 Monaten.

{
   actor {
      account(id: YOUR_ACCOUNT_ID) {
         nrql(query: "SELECT count(*) FROM Transaction since 2 months ago") {
            results
         }
      }
   }
}

Dabei war es mit der vorhergehenden Abfrage jedoch nicht möglich, Daten so weit aus der Vergangenheit abzurufen. Ist das der Fall, wird die Nachricht NRDB query duration exceeded the set timeout ausgegeben.Um Ergebnisse zu erhalten, müssen wir die Abfrage also über NerdGraph ausführen.

Signifikante Abfragelängen mit Data Plus

Für Abfragelängen von bis zu 10 Minuten lassen sich NRQL-Abfragen über unsere GraphQL API NerdGraph durchführen. Diese längeren Abfragen eignen sich für New Relic Instanzen, die täglich mehrere Millionen Events verarbeiten.

{
   actor {
      account(id: 1) {
         nrql(query: "SELECT count(*) FROM Transaction since 2 months ago, async: true) {
            results
            queryProgress {
               queryId
               resultExpiration
               retryAfter
               retryDeadline
            }
         }
      }
   }
}

Durch async: true wird diese Abfrage Ergebnisse ohne Unterbrechungsrisiko im Hintergrund erfassen und ausgeben. Nach Abschluss der Abfrage können die Ergebnisse dann mit diesem Befehl abgerufen werden. Wir empfehlen, Ihre queryId mit Copy+Paste an einem sicheren Speicherort zu erfassen, damit Sie sie bei Durchführung einer NerdGraph-Abfrage zur Verfügung haben und die Ergebnisse nach Abschluss abrufen können.

{
  actor {
    nrqlQueryProgress(accounts: YOUR_ACCOUNT_ID, queryID: “YOUR_QUERY_ID”
      results
    }
  }
}

Die Nutzung von NerdGraph-Abfragen kann zudem auch das Risiko von Abfrage-Unterbrechungen infolge von Browser-Timeouts und HTTP-Verbindungsabbrüchen reduzieren. Auch ein Abruf von Abfrage-Ergebnissen zu einem späteren Zeitpunkt ist möglich, ebenso wie eine exakte Wiederholung, bis die entsprechende Abfrage einen Fehler erfasst.