Einfache Übersicht über Website-Ladezeiten

Einfache Übersicht über Website-LadezeitenDas A und O für Webseiten ist der schnelle Aufbau, d.h. kurze Lade- und Reaktionszeiten. Das Internet wächst von Tag zu Tag und es ist schon lange kein Trend mehr, möglichst viele Anwendungen plattformunabhängig über einen Web-Browser zur verfügung zu stellen. Dabei sind solche Anwendungen, ebenso wie die Hard- und Software im Hintergrund, weit weg von “setup and forget”. Ein Monitoring gehört mittlerweile mit zur Installation dazu, ebenso wie der enstprechende Webserver. Eine Übersicht über die Website-Ladezeiten ist daher wichtig.

In diesem Beitrag möchte ich schildern, wie ich ein solches Monitoring selber zusammengebaut habe, da mir die vorhandenen Ansätze zu kompliziert waren. Dieses Monitoring besteht auf einem simplen Powershell-Script, welches die Ladezeiten ermittelt, einer InfluxDB, um die Werte abzuspeichern und einem Grafana-Dashbaord, um die Daten sinnvoll anzeigen zu lassen.

Am Ende des Artikels wirst du ein funktionierendes Monitoring aufgebaut haben.

GitHub Repo

Alle in diesem Artikel erwähnten Dateien findest du hier in meinem Github Repo.

Installieren der Datenbank

Als ersten Schritt installieren wir unsere InfluxDB – eine Datenbank, welche auf das Speichern von zeitlich gebundenen Werten spezialisiert ist. Mehrere Millionen Einträge sind für InfluxDB kein Problem, also genau das, was wir brauchen.

Der einfachste Weg ist die Installation der Datenbank als Docker-Container. Du kannst mit folgender docker-compose.yml den Container aufsetzen:

version: "2.1"
services:
  influxdb_webresponse:
    image: influxdb:1.8
    container_name: influxdb_webresponse
    volumes:
      - /opt/influxdb/data:/var/lib/influxdb
    ports:
      - 8086:8086 
    restart: unless-stopped

Mit nachstehendem Docker-Befehl verbinden wir uns mit dem Container und betreten die influx Shell:

sudo docker exec -it influxdb_webresponse influx

Jetzt erstellen wir uns eine Datenbank, die wir mit den später gesammelten Daten befüllen werden:

CREATE DATABASE webloadingtime

Um zu prüfen, ob die Datenbank wirklich erstellt wurde, lassen wir uns alle vorhandenen Datenbanken anzeigen:

SHOW DATABASES

influxdb database

Nun erstellen wir noch einen User:

CREATE USER "admin" WITH PASSWORD 'mysecurepassword' WITH ALL PRIVILEGES

Ich erstelle hier einen Admin, sicherlich funktioniert auch ein normaler User. Dazu einfach ‘WITH ALL PRIVILEGES’ weglassen.

Nun haben wir unseren Datentopf erstellt.

Daten erfassen mit PowerShell

Powershell wird in der Microsoft-Welt immer wichtiger. Aus diesem Grunde wurde auch Powershell Core released, welches auf .NET Core basiert und somit plattformunabhängig ist.

Du findest das Script in meinem Git Repository.

In den ersten Zeilen werden die zu prüfenden Webseiten definiert und in den letzten Zeilen die Verbindungseinstellungen zur InfluxDB angegeben.
Nun kann das Script manuell oder mit Hilfe der Aufgabenpanung ausgeführt werden.

Damit Powershell eine Verbindung zur InfluxDB aufbauen kann, muss noch ein Modul nachinstalliert werden:

Install-Module Influx -Scope CurrentUser

install influxdb powershell module

Grafana Dashboard

Nun kommt der schöne Teil: Das Anzeigen unserer gesammelten Daten.

Dies machen wir in Grafana. Auch hier kannst du Grafana als Docker-Container installieren.
Falls du noch keine Grafana-Instanz hast, findest du dazu viele Anleitungen im Netz.

Logge dich in Grafana ein und füge die InfluxDB als Datenquelle ein:

Einfache Übersicht über Website-Ladezeiten

Suche nach InfluxDB und füge eine neue Quelle hinzu:

Einfache Übersicht über Website-Ladezeiten

Einfache Übersicht über Website-Ladezeiten

Gib der Quelle einen Namen und trage unter URL die IP oder den Hostname deines InfluxDB Docker Containers ein.

Im unteren Teil gibst du die erstelle Datenbank und den angelegten User an und klickst auf Save & Test.

In meinem Git Repository findest du ein fertiges Dashboard mit den eingetragenen Beispielseiten.

Du kannst die json-Datei über das Plus in der linken Leiste und “Import” importieren:

Einfache Übersicht über Website-Ladezeiten

Nun haben wir eine einfache Übersicht über Website-Ladezeiten.

Wenn du diesen Beitrag nützlich findest, freue ich mich auf deine Unterstützung, um den Blog weiter betreiben zu können.

Dominic hat 2012 als Jahrgangsbester die Ausbildung zum Informatik-Kaufmann abgeschlossen und ist seit dem als Systemadministrator und IT-Supporter tätigt. Sein erstes Netzwerk baute er mit 13 Jahren auf, um eine LAN-Party zu hosten. Seit dem ist IT für ihn eine Lebenseinstellung.

Related posts

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments