Datenbankstatistiken und Berichterstellung mit oder ohne Analyse integrierter Protokolle

390
Mab

Ich bevorzuge ein generisches statistisches Hilfsprogramm / Plugin / Anwendung, schränke mich aber nicht ein, da es auch spezifisch sein könnte.

Ich möchte einen Weg sehen, auf dem ich Abfragestatistiken für ALLE Abfragen sehen kann .

zB Anzeigen und Sortieren oder Filtern

  1. alle fragen immer oder
  2. alle Anfragen an
  3. alle oder bestimmte Datenbanken oder
  4. an bestimmten Tabellen.
  5. oder in bestimmten Spalten oder
  6. mit bestimmten Abfrage Regex / Params; Die Sortierung nach den meisten gemachten Abfragen zählt, die meisten langen Abfragen im Kontext nach Zeitaufwand
  7. Einige grafische Diagramme wären jedoch ein Plus. Gibt es Anwendungen oder integrierte Funktionen für solche Dinge?

Dazu müssen Sie alle Abfragen protokollieren und diese Protokolle dann durch eine Art Analysegerät ausführen / analysieren . Dies erfordert möglicherweise eine benutzerdefinierte Build-Parser-Anwendung.

Der aktuelle Server ist ein Server mit hohem Volumen: 500 - 3000 Abfragen pro Sekunde. Das Protokoll wird möglicherweise auf einer anderen Festplatte gespeichert.

Fragen:

  1. Gibt es vorgefertigte Anwendungen für solche Dinge?

  2. Wird es die regelmäßigen Abfragen verlangsamen? Wenn ja, wie viel ungefähr?

  3. Gibt es eine Möglichkeit, Live-Abfragen anzuzeigen und die Protokollierung anderweitig durchzuführen oder überhaupt nicht durchzuführen und Live-Statistiken von einer anderen App zu erstellen?

  4. Ich kann die Protokolle möglicherweise nicht mit einem datenbankspezifischen Statistik-Generator analysieren, sondern würde einfach die Protokolldatei abrufen, meine eigene Parser-Anwendung erstellen und Statistiken und grafische Diagramme mit diesen Protokollen erstellen. Diese geparsten Zustände können in einen anderen DB mit den Werten der Abfragen + Zeit bis zur Ausführung + Abfragedatum gestellt werden, um dann später Berichte zu generieren. Ist das eine gute Idee?

  5. Ich habe keine "Live" -Methode entdeckt, dies alles zu tun, ohne es in einer Datei zu protokollieren.

  6. Eine vorgefertigte App für mysqlund postgres? Das ist was ich benutze.

  7. Irgendwelche Strategieempfehlungen? Ich begann gerade zu überlegen, "wie man die Performance-Analyse im Detail durchführt".

1

1 Antwort auf die Frage

0
Peter Eisentraut

Dies ist ein komplexes Problem, und es gibt wahrscheinlich keine einfache Antwort.

Ein Ansatz, den ich verwendet habe, ist die Verwendung von pg_logforward, um Protokolle abzufangen und an einen benutzerdefinierten Dämon weiterzuleiten, der normalisierte Protokolleinträge in eine andere PostgreSQL-Datenbank schreibt. (Hadoop etc. wäre auch möglich.) Führen Sie dann Ad-hoc-Abfragen gegen diese Datenbank aus oder bauen Sie sich ein hübsches Frontend auf. Es ist keineswegs vorgefertigt, aber es ist momentan der kraftvollste Ansatz, IMO.