Grafana: Grafana 2.0: SQL-Datenquelle

Erstellt am 28. Feb. 2015  ·  168Kommentare  ·  Quelle: grafana/grafana

Mit dem Backend kommt die Möglichkeit, eine SQL-Datenquelle zu haben.

Ich denke, dass Sie beim Hinzufügen der Datenquelle

  • db type (zunächst nur mysql und postgres und sqlite3)
  • db-verbindungsdetails
  • Angeben einer Metrikabfragevorlage (im Grunde eine SQL-Abfrage mit Parametern)
  • eine Anmerkungsabfragevorlage angeben

Vielleicht auch eine Option, um RAW-SQL-Abfragen von der Panel-Metrik-Abfrageschnittstelle zuzulassen.

Irgendwelche anderen Ideen?

typfeature-request

Hilfreichster Kommentar

+1 für SQLite

Alle 168 Kommentare

Ich persönlich würde etwas mehr in der Art von Cassandra (CQL) oder SparkSQL vorschlagen

Wow, das ist uns sehr nützlich.

  • Fügen Sie ein Array von DB-Servern für den Lastausgleich hinzu
  • ein Feld, das ein LIMIT X mit der Abfrage verkettet
  • ein Schalter für ORDER BY ASC DESC
  • Wählen Sie DB-Spalten für TIME und für VALUE aus der MySQL-Tabelle?

@phagedorn einige davon, nicht sicher über den Schalter für die Reihenfolge asc/desc, grafana möchte sie immer in aufsteigender Reihenfolge (nach Zeit). bin mir auch bei der Grenze x nicht sicher.

eher wie eine Metrik-Abfragevorlage (vom Benutzer geschrieben, wenn er die Datenquelle hinzufügt), dies ist nur ein Beispiel, habe noch nicht darüber nachgedacht.

SELECT MyValue as Value, Timestamp as Time 
  FROM MyMetrics
  WHERE SeriesName IN (?SeriesList) AND Time > (?TimeFrom) AND Time < (?TimeTo)
  ORDER BY Timestamp ASC 

@syepes Ich denke als erster Schritt, um etwas Einfaches zu implementieren. Könnten Sie genauer beschreiben, was es braucht, um CQL oder SparkSQL auf einer generischen SQL-Datenbank zu implementieren, und welche Vorteile? SparkSQL sieht aus analytischer Sicht interessant aus, irgendeine Golang-Implementierung?

+1 für das Zulassen von Roh-SQL

@torkelo :
Würde für mich für vorhandene Tabellen funktionieren

Wird diese Datenquelle einen Vorschlagseditor haben? Welche DB-Backends für diese Datenquelle können verwendet werden?

auch daran interessiert, rohes SQL zuzulassen

Anfänglich mysql und postgres, keine automatische Vervollständigung wird anfänglich nicht enthalten sein

interessiert +1

:+1: für Postgres

:+1: für Postgres

:+1: für Postgres mit JSON-Typ

:+1: für Postgres mit JSON-Typ

Irgendeine Idee über die Roadmap, wann die SQL-Datenquelle verfügbar sein wird? In 2.0 oder 2.1?

@juliusloman nicht sicher, vielleicht in 2.2 oder 2.3, so viel anderes Zeug, das auf 2.1 geschoben wurde, das zuerst passieren muss

Aber eine PR ist immer willkommen

Mit einer SQL-Datenquelle wird grafana definitiv zu einem der besten Analysetools. Ich würde es sehr gern sehen. Torkel, sorry, ich kenne mich mit Github nicht aus, was beinhaltet PR?
+

@hceylan97 es bedeutet, dass jemand versucht, es zu implementieren und es als Pull-Request (dh Feature-Patch) einreicht ein paar Monate

außer dir, neugierig, ob noch jemand daran arbeitet?

:+1:

+1 mysql

@torkelo Ich könnte eine PR dafür starten, bis der erwartete Arbeitsaufwand ist. Würde gerne herausfinden, wie man neue Datenquellen erstellt, damit wir mehr in Grafana integrieren können. Könnten Sie einen Überblick darüber geben, was getan werden muss, um eine neue Datenquelle hinzuzufügen, und die verbleibende Arbeit für die generische SQL-Unterstützung?

+1 Orakel

+1 MS-SQL

:+1: für Postgres mit JSON-Typ

+1 postgres / postgres mit JSON-Typ

@torkelo pingt erneut, da dies um zwei Monate

@agilgur5 wurde noch nicht daran gearbeitet

@torkelo was ist mit d0d995d? Auf jeden Fall wäre eine Übersicht sehr dankbar

@agilgur5 das war hauptsächlich Arbeit am Datenquellen-Plugin-System, nichts Spezifisches für eine SQL-Datenquelle

+1 MS-SQL !!!

mit MySQL davor können Sie in jede SGBD mit Engine XA & Connect einfügen!

Angeben einer Metrikabfragevorlage (im Grunde eine SQL-Abfrage mit Parametern)
eine Anmerkungsabfragevorlage angeben

Ich frage mich, ob das benötigt wird? Vielleicht können wir den zusätzlichen Aufwand vermeiden.
Reicht es nicht aus, die Tabelle und die Spalten anzugeben, wenn Sie den DS verwenden? oder geben Sie die Tabelle im DS an, sodass Sie bei der Verwendung nur Spalten angeben müssen. Ich vermute, dass es viele Tabellen mit jeweils nur wenigen Spalten geben wird.

Wie ist die ETA dafür?

@EliSnow https://github.com/grafana/grafana/milestones sagt um den 29. September herum. Diese Funktion allein könnte zuvor ausgeführt werden, und es besteht auch die Möglichkeit, dass sie zurückgedrängt wird (wie bereits ein paar Mal). Unabhängig davon glaube ich nicht, dass daran vor der Veröffentlichung von 2.1 gearbeitet wird.

+1 MS-SQL; +1 Abfrage mit Parametern
Eigentlich, warum ich frage. Der einfachste Weg, Leistungsindikatoren aus zahlreichen Windows-Boxen in Szene zu setzen, besteht darin, Datensammler darauf zu konfigurieren, um Daten ohne "Middleware-Sammler" direkt in MS SQL zu übertragen. Es wäre also wirklich großartig, eine Option zu haben, um diese Daten aus MS SQL zu lesen. Das wäre also eine wirklich tolle Option!

+1 - Postgres.

Postgres ist einfach eine phänomenale DB. Wenn ich Zeit habe, schaue ich mir das @torkelo an

@torkelo , ich möchte dazu beitragen, dass dies /public/app/plugins/datasource ansieht , scheint es sich nur um Javascript (Angular + AMD) und einige HTML-Vorlagen zu handeln. Ist ein Go-Code erforderlich, um dies zum Laufen zu bringen, oder handelt es sich ausschließlich um Javascript?

Da SQL-Datenbanken normalerweise keine http-API haben, wird es wahrscheinlich etwas Backend-Go-Code geben

+1 MySQL & Kassandra

Dies ist etwas abseits des Themas, aber ich denke, ein guter Schritt (oder alternativer Schritt) zum Erhalten einer SQL-Datenquelle. Es wäre großartig, einem Administratorbenutzer über die Benutzeroberfläche das Hinzufügen einer benutzerdefinierten HTTP-Datenquelle zu ermöglichen.

Der Admin-Benutzer könnte die Basis-URL und eine Javascript-Funktion angeben, die eine Abfrage in eine tatsächliche http-Anfrage umwandelt. Sie könnten auch Javascript-Mapping-Funktionen bereitstellen, die die von der http-Anfrage zurückgegebenen Daten in ein von Grafana verstandenes gemeinsames Format umwandeln. Schließlich könnte es eine Schnittstelle geben, über die Benutzer ihren eigenen UI-Abfrage-Builder erstellen können, der Hinting und dergleichen ermöglicht. Einer der wichtigsten Bestandteile davon ist, dass es gut dokumentiert werden muss.

Warum ist das für dieses Thema relevant? Einige Benutzer entscheiden sich möglicherweise dafür, ihre SQL-Datenbank über einen HTTP-Endpunkt zugänglich zu machen, anstatt einen direkten Zugriff zuzulassen. Möglicherweise befindet sich grafana nicht im selben Netzwerk wie die Datenbank und hat aus Sicherheitsgründen keinen direkten Zugriff. Selbst wenn die Datenbank direkt zugänglich ist und der Benutzer Roh-SQL bereitstellen könnte, besteht immer noch das Problem, dass grafana bei einer willkürlichen SQL-Abfrage nicht weiß, in welchem ​​​​Format die Daten zurückgegeben werden, und die Javascript-Mapping-Funktionen weiterhin erforderlich sind (vielleicht auf Grafik-/Dashboard-Ebene).

Um XSS zu vermeiden, möchten wir vielleicht nicht, dass ein Nicht-Admin-Benutzer ein Dashboard bearbeitet und Javascript-Funktionen zur Verfügung stellt, die auf der Seite ausgeführt werden. Dies könnte vermieden werden, indem verlangt wird, dass SQL-Abfragen Daten in einem bestimmten Format zurückgeben. Alternativ könnte XSS vielleicht durch CSP abgeschwächt werden.

Mir ist klar, dass eine entschlossene Person derzeit eine benutzerdefinierte HTTP-Datenquelle hinzufügen kann, indem sie den Quellcode bearbeitet, aber dies ist schwieriger, weil: 1) es nicht dokumentiert ist (das ist mir bekannt) und 2) es erfordert, dass unterschiedliche Personen verwendet werden beteiligt, wobei eine Person in einer Position ist, in der die Rollen "devops" und "grafana admin" von verschiedenen Personen erfüllt werden.

Ich persönlich konnte eine benutzerdefinierte SQL-Datenquelle über einen HTTP-Endpunkt hinzufügen, der die influxdb-Schnittstelle nachahmte. Der Abfrage-Generator ermöglicht es dem Benutzer, beliebige Abfragen anzugeben. Ich musste nur sicherstellen, dass mein Endpunkt Daten in einem Format wie influxdb zurückgibt. Es ist großartig, aber es ist hacky und lässt viel zu wünschen übrig.

Gedanken, @torkelo?

@EliSnow - Würde es Ihnen etwas

@roybass , ich

Ich kann meinen spezifischen Code nicht teilen, und es wäre wahrscheinlich nicht sehr hilfreich, wenn ich dies tun würde, da er spezifisch für die von mir verwendete Sprache (Node.js), meine Datenbank (Postgres) und die Struktur meiner Daten (jsonb) ist. Im Wesentlichen müssen Sie einen HTTP-Endpunkt /query erstellen, der Daten im gleichen Format wie InfluxDB zurückgibt.

Grafana ruft Ihren Endpunkt mit der GET-Methode auf, wobei der Parameter q der Abfragezeichenfolge die Suchabfrage/Abfragen ist, die in Ihrem Dashboard-Bereich angegeben sind. Jede Abfrage wird durch ein Newline-Zeichen begrenzt. (Beachten Sie: dass die Schaltfläche "Verbindung testen" zum Testen Ihrer Datenquelle in der Admin-Oberfläche die Abfrage SHOW MEASUREMENTS LIMIT 1 sendet. Wenn Sie eine 204 für diese Abfrage zurückgeben, reicht dies aus). Sie können die Suchanfrage als eigene DSL gestalten. Ich habe meine Suchanfrage zu einem einfachen JSON-Objekt gemacht. Sie könnten zwar echtes SQL für Ihre Suchabfrage verwenden, aber Sie sollten sicherstellen, dass der Datenbankbenutzer, der die Abfrage ausführt, nur die Berechtigung für SELECT für eine bestimmte(n) Tabelle(n) hat. Für mich sind meine SQL-Abfragen ziemlich lang und knorrig, und ich bevorzuge eine Abstraktion von der Datenbank.

InfluxDB gibt Daten im folgenden [annotierten] Json-Format zurück:

{
//each entry in "results" represents the result of a single query
  "results": [{
    // each entry in "series" represents a different group if the
    // query had a GROUP BY clause.
    "series" : [
      {
        "name" : "measurement name",
        // not sure which tags influx chooses to return
        // perhaps only the ones in the WHERE clause
        // grafana allows you to use tags in the alias pattern
        "tags" : {
          "foo" : "bar"
        },
        // I have not checked grafana's source but it's possible
        // it does not read the "columns" array
        "columns" : ["time", "mean"],
        "values" : [
          // time (in epoch ms), value
          [1442953067791, 41.2]
        ]
      }
    ]
  }]
}

Wenn Sie keine eigene InfluxDB-Instanz haben und damit herumspielen müssen, wie Grafana Abfragen sendet, können Sie das Test-Dashboard und Ihre Entwicklertools verwenden, um einen Blick darauf zu werfen.

Als Haftungsausschluss habe ich wahrscheinlich etwas übersehen, wie Grafana mit InfluxDB kommuniziert, aber das oben Genannte reichte aus, um mir den Einstieg zu erleichtern.

Ich hoffe, das hilft.

Vielen Dank! genau das meinte ich

Am Dienstag, den 22. September 2015 um 23:57 Uhr schrieb EliSnow [email protected] :

@roybass https://github.com/roybass , ich vermute du
mein Code, der die InfluxDB-Schnittstelle nachahmt.

Ich kann meinen spezifischen Code nicht teilen, und es wäre wahrscheinlich nicht sehr hilfreich
wenn ich es getan habe, weil es spezifisch für die von mir verwendete Sprache ist (Node.js), mein
Datenbank (Postgres) und die Struktur meiner Daten (jsonb). Das Wesentliche von dem
Sie müssen einen /query-HTTP-Endpunkt erstellen, der Daten in der
dasselbe Format wie InfluxDB.

Grafana ruft Ihren Endpunkt mit der GET-Methode mit dem Parameter q auf
der Abfragezeichenfolge die in Ihrem
Armaturenbrett. Jede Abfrage wird durch ein Newline-Zeichen begrenzt. (Notiz:
dass die Schaltfläche "Verbindung testen" zum Testen Ihrer Datenquelle im Admin
Schnittstelle sendet die Abfrage SHOW MEASUREMENTS LIMIT 1. Wenn Sie a
204 für diese Abfrage genügt). Sie können die Suchanfrage so gestalten, dass
Seien Sie Ihr eigenes DSL. Ich habe meine Suchanfrage zu einem einfachen JSON-Objekt gemacht. Während du
sicherlich echtes SQL für Ihre Suchanfrage verwenden könnten, sollten Sie sicherstellen
der Datenbankbenutzer, der die Abfrage ausführt, hat nur die Berechtigung zum SELECT on
bestimmte(n) Tabelle(n). Für mich sind meine SQL-Abfragen ziemlich lang und knorrig, und ich
bevorzugen eine Abstraktionsebene von der Datenbank.

InfluxDB gibt Daten im folgenden [annotierten] Json-Format zurück:

{//jeder Eintrag in "results" repräsentiert das Ergebnis einer einzelnen Abfrage
"Ergebnisse": [{
// jeder Eintrag in "series" repräsentiert eine andere Gruppe, wenn die
// Abfrage hatte eine GROUP BY-Klausel.
"Serie" : [
{
"name" : "Messungsname",
// nicht sicher, welche Tags Influx zurückgibt
// vielleicht nur die in der WHERE-Klausel
// grafana ermöglicht die Verwendung von Tags im Aliasmuster
"Stichworte" : {
"foo" : "bar"
},
// Ich habe die Quelle von grafana nicht überprüft, aber es ist möglich
// das Array "Spalten" wird nicht gelesen
"Spalten" : ["Zeit", "Mittelwert"],
"Werte" : [
// Zeit (in Epoche ms), Wert
[1442953067791, 41.2]
]
}
]
}]
}

Wenn Sie keine eigene InfluxDB-Instanz haben und spielen müssen
Um herauszufinden, wie Grafana Anfragen sendet, können Sie das Test-Dashboard verwenden
http://play.grafana.org und Ihre Entwicklertools, um einen Blick darauf zu werfen.

Als Haftungsausschluss habe ich wahrscheinlich etwas übersehen, wie Grafana
kommuniziert mit InfluxDB, aber das oben Genannte war genug, um mir den Einstieg zu erleichtern.

Ich hoffe, das hilft.


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/grafana/grafana/issues/1542#issuecomment -142419032.

Die oben genannten Bedingungen spiegeln eine potenzielle Geschäftsvereinbarung wider und werden ausschließlich bereitgestellt
als Grundlage für weitere Diskussionen und sind nicht beabsichtigt und werden nicht
eine rechtsverbindliche Verpflichtung darstellen. Es werden keine rechtlich bindenden Verpflichtungen
erstellt, impliziert oder abgeleitet werden, bis eine Vereinbarung in endgültiger Form ausgeführt ist
schriftlich von allen Beteiligten.

Diese E-Mail und alle Anhänge dazu können vertraulich oder privilegiert sein.
Wenn Sie diese Mitteilung versehentlich erhalten haben, leiten Sie sie bitte nicht weiter an
alle anderen, bitte lösche alle Kopien und Anhänge und lass es mich bitte
wissen, dass es an die falsche Person gegangen ist. Vielen Dank.

:+1: für Postgres!

+1 für SQLite

@roybass - Ihr Beitrag hat mir eine Idee gegeben und ich habe einen sehr einfachen Start mit einem Postgres-Proxy gemacht - ich habe Grafana noch nicht wirklich darauf hingewiesen, hoffe aber, dass es über benutzerdefinierte Influx-Abfragen vorgeben kann, ein Zustrom zu sein, aber von Postgres unterstützt wird

Entschuldigung, ein Link wäre nützlich: https://github.com/sysadminmike/postgres-influx-mimic

Hallo an alle, die sich mit Postgres verbinden möchten - ich habe es geschafft, das obige zum Laufen zu bringen und habe ein Beispieldiagramm

+1 Postgres / Postgres mit JSONB-Typ
@EliSnow wir verwenden node, postgres, influxdb und grafana ... wenn du kannst, würde ich mir gerne deinen Code ansehen :)
@sysadminmike wird es überprüfen!

:+1: MySQL

@RobMcZag lassen Sie mich wissen, was Sie denken - ich habe es verwendet, um eine Idee zur verteilten https://github.com/sysadminmike/yadms/

@torkelo , ich bin mir nicht sicher, wie eine SQL-Datenquelle mit Millionen von Datenpunkten skaliert, die täglich gespeichert werden. Ich kann einer Datenquelle wie Cassandra zustimmen, die hochgradig skalierbar und leistungsstark ist.

@utkarshcmu , ich denke, es ist fair zu sagen, dass relationale Datenbanken nicht von Natur aus langsam sind. Wie auch immer, selbst wenn sie es wären, kann es immer noch attraktiv sein, Daten aus einer kleinen Tabelle für Anmerkungen oder was auch immer herauszuholen. SQL-Datenbanken sind also eine sehr nützliche Datenquelle, wenn Sie mich fragen.

Was ist die neueste Version von SQL als Datenquelle?

+1 Informix TimeSeries / Informix TimeSeries mit JSON
@utkarshcmu Informix ist ein Beispiel dafür, wie eine objektrelationale DB eine hoch skalierbare Zeitreihendatenimplementierung durch einen optimierten Zeitreihendatentyp unterstützen kann (Zeitreihenelemente können SQL-Datentypen und/oder JSON-Dokumente sein). ;)

Hallo,

Es besteht die Möglichkeit, numerische SQL-Daten über eine HTTP-Schnittstelle zu exportieren, indem eine zusätzliche Schicht zwischen SQL-Server und Grafana mit Hilfe von ArrestDB verwendet wird: https://github.com/alixaxel/ArrestDB
Wenn jemand ein Plugin von dem vorhandenen HTTP-basierten abzweigen könnte, wäre das sehr nett. Persönlich bin ich kein Experte mit Java-Codierung hier und brauche Hilfe dabei.
Dies würde auch gut mit Restful API aus anderen Datenquellen stapeln - https://restdb.io/docs/rest-api

+1

Hallo, hier ist mein erstes Projekt in go:
Sammeln Sie Microsoft SQL Server-Metriken, senden Sie sie an InfluxDB und visualisieren Sie sie mit Grafana
https://github.com/zensqlmonitor/influxdb-sqlserver

+1 zu MySQL :)

+1 für VoltDB [In-Memory-SQL-Datenbank]

:+1:

Wie wäre es mit jdbc?

+1 MySQL

+1 MySQL

+1 PostgreSQL

+1 PostgreSQL

+1 postgresql
Am 8. Februar 2016 um 22:00 Uhr schrieb "Tom Dyas" [email protected] :

WIP SQL-Datenquelle: #3964 https://github.com/grafana/grafana/pull/3964


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/grafana/grafana/issues/1542#issuecomment -181722398.

+1 Kassandra

Hallo, wie ist der Status einer SQL-Datenquellenintegration? Für uns ist es von großem Interesse, grafana mit Amazon Redshift oder Presto zu verbinden. Möglicherweise besteht die Möglichkeit, einen unserer Entwickler zu diesem Thema zu beauftragen. Ist die SQL-Integration nur etwas Codierungsarbeit oder sind größere Änderungen erforderlich?

Ich hatte einen in Arbeit befindlichen Prototyp in der PR https://github.com/grafana/grafana/pull/3964 im Gespräch mit Redshift meines Unternehmens. Ich glaube also, dass es an dieser Stelle nur Codierungsarbeit (von mir oder jemand anderem) gibt. Obwohl in der PR mehrere Punkte aufgeführt sind, die erledigt werden müssen, bevor sie produktionsreif gemacht werden.

+1 VoltDB

+1 Wäre nützlich für Anmerkungen und Textfelder.

+1

+1

Ich betreibe seit einiger Zeit Influxdb als Proxy über Grafana. Als Nebenbeschäftigung stöbere ich mit einer Web-App-Firewall herum, und eine Sache, für die ich sehr daran interessiert wäre, eine Lösung zu finden, ist so etwas wie vorbereitete Anweisungen, um SQL-Injections zuvorzukommen. Im Moment habe ich eine Sammlung verschiedener Regexes, die SQL-Injektionen erkennen, aber die Feinabstimmung dieser unter Beibehaltung der Fähigkeit, neue Dashboards bereitzustellen, verhindert dies weitgehend, sodass mir keine andere Wahl bleibt, als den Argumentabschnitt so ziemlich auf die Whitelist zu setzen.
Vom Konzept her wäre es einfach: Veröffentlichen Sie feste Proxy-Links für die Datenerfassung, die beim Erstellen/Aktualisieren des Dashboards erstellt werden, anstatt die Abfrageanweisung in das Argument der URL einzubetten. Alles, was Sie auf der Proxy-Seite tun müssen, ist, sie der echten Abfrage zuzuordnen und sie dann an das Datenbank-Backend zu senden.
Die Abwicklung über die Proxy-Teile von grafana bietet die zusätzliche Eleganz der Datenbankunabhängigkeit, um mit vorbereiteten Statements umgehen zu können.

:+1: für das Konzept/die Idee sowie die Möglichkeit, mehr oder weniger Raw-SQL zu verwenden, wenn Sie bestehende Methoden/Features/Metriken ergänzen möchten

+1 für postgresql/mysql

alle meine finger erhoben für postgres

+1

+1

+1. Brauche das wirklich!

+1

Irgendwelche Updates dazu??

Ich habe einen ersten Proof of Concept geschrieben, den ich als PR veröffentlicht habe, um Feedback zu erhalten: https://github.com/grafana/grafana/pull/3964. Der Code funktionierte gut für Abfragen gegen eine lokal ausgeführte PostgreSQL-Instanz. Ich weiß nicht, ob es angesichts der Quellcode-Änderungen in Grafana auf dem Weg zu v3 noch funktionieren würde.

Leider habe ich keine Zeit mehr, daran zu arbeiten, da das interne Projekt, das eine solche Datenquelle benötigt hätte, nicht mehr funktioniert.

Da der Quellcode für den Proof of Concept öffentlich in der PR verfügbar ist, wäre es nicht trivial (aber kein großer Arbeitsaufwand), wenn jemand anderes übernimmt. Wenn Sie ein Entwickler sind, ist dies eine großartige Möglichkeit, die Quellcodebasis von Grafana kennenzulernen. Wenn Sie kein Entwickler sind, aber Einfluss in Ihrem Unternehmen haben, dann empfehle ich, einen Entwickler in Ihrer Organisation davon zu überzeugen, daran zu arbeiten.

Diese Ausgabe demonstriert wirklich das "Trittbrettfahrer"-Problem in Open Source. Die "Währung" von Open Source ist Code (im weitesten Sinne) und die Zeit, die von den Mitwirkenden in diesen Code investiert wird. Mir scheint, jeder gibt gerne +1, aber nur sehr wenige Menschen tragen dazu bei oder nutzen ihren Einfluss, um jemanden in ihrer Organisation davon zu überzeugen, einen Beitrag zu leisten.

Möchten Sie die Richtung des Projekts zu diesem Thema beeinflussen? Übernehmen Sie den Proof of Concept, vervollständigen Sie ihn und tragen Sie ihn zurück, sei es in Eigenregie oder indem Sie Ihrer Organisation die Zeit (in Form eines Entwicklers) dafür zur Verfügung stellen. Diese Zeitaufteilung ist definitiv eine Ausgabe. Wer ist bereit, die Zeit zu "verbringen"?

Für mich selbst bin ich bereit, alle Fragen zum Proof of Concept von demjenigen zu beantworten, der ihn übernimmt.

Ich habe eine Pull-Anfrage davon gesendet.

+1

+1 für Postgres, mein Arbeitsplatz liebt Grafana bereits

Wir würden das gerne sehen - als Referenz https://github.com/sirensolutions/kibi ist eine "freundliche Gabel" von Kibana und SQL-Unterstützung ist eine der Funktionen, die sie hinzugefügt haben
https://github.com/sirensolutions/kibi/tree/master/src/plugins/kibi_core/lib/datasources

wenn das hilft.

+1 für MySQL/Mariadb-Backend-Unterstützung (wird hauptsächlich benötigt, um Ticketdatenbanken GLPI/OTRS/etc... zu graben)

Leute, hört bitte auf, +1 zu posten. Bedanken Sie sich einfach bei https://github.com/grafana/grafana/pull/5364 auf Ihr lokales Grafana an.

mysql und postgre sind großartig, Oracle oder generisches jdbc wären großartig (wie in Kibi oben erwähnt)

@Jimilian - das +1 soll es in die Hauptverteilung bringen. Das Anwenden des Patches bedeutet, dass ich, wenn ein neues Grafana veröffentlicht wird, erneut anwenden muss, was die meisten Benutzer nicht möchten.

+1 für diese Funktion, insbesondere wenn sie ODBC/JDBC unterstützt

:+1: für Postgres!! :-)

Ich habe einen anderen Ansatz zur Anzeige von Daten in RDBMS mit RestSQL gewählt. RestSQL ermöglicht CRUD-Operationen in relationalen Datenbanken und ist eine recht elegante Lösung, um Datenbankoperationen mit HTTP- und REST-Methoden zu ermöglichen.

Ich habe ein Grafana-Plugin für RestSQL geschrieben - Grafana-Plugin (3.x) für RestSQL . Betrachten Sie es jedoch derzeit als PoC :-)

In meinem Setup sind keine Änderungen an der Grafana-Codebasis erforderlich. Dieses Setup benötigt jedoch Java (Tomcat), damit RestSQL funktioniert.

+1. Toller POC

+1. Wäre wirklich toll für Postgres!

+1 Postgres!
+1 Raw-SQL-Abfragen

+1 für Kassandra!

@juliusloman Wäre toll, wenn du dieses Plugin auf grafana.net veröffentlichen würdest!

+1 MYSQL und POSTGRES mit Rohabfragen

+1 Desserts!
+1 Kassandra!
+1 MySQL!

+1 Kassandra

+1 MySQL

+1 MS-SQL!! :D

Anstatt N +1-Kommentare zu erstellen, schlage ich vor, ein :+1:-Tag in die erste Zeile einzufügen, in dem die DB erwähnt wird, die unterstützt werden soll ?

:+1:

+1 BigQuery.

Geht dieses Plugin also in die offizielle Version? Ich möchte Postgres als Datenquelle haben.

+1 PostgreSQL

@all Ich habe meinen InfluxDB-to-MySQL-Protokollkonverter als Open Source bereitgestellt und unter https://github.com/philip-wernersbach/influx-mysql veröffentlicht , und er ist bereit, mit Grafana zu arbeiten.

Ich denke, dass ein JSON-Input-Gateway ausreichen sollte, um praktisch jede SQL-Eingabe zu ermöglichen. Ich schreibe die auszuführende SQL über den richtigen Treiber, und das Ergebnis JSON wird von grafana verbraucht.

BigQuery-Datasets als konfigurierbare Back-Ends wären absolut _ mächtig _.

+1 MySQL

@envintus Wenn Sie Zeit haben, einen Beitrag zu leisten, würde ich gerne BigQuery-Unterstützung in https://github.com/philip-wernersbach/influx-mysql haben

SparkSQL +1

Gibt es ein Update zum SQL-Plugin?

die rohe SQL-Unterstützung in grafana wird es definitiv zum besten machen 👍
irgendwelche Updates zu diesem Thema?

Mein naiver Versuch grafana-einfach-sql-datasource!
HAFTUNGSAUSSCHLUSS: unpolierte & klobige Beta-Version ... funktioniert aber für mich 🤣

https://github.com/gbrian/grafana-simple-sql-datasource

image

@gbrian sieht gut aus!

Ich bin neu bei sql-js-Proxys und habe eine Frage.
Es gibt verschiedene Pakete für verschiedene Datenbanken, wie MySql, MSSql, Postgress...
Ist es naiv zu glauben, dass Ihre Implementierung mit verschiedenen DBs funktioniert?
Wenn ja, wie könnte dies angegangen werden? Sieht so aus, als ob wir eine Art Abstraktion dazwischen brauchen...

@osigida , danke!

Ja, die Hauptidee besteht darin, für jede SQL-ähnliche Datenquelle eine Datei "xxxproxy.js" zu haben.

Als nächstes auf meiner Liste steht Apache Drill (https://drill.apache.org/)
Wenn ich es richtig gemacht habe, sollte es schwierig sein, den Proxy zu erstellen und den Connector einzurichten
http://simple-sql-server:port/?con=drill://drilluser:password@drill-server:port
Natürlich besteht die Aufgabe darin, das Datenquellenschema in Simple-SQL zu konvertieren.

Ich würde mich freuen, wenn Sie es testen und mir Feedback senden. Bitte öffnen Sie so viele Probleme, die Sie finden, und ich werde versuchen, sie so schnell wie möglich zu beheben.

Danke im Voraus.

@gbrian Wenn Sie planen, Postgres zu implementieren. Ich helfe Ihnen gerne und teste.

Gute Arbeit. Wird das auch für Orakel sein?

Gesendet über das Samsung Galaxy S® 6, ein AT&T 4G LTE Smartphone
-------- Ursprüngliche Nachricht --------Von: Gustavo Brian [email protected] Datum: 16.02.17 4:00 AM (GMT-05:00) An: grafana/grafana [email protected] Cc: gsaray101 [email protected] , Kommentar [email protected] Betreff: Re: [grafana/grafana] Grafana 2.0: SQL-Datenquelle (#1542)
@osigida , danke!
Ja, die Hauptidee besteht darin, für jede SQL-ähnliche Datenquelle eine Datei "xxxproxy.js" zu haben.
Als nächstes auf meiner Liste steht Apache Drill (https://drill.apache.org/)

Wenn ich es richtig gemacht habe, sollte es schwierig sein, den Proxy zu erstellen und den Connector einzurichten

http://simple-sql-server :port/?con= drill://drilluser:password@drill-server :port

Natürlich besteht die Aufgabe darin, das Datenquellenschema in Simple-SQL zu konvertieren.
Ich würde mich freuen, wenn Sie es testen und mir Feedback senden. Bitte öffnen Sie so viele Probleme, die Sie finden, und ich werde versuchen, sie so schnell wie möglich zu beheben.
Danke im Voraus.


Sie erhalten dies, weil Sie einen Kommentar abgegeben haben.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub an oder schalten Sie den Thread stumm.

{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/grafana/grafana","title ":"grafana/grafana","subtitle":"GitHub-Repository","main_image_url":" https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png " ,"avatar_image_url":" https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png ","action":{"name":"In GitHub öffnen", "url":" https://github.com/grafana/grafana "}},"updates":{"snippets":[{"icon":"PERSON","message":" @gbrian in #1542: @osigida , danke!\r\n\r\nJa, die Hauptidee ist, eine \"xxxproxy.js\"-Datei für jede SQL-ähnliche Datenquelle zu haben.\r\n\r\nAls nächstes steht Apache Drill auf meiner Liste (https://drill.apache.org/)\r\nWenn ich es richtig gemacht habe, sollte es einfach sein, den Proxy zu erstellen und den Connector einzurichten, wie \r\n http://simple-sql-server:port/?con=drill://drilluser:password@drill-server:port \r\nnatürlich die Aufgabe konvertiert das Datenquellenschema in Simple-Sql.\r\n\r\nIch würde mich freuen, wenn Sie es testen und mir zurücksenden mir Rückmeldung. Bitte öffnen Sie so viele Probleme, die Sie finden, und ich werde versuchen, sie so schnell wie möglich zu beheben.\r\n\r\nDanke im Voraus."}],"action":{"name":"Problem anzeigen","url": " https://github.com/grafana/grafana/issues/1542#issuecomment -280272622"}}}

@anayrat , @gsaray101

Sieht machbar aus und sollte ganz einfach sein:
https://www.npmjs.com/package/pg
https://www.npmjs.com/package/strong-oracle

+1 MySQL

+1 MySQL

+1 Kassandra

+1 MSSQL +1 MYSQL

Zu Ihrer Information

Jetzt gibt es ein offizielles Premium-Oracle-Plugin (nicht kostenlos)
https://grafana.com/plugins/grafana-oracle-datasource

https://github.com/grafana/grafana/pull/5364#issuecomment -290066384

HI @epizut : Dieses Premium-Plugin befindet sich im Rahmen der Gesamtbemühungen in der Entwicklung. Das Premium-Plugin wird die kommenden Kernfunktionen nutzen.

Hier kommt noch mehr!

Gibt es bekannte Einschränkungen bei der Verwendung von Cassandra als Grafana-Datenquelle? Oder irgendwelche anderen Bedenken, die man beachten sollte, bevor man ein Datenquellen-Plugin implementiert?

Cassandra ist keine Zeitreihendatenbank, daher glaube ich nicht, dass Sie sie als
Datenquelle in Grafana. Ich verwende opentsdb für meine Grafana-Datenquelle

Am 19. Mai 2017 10:28 schrieb "mtnxplorer7" [email protected] :

Gibt es bekannte Einschränkungen bei der Verwendung von Cassandra als Grafana-Daten?
Quelle? Oder irgendwelche anderen Bedenken, die man beachten sollte, bevor man a . einführt
Datenquellen-Plugin?


Sie erhalten dies, weil Sie einen Kommentar abgegeben haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/grafana/grafana/issues/1542#issuecomment-302763176 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/ARG51ZdZ6qbzst8m7mx-tsSZ9cRoBe5Lks5r7dEggaJpZM4DndgD
.

Cassandra unterstützt die Zeitreihen-Datenmodellierung. Irgendwelche Gedanken basiert auf dieser

+1 für Apache-Drill.

Ich sehe, dass der Backend-Teil dieser PR zusammengeführt wurde, aber wie ist der Gesamtstatus? Gibt es eine ETA für eine Überprüfung und Zusammenführung aller notwendigen Frontend-Arbeiten?

Für MySQL gibt es einen Backend-Teil und einen Frontend-Teil mit Alert-Unterstützung. Noch keine Unterstützung für Postgres

Der Postgres-Support wird mit http://www.timescale.com/ wirklich cool sein

Ich würde gerne SQL-Unterstützung für Athena sehen: http://docs.aws.amazon.com/athena/latest/ug/what-is.html

@torkelo Ich benötige Hilfe bei der MySQL-Datenquelle. Ich habe die neueste Grafana-Version installiert (v4.4.3)

Mein grafana-Host ist vermutlich grafana.host.org und ich habe eine SQL-Datenbank für eine Anwendung, die auf einem anderen Host gehostet wird, sagen wir application.host.org. Ich habe mysql db auf der gleichen application.host.org

Wenn ich eine neue Datenquelle vom Typ MySQL zu grafana hinzufüge (dh grafana.host.org), werden Verbindungsdetails abgefragt. Ich füge folgende Details hinzu:

Host: application.host. org:3306
Datenbank: dbname
Benutzer: dbuser
Passwort: dbpassword

Wenn ich jetzt diese Verbindung speichere und teste, erhalte ich eine Fehlermeldung:

"Fehler 1045: Zugriff verweigert für Benutzer 'dbuser'@'grafana.host.org' (mit Passwort: JA)"

Irgendwelche Hinweise auf eine Lösung dafür? Warum versucht es, auf grafana.host.org zuzugreifen, wenn ich den DB-Host als application.host.org angegeben habe? Ich kann problemlos eine Verbindung von grafana.host.org zu application.host.org herstellen. Allerdings gibt es mir diesen Fehler.

Nach meinem Verständnis sollte es versuchen, eine Verbindung zur Datenbank auf application.host.org herzustellen. Wenn ich mich im Backend mit der Datenbank auf diesem Host verbinde, komme ich ohne Probleme durch.

Ihre Hilfe dabei wird sehr geschätzt.

Vielen Dank,
Jyoti

Fehler 1045: Zugriff verweigert für Benutzer 'dbuser'@'grafana.host.org' (mit Passwort: JA)

Dieser Fehler stammt von MySQL. Es hat erkannt, dass dbuser eine Verbindung _von_ der Netzwerkadresse herstellt, die in grafana.host.org . Überprüfen Sie die Berechtigungen, das Passwort usw. bei MySQL.

Irgendwelche Gedanken zur Unterstützung des Redshift SQL-Dialekts?

Redshift SQL ist nur die Postgres 8.x-Familie, die mit der kürzlich eingeführten Postgres-Unterstützung kompatibel sein sollte. Habe es noch nicht ausprobiert, bin aber auch interessiert, wenn es irgendwelche Fehler gibt.

Wenn es Ihnen nichts ausmacht, Daten über Postgres zu übertragen, können Sie grafana mit (fast) jeder Datenbank mit dem Postgres Foreign Data Wrapper (https://wiki.postgresql.org/wiki/Foreign_data_wrappers) verbinden.

+1 Oracle-Datenbank

+1 für MS SQL

+1 für SQLite

Hallo, jeder, der an MSSQL interessiert ist, bitte überprüfen Sie pr #10093

Hat jemand mit Oracle als Datenquelle gearbeitet? Ich würde es sehr gern sehen.

@gsaray101 und alle Interessierten - wenden Sie sich an [email protected], wenn Sie die Beta-Datenquelle von Oracle testen möchten.

Wir haben die Microsoft SQL Server-Datenquelle mit Grafana zusammengeführt und sie wird in Grafana 5.1 (#10093, #11298) veröffentlicht.

Dies bedeutet, dass Grafana nun im Kern MySQL, Postgres und MS SQL Server als Datenquellen unterstützt. Wir werden dem Kern von Grafana keine weiteren SQL-Datenbanken als Datenquellen hinzufügen, daher ist es endlich an der Zeit, dieses Problem zu schließen.

In naher Zukunft werden wir Backend-Plugins unterstützen, so dass es möglich sein wird, andere SQL-Datenquellen als externe Plugins zu verwenden.

Jeder, der sich mit dem Hinzufügen von DB2-LUW-Unterstützung befasst?

@daniellee Was ist mit Oracle und SQLite? :denken: Gibt es Neuigkeiten dazu?

@mnlbox Es gibt bereits ein Oracle-Plugin: https://grafana.com/plugins/grafana-oracle-datasource (Es ist jedoch nicht Open Source)

Sqlite als Datenquelle ist überhaupt nicht in unserem Backlog und ich habe von niemandem gehört, der daran arbeitet.

+1 für Bald

Irgendein Update zu SQLite @daniellee ?

SQLite-Datenquelle wäre sehr nützlich!

Sqlite!!!!!

Sqlite !!!!!

Sqlite!!!!!

Sqlite !!!!!

Bitte verwenden Sie die 👍-Funktion, um Ihre Zustimmung und Ihren Kommentar nur dann zu zeigen, wenn Sie zusätzliche Informationen, hilfreiche Hinweise, Patches und ähnliche - nun ja - Kommentare bereitstellen können, die zur Lösung des Problems beitragen. Spamming-Entwickler, -Mitwirkende oder -Teilnehmer werden wahrscheinlich niemanden davon überzeugen, Ihre Anfragen umzusetzen.

Daniellee sagte oben, dass keine weiteren Anstrengungen unternommen werden, um zusätzliche Datenquellen im Kern zu unterstützen, und Plugins sind der richtige Weg. Auch scheint noch niemand mit der Arbeit an SQLite begonnen zu haben. Wenn Sie eine schnelle und schmutzige Lösung benötigen und kein ganzes Plugin für/an SQLite schreiben/in Betrieb nehmen/ anpassen möchten, sollte es ziemlich einfach sein, ein smapp-Proxy-Skript zu erstellen, das Ihre SQLite-Daten als JSON ähnlich wie doublemarkets RRD bereitstellt

Wie @adlerweb sagt, gibt es derzeit keine Pläne für das Kernteam von Grafana für eine Kern-Sqlite-Datenquelle. Ich glaube auch nicht, dass wir dafür eine PR akzeptieren würden. Wir würden jedoch natürlich ein externes Datenquellen-Plugin auf grafana.com veröffentlichen, wenn es jemand geschrieben hat.

Irgendein Update zu SQLite @daniellee ?

Für diejenigen, die an SQLite-Unterstützung interessiert sind (oder tatsächlich auf eine Datenquelle warten), müssen Sie nicht lange warten. Es ist ziemlich einfach, mit Python eine eigene Datenquelle zu schreiben. Die Dokumentation ist etwas spärlich (siehe https://github.com/grafana/simple-json-datasource), aber es ist möglich. Ich habe in diesem Repository ein ziemlich umfangreiches Beispiel und einen Blog-Beitrag erstellt, wie man SQLite mit Grafana visualisiert . Das Repository enthält auch ein funktionierendes Beispiel von SQLite und eine kleine Datenbank für dieses Beispiel.

  • SQLite-Abstimmung!

stimme für sqlite

Mit dem Backend kommt die Möglichkeit, eine SQL-Datenquelle zu haben.

Ich denke, dass Sie beim Hinzufügen der Datenquelle

  • db type (zunächst nur mysql und postgres und sqlite3)
  • db-verbindungsdetails
  • Angeben einer Metrikabfragevorlage (im Grunde eine SQL-Abfrage mit Parametern)
  • eine Anmerkungsabfragevorlage angeben

Vielleicht auch eine Option, um RAW-SQL-Abfragen von der Panel-Metrik-Abfrageschnittstelle zuzulassen.

Irgendwelche anderen Ideen?

Für SQLite

Stimme für SQLite.

Sqlite plsss

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen