Stellen Sie eine Connect zu einer SAP HANA-Datenquelle her - Amazon Managed Grafana

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stellen Sie eine Connect zu einer SAP HANA-Datenquelle her

SAP HANA ist eine leistungsstarke In-Memory-Datenbank, die datengestützte Entscheidungen und Aktionen in Echtzeit beschleunigt. Sie wird von SAP entwickelt und vermarktet. Das SAP HANA-Datenquellen-Plugin hilft Ihnen, Ihre SAP HANA-Instanz mit Grafana zu verbinden.

Mit dem SAP HANA Grafana Enterprise-Plugin können Sie Ihre SAP HANA-Daten zusammen mit all Ihren anderen Datenquellen in Grafana sowie Protokoll- und Metrikdaten im Kontext visualisieren. Dieses Plugin enthält einen integrierten Abfrage-Editor, unterstützt Anmerkungen und ermöglicht es Ihnen, Schwellenwerte für Warnmeldungen festzulegen, den Zugriff zu kontrollieren, Berechtigungen festzulegen und vieles mehr.

Anmerkung

Diese Datenquelle ist nur für Grafana Enterprise bestimmt. Weitere Informationen finden Sie unter Zugriff auf Enterprise-Plug-ins verwalten.

In Workspaces, die Version 9 oder neuer unterstützen, müssen Sie für diese Datenquelle möglicherweise außerdem das entsprechende Plugin installieren. Weitere Informationen finden Sie unter Erweitere deinen Workspace mit Plugins.

Features

  • Abfrageeditor — Das Plugin verfügt über einen integrierten SQL-Abfrageeditor mit Syntaxhervorhebung, mit dem Sie Zeitreihen oder Tabellendaten visualisieren und grundlegende Grafana-Makros auto vervollständigen können.

  • Datenquellenberechtigungen — Steuern Sie, wer SAP HANA-Daten in Grafana anzeigen oder abfragen kann.

  • Anmerkungen — Überlagern Sie SAP HANA-Ereignisse oder -Daten in einem beliebigen Grafana-Diagramm, um Ereignisse mit anderen Grafikdaten zu korrelieren.

  • Warnmeldungen — Legen Sie in SAP HANA fest, dass auf Alarmen basierende Kennzahlen gespeichert werden.

  • Variablen für Abfragen — Erstellen Sie in Grafana Vorlagenvariablen, die auf SAP HANA-Daten basieren, und schließen Sie Variablen in SAP HANA-Abfragen ein, um Dashboards interaktiv zu gestalten.

Hinzufügen der Datenquelle

  1. Öffnen Sie die Grafana-Konsole im Amazon Managed Grafana-Arbeitsbereich und stellen Sie sicher, dass Sie angemeldet sind.

  2. Wählen Sie im Seitenmenü unter Konfiguration (das Zahnradsymbol) die Option Datenquellen aus.

  3. Wählen Sie Datenquelle hinzufügen aus.

    Anmerkung

    Wenn Sie den Link Datenquellen nicht in Ihrem Seitenmenü sehen, bedeutet dies, dass Ihr aktueller Benutzer die Admin Rolle nicht hat.

  4. Wählen Sie SAP HANA aus der Liste der Datenquellen aus.

  5. Geben Sie im Config-Editor die folgenden Informationen ein:

    • Geben Sie für Serveradresse die Adresse der SAP HANA-Instanz an. Beispiel:xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx.hana.trial-us10.hanacloud.ondemand.com.

    • Geben Sie für Serverport den Port der SAP HANA-Instanz an.

    • Geben Sie unter Benutzername den Benutzernamen ein, der für die Verbindung mit der SAP HANA-Instanz verwendet werden soll.

    • Geben Sie unter Passwort das Passwort für diesen Benutzer ein.

    • (Optional) Aktivieren Sie „TLS-Überprüfung überspringen“, wenn Sie die TLS-Überprüfung überspringen möchten.

    • (Optional) Aktivieren Sie TLS Client Auth, wenn Sie ein Client-Zertifikat und einen Client-Schlüssel angeben müssen.

    • (Optional) Aktivieren Sie „Mit CA-Zertifikat“, wenn Sie die Überprüfung von selbstsignierten TLS-Zertifikaten aktivieren möchten.

    • (Optional) Geben Sie unter Standardschema ein Standardschema ein, das verwendet werden soll. Wenn Sie dies weglassen, müssen Sie das Schema in jeder Abfrage angeben.

Zugriff und Berechtigungen

Verwenden Sie spezielle Anmeldeinformationen, um Grafana mit SAP HANA zu verbinden. Stellen Sie dem Benutzer nur die erforderlichen Berechtigungen zur Verfügung. Erstellen Sie zunächst einen eingeschränkten Benutzer mit Benutzername und Passwort. Die folgende Abfrage ist ein Beispiel für die Erstellung eines eingeschränkten Benutzers. Diese Abfrage deaktiviert auch die erzwungene Kennwortänderung.

CREATE RESTRICTED USER <USER> PASSWORD <PASSWORD> NO FORCE_FIRST_PASSWORD_CHANGE;

Erlauben Sie dem Benutzer anschließend, das System über Clients wie Grafana wie folgt zu verbinden:

ALTER USER <USER> ENABLE CLIENT CONNECT;

Geben Sie dem Benutzer abschließend Zugriff auf die erforderlichen Ansichten, Tabellen und Schemas.

ALTER USER <USER> GRANT ROLE PUBLIC; GRANT SELECT ON SCHEMA <SCHEMA> TO <USER>;

Berechtigungen auf Benutzerebene

Beschränken Sie den Zugriff auf SAP HANA, indem Sie auf der Datenquellenkonfigurationsseite auf die Registerkarte Berechtigungen klicken, um Datenquellenberechtigungen zu aktivieren. Auf der Berechtigungsseite können Administratoren Berechtigungen aktivieren und Abfrageberechtigungen auf bestimmte Benutzer und Teams beschränken.

Abfrage-Editor

Das SAP HANA Grafana-Plugin enthält einen SQL-Abfrageeditor, in den Sie beliebige HANA-Abfragen eingeben können. Wenn Ihre Abfrage Zeitreihendaten zurückgibt, können Sie sie als Zeitreihen formatieren, um sie in einem Grafikfeld zu visualisieren. Der Abfrage-Editor bietet auto Vervollständigung für unterstützte Grafana-Makros und Syntaxhervorhebung Ihrer SQL-Abfrage.

Anmerkungen

Sie können SAP HANA-Abfragen als Quellen für Grafana-Anmerkungen verwenden. Ihre Kommentarabfrage sollte mindestens eine Zeitspalte und eine Textspalte zurückgeben. Weitere Informationen zu Anmerkungen finden Sie unterAnmerkungen.

Um Anmerkungen aus SAP HANA zu erstellen
  1. Wählen Sie das Zahnradsymbol für die Dashboard-Einstellungen.

  2. Wählen Sie im linken Menü Anmerkungen, Neu aus.

  3. Wählen Sie im Dropdownmenü Datenquelle Ihre SAP HANA-Datenquelleninstanz aus.

  4. Geben Sie im Feld Abfrage eine SAP HANA-Abfrage ein, die mindestens ein Zeitfeld und ein Textfeld zurückgibt.

  5. Wählen Sie im Dropdownmenü Format als die Option Zeitreihe aus.

  6. Konfigurieren Sie für jede Anmerkung die Felder Von.

Vorlagen und Variablen

Informationen zum Hinzufügen einer neuen SAP HANA-Abfragevariablen finden Sie unterHinzufügen einer Abfragevariablen. Verwenden Sie Ihre SAP HANA-Datenquelle als Datenquelle.

Die folgende Beispielabfrage gibt die eindeutige Liste von username aus der users Tabelle zurück.

select distinct("username") from "users"
Anmerkung

Achten Sie darauf, dass Sie in Ihrer Variablenabfrage nur eine Spalte auswählen. Wenn Ihre Abfrage zwei Spalten zurückgibt, wird die erste Spalte als Anzeigewert und die zweite Spalte als der tatsächliche Wert der Variablen verwendet. Wenn Ihre Abfrage mehr als zwei Spalten zurückgibt, werden sie zurückgewiesen.

Vorlagen und Variablen

Sie können jede Grafana-Variable in Ihrer Abfrage verwenden. Die folgenden Beispiele zeigen, wie Sie die Einzel-/Mehrfachvariable in Ihrer Abfrage verwenden.

-- For example, following query select * from "users" where "city" = ${city} -- will be translated into select * from "users" where "city" = 'london' --- where you can see ${city} variable translated into actual value in the variable

Ähnlich wie Text funktionieren Variablen auch für numerische Felder. Im folgenden Beispiel ${age} handelt es sich um eine Textfeldvariable, die Zahlen akzeptiert und dann mit dem numerischen Feld in der Tabelle vergleicht.

select * from "users" where "age" > ${age} --- wil be translated into select * from "users" where "age" > '36'

Wenn Ihre Variable mehrere Werte zurückgibt, können Sie sie wie folgt in der in Bedingung der SAP HANA-Abfrage verwenden. Beachten Sie die Klammern, die die Variable umgeben, damit die where in Bedingung in SAP HANA gültig ist.

select * from "users" where "city" in (${cities}) --- will be translated into select * from "users" where "city" in ('london','perth','delhi') --- where you can see ${cities} turned into a list of grafana variables selected. --- You can also write the same query using shorthand notation as shown below select * from "users" where "city" in ($cities)

Makros

  • $__timeFilter(<time_column>)— Wendet den Zeitraum von Grafana auf die angegebene Spalte an, wenn er in der Rohabfrage verwendet wird. Gilt für date/timestamp/long Zeitspalten.

  • $__timeFilter(<time_column>, <format>)— Wie oben. Bietet jedoch die Möglichkeit, das Format der in der Datenbank gespeicherten time_column anzugeben.

  • $__timeFilter(<time_column>, "epoch", <format>)— Wie oben, kann aber verwendet werden, wenn sich Ihre Zeitspalte in der Epoche befindet. Das Format kann aus 's', 'ms' und 'ns' bestehen.

  • $__fromTimeFilter(<time_column>)— Wie oben, kann aber verwendet werden, wenn Ihre Zeitspalte im Epochenformat ist. Das Format kann aus 's', 'ms' und 'ns' bestehen.

  • $__fromTimeFilter(<time_column>, <comparison_predicate>)— Wie oben, kann aber comparison_predicate angeben.

  • $__fromTimeFilter(<time_column>, <format>)— Wie oben, kann aber das Format der Zeitspalte angeben.

  • $__fromTimeFilter(<time_column>, <format>, <comparison_predicate>)— Wie oben, kann aber comparison_predicate angeben.

  • $__toTimeFilter(<time_column>)— Gibt die Zeitbedingung auf der Grundlage von Grafanas zur Zeit in einem Zeitfeld zurück.

  • $__toTimeFilter(<time_column>, <comparison_predicate>)— Wie oben, kann aber comparison_predicate angeben.

  • $__toTimeFilter(<time_column>, <format>)— Wie oben, kann aber das Format der Zeitspalte angeben.

  • $__toTimeFilter(<time_column>, <comparison_predicate>)— Wie oben, kann aber comparison_predicate angeben.

  • $__timeGroup(<time_column>, <interval>)— Erweitert die Zeitspalte in Intervallgruppen. Gilt für date/timestamp/long Zeitspalten..

Makro $__timeFilter () <time_column>

Das folgende Beispiel erklärt das Makro: $__timeFilter(<time_column>)

- In the following example, the query select ts, temperature from weather where $__timeFilter(ts) --- will be translated into select ts, temperature from weather where ts > '2021-02-24T12:52:48Z' AND ts < '2021-03-24T12:52:48Z' --- where you can see the grafana dashboard's time range is applied to the column ts in the query.

Makro $__timeFilter (,) <time_column><format>

In einigen Fällen werden Zeitspalten in der Datenbank in benutzerdefinierten Formaten gespeichert. Im folgenden Beispiel wird das $__timeFilter(<time_column>, <format>) Makro erklärt, mit dessen Hilfe benutzerdefinierte Zeitstempel auf der Grundlage der Zeitauswahl von grafana gefiltert werden können:

SELECT TO_TIMESTAMP("TS",'YYYYMMDDHH24MISS') AS METRIC_TIME , "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TS","YYYYMMDDHH24MISS") -- TS is in 20210421162012 format SELECT TO_TIMESTAMP("TS",'YYYY-MON-DD') AS METRIC_TIME , "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TS","YYYY-MON-DD") -- TS is in 2021-JAN-15 format

Im Makro kann das Format eines der gültigen HANA-Formate sein, die Ihrer Zeitstempelspalte entsprechen. YYYYMMDDHH24MISSIst beispielsweise ein gültiges Format, wenn Ihre Daten im 20210421162012 Format gespeichert werden.

Makro $__timeFilter (, „epoch“) <time_column><format>

In einigen Fällen werden Zeitstempel als Epochenzeitstempel in Ihrer Datenbank gespeichert. Das folgende Beispiel erklärt das $__timeFilter(<time_column>, "epoch" <format>) Makro, das hilft, Epochenzeitstempel auf der Grundlage von Grafanas Zeitauswahl zu filtern. Im Makro kann das Format ms, s oder ns sein. Wenn nicht angegeben, wird s als Standardformat behandelt.

SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP") AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch") -- Example : TIMESTAMP field stored in epoch_second format 1257894000 SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP") AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","s") -- Example : TIMESTAMP field stored in epoch_second format 1257894000 SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","ms") -- Example : TIMESTAMP field stored in epoch_ms format 1257894000000 SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000000000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","ns") -- Example : TIMESTAMP field stored in epoch_nanoseconds format 1257894000000000000

Anstatt das dritte Argument für den $__timeFilter zu verwenden, können Sie eines von epoch_s, epoch_ms oder epoch_ns als Ihr zweites Argument verwenden..

SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch","ms") -- is same as SELECT ADD_SECONDS('1970-01-01', "TIMESTAMP"/1000) AS "METRIC_TIME", "VALUE" FROM "SCH"."TBL" WHERE $__timeFilter("TIMESTAMP","epoch_ms")

fromTimeFilterDie toTimeFilter Makros $__ () und $__ ()

Das $__fromTimeFilter() Makro wird auf eine Bedingung über ein Zeitfeld ausgedehnt, die auf der From-Zeit der Grafana-Zeitauswahl basiert.

Dies akzeptiert drei Parameter. Der erste Parameter ist der Name des Zeitfeldes. Sie können comparison_predicate oder das Format der Zeitspalte als zweites Argument übergeben. Wenn Sie beide übergeben möchten, ist format der zweite Parameter und Sie verwenden comparison_predicate als dritten Parameter.

<format>Wenn das Format nicht angegeben ist, geht das Plugin davon aus, dass die Zeitspalte deaktiviert isttimestamp/date type. If your time column is stored in any other format than timestamp/date, und übergibt dann das Format als zweites Argument. <format>kann eines von epoch_s, epoch_ms, epoch_ns oder ein anderes benutzerdefiniertes Format sein. YYYY-MM-DD

<comparison_predicate>optionaler Parameter. Wenn nicht übergeben, verwendet das Plugin > als Vergleichsprädikat. <comparison_predicate>kann einer von =,! sein =, <>, <, <=, >, >=

$__toTimeFilter()funktioniert genauso wie fromTimeFilter $__ (). Anstatt Grafanas from time zu verwenden, wird es to time verwenden. Außerdem wird das Standard-Vergleichsprädikat < sein.

$__timeGroup (,) <time_column><interval>

Beispielsweise wird das Makro $__timeGroup (timecol,1h) in der Abfrage zu SERIES_ROUND („timecol“, 'INTERVAL 1 HOUR') erweitert.

Das folgende Beispiel erklärt $__timeGroup(<time_column>, <interval>) macro.

SELECT $__timeGroup(timestamp,1h), "user", sum("value") as "value" FROM "salesdata" WHERE $__timeFilter("timestamp") GROUP BY $__timeGroup(timestamp,1h), "user" ORDER BY $__timeGroup(timestamp,1h) ASC

Dies wird in die folgende Abfrage übersetzt, in der $__timeGroup(timestamp,1h) es erweitert wirdSERIES_ROUND("timestamp", 'INTERVAL 1 HOUR').

SELECT SERIES_ROUND("timestamp", 'INTERVAL 1 HOUR') as "timestamp", "user", sum("value") as "value" FROM "salesdata" WHERE "timestamp" > '2020-01-01T00:00:00Z' AND "timestamp" < '2020-01-01T23:00:00Z' GROUP BY SERIES_ROUND("timestamp", 'INTERVAL 1 HOUR'), "user" ORDER BY "timestamp" ASC
Anmerkung

Wenn Sie das Makro „Gruppieren nach“ mit dem Makro „$__TimeGroup“ verwenden, stellen Sie sicher, dass das Feld „Auswählen, Sortieren nach“ denselben Namen hat wie das Makro „Gruppieren nach Feld“. Andernfalls erkennt HANA die Abfrage möglicherweise nicht.

Wenn Sie das Intervall in der Funktion $__timeGroup () nicht fest codieren möchten, können Sie das Grafana überlassen, indem Sie $__interval als Ihr Intervall angeben. Grafana berechnet dieses Intervall aus dem Dashboard-Zeitbereich. Beispielabfrage:

SELECT $__timeGroup(timestamp, $__interval), sum("value") as "value" FROM "salesdata" WHERE $__timeFilter("timestamp") GROUP BY $__timeGroup(timestamp, $__interval) ORDER BY $__timeGroup(timestamp, $__interval) ASC

Diese Abfrage wird basierend auf dem Dashboard-Zeitraum in die folgende Abfrage übersetzt.

SELECT SERIES_ROUND("timestamp", 'INTERVAL 1 MINUTE'), sum("value") as "value" FROM "salesdata" WHERE "timestamp" > '2019-12-31T23:09:14Z' AND "timestamp" < '2020-01-01T23:17:54Z' GROUP BY SERIES_ROUND("timestamp", 'INTERVAL 1 MINUTE') ORDER BY SERIES_ROUND("timestamp", 'INTERVAL 1 MINUTE') ASC

Warnfunktion

Um eine SAP HANA-Warnung in Grafana einzurichten
  1. Erstellen Sie ein Grafikfenster in Ihrem Dashboard.

  2. Erstellen Sie eine SAP HANA-Abfrage im Zeitreihenformat.

  3. Wählen Sie die Registerkarte Warnung und geben Sie die Warnkriterien an.

  4. Wählen Sie Testregel, um die Warnungsabfrage zu testen.

  5. Geben Sie die Empfänger der Warnung, die Nachricht und die Fehlerbehandlung an.

  6. Speichern Sie das Dashboard.

Warnung bei Daten, die keine Zeitreihendaten sind

Um bei Daten, die keine Zeitreihen sind, eine Warnung zu erhalten, verwenden Sie das TO_TIMESTAMP('${__to:date}') Makro, um Metriken, die keine Zeitreihen sind, in Zeitreihen umzuwandeln. Dadurch wird Ihre Metrik in eine Einzelpunkt-Zeitreihenabfrage umgewandelt. Das Format der Abfrage ist unten angegeben

SELECT TO_TIMESTAMP('${__to:date}'), <METRIC> FROM <TABLE≶ WHERE <YOUR CONDITIONS>

Im folgenden Beispiel hat eine Tabelle vier Felder mit den Namen Benutzername, Alter, Stadt und Rolle. Diese Tabelle hat kein Zeitfeld. Wir möchten Sie benachrichtigen, wenn die Anzahl der Benutzer mit Entwicklerrolle unter drei liegt.

SELECT TO_TIMESTAMP('${__to:date}'), count(*) as "count" FROM ( SELECT 'John' AS "username", 32 AS "age", 'Chennai' as "city", 'dev' as "role" FROM dummy UNION ALL SELECT 'Jacob' AS "username", 32 AS "age", 'London' as "city", 'accountant' as "role" FROM dummy UNION ALL SELECT 'Ali' AS "username", 42 AS "age", 'Delhi' as "city", 'admin' as "role" FROM dummy UNION ALL SELECT 'Raja' AS "username", 12 AS "age", 'New York' as "city", 'ceo' as "role" FROM dummy UNION ALL SELECT 'Sara' AS "username", 35 AS "age", 'Cape Town' as "city", 'dev' as "role" FROM dummy UNION ALL SELECT 'Ricky' AS "username", 25 AS "age", 'London' as "city", 'accountant' as "role" FROM dummy UNION ALL SELECT 'Angelina' AS "username", 31 AS "age", 'London' as "city", 'cxo' as "role" FROM dummy ) WHERE "role" = 'dev'