Text_2
Facebook
Twitter
Google+
Kommentare
13

Projektwerkstatt: Open Website Monitor

Heute eine Idee, die wahrscheinlich schon bald Realität wird, da ich es sehr wertvoll für meine Arbeit erachte. Schwer umzusetzen ist es auch nicht. Zumindest wenn man es erstmal im Kleinen betrachtet. Aber jetzt erstmal die Idee.

Der Titel sagt es schon, es soll eine Open Source Software werden, mit der man seine Webseite monitoren kann. Monitoren im Sinne der Performance. Hier wäre in unserem Fall die Minimalanforderung, dass wir alle 15 Minuten die Geschwindigkeit der Live-Site angezeigt bekommen. Im einfachsten Falle mit wget oder curl. Schritt zwei wäre dies zu visualisieren. Fertig. Jetzt kann jeder schon mal in seinem Kopf durchgehen, wie einfach das doch wäre.

Naja ein wenig mehr Anforderungen hätten wir dann doch. Leider. Was man eigentlich will ist nicht nur die Gesamtzeit, die der Request bis zum Auslieferung gebraucht hat, sondern die Zeit, die die Seite gebraucht hat, bis sie im Browser fertig gerendert wurde. Und wenn es langsam ist wäre es noch toll, wenn ich sagen könnte, welcher Bestandteil langsam war. War es die Werbung? Ein Google-Font? Einfach das, was mit ein Firebug anzeigt, wenn ich auf eine Seite gehe.

Anforderung Nummer zwei. Toll wäre es, wenn man mehrere Messpunkte angeben könnte. Wie schnell ist die Seite aus München? Hamburg? Frankfurt? Jaja, es gibt viele Services, die das anbieten und die sind alle toll. Dummerweise kann man da bei einer hohen Anzahl von zu überwachenden URLs schnell mal die 100.000 EUR im Jahr knacken. Sicherlich bekommt man viel mehr für sein Geld, wenn man auf einem solchen Service setzt, wenn man aber so minimale Anforderungen wie ich hat, dann scheint das viel Geld zu sein.

Da wir alles Programmierer sind stellt sich die Frage, warum man es nicht einfach selber macht. Und was soll ich sagen. So schwer ist das nicht und ich würde sogar behaupten, dass man es in mit ein paar guten Leuten innerhalb eines Wochenendes hinbekommt.

owm

Fangen wir an. Im ersten Schritt brauchen wir den Client, den ich einfach auf einen Server werfen kann und der mir meine Daten sammelt. Zum Glück gibt es die Bestandteile schon out-of-the-box. PhantomJS und netsniff.js erledigen dies von alleine, sogar die Aufsplittung in Unterrequest und JS-Intepretation. Was dabei rauskommt ist eine HAR-Dateien (Http Archive). Diese müssen wir eigentlich nur noch mit ein paar Meta-Daten dekoriert an den Server schicken. Metadaten können sein, Uhrzeit und Standort. Wenn das Aufzeichnen abgeschlossen muss nur noch das Ergebnis an der Server geschickt werden.

Was uns auch gleich zum Server bringt. Wirklich kompliziert ist dieser in der ersten Ausbaustufe auch nicht. Ein wenig Graphen anzeigen lassen. Dazu gibt es tolle Bibliotheken wie Chart.js. Wahrscheinlich kann man es sogar in das Monitor-Tool seiner Wahl gleich einbauen.

Was man jetzt noch als Service anbieten könnte, wäre den Server zentral für alle zu hosten. Man könnte seine eigenen Messpunkte auch anderen zur Verfügung stellen und somit ein wenig Geld machen. Vielleicht aber auch tauschen. Du darfst meinen Knoten in Frankfurt nehmen, dafür bekomme ich Daten aus Hamburg. Sehr viele Ideen. Und wenn ihr euch meinen „Screenshot“ anschaut, dann werdet ihr sicher noch ein paar weitere entdecken.

Die Version 0.1 dieser Applikation würde ich gerne mal in Angriff nehmen. Mal schauen, wie einfach es wirklich ist. Wer mitmachen will, der ist herzlich eingeladen. Ich würde heute noch ein GitHub-Repo anlegen.

Update:

  • https://github.com/thewebhatesme/opm_client
  • https://github.com/thewebhatesme/opm_server
Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

13 Comments

  1. Mich erinnert das irgendwie sehr an Pingdom, das dann aber tatsächlich schnell auf einige Euros im Jahr kommen kann. Poste doch einfach den Link des Github Repos, ich denke nicht nur ich würde mich da gern mit einbringen.

    Reply
    • Pingen die nur? Sehe gerade nicht, ob sie auch die Requests aufdröseln. Und wenn wir mit unseren ca. 100 Sites auftauchen, dann sind wir auch wieder bei 5.000 EUR im Monat.

      Reply
  2. Heyho,

    mein erster Kommentar hier 🙂

    ich bin nur über deinen artikel drüber geflogen, aber ich frage mich, ob nicht Google Analytics viele deiner Anforderungen abdeckt? Dort kannst du u.a. die Server-Antwortzeit, die Server-Downloadzeit und Seiten-Ladezeit (mit Bildern + JS) einsehen. Messpunkte, Vergleiche, Verbindungen mit weiteren Dimensionen (Länder, Mobile, usw.) ist da natürlich auch möglich. Wenn dir doch etwas fehlen sollte, kannst du auch die API von GA anzapfen damit du custom-daten an GA sendest.

    gruss

    PS: doof wäre, wenn du kein GA hast 😀

    Reply
  3. Ich habe gerade etwas mit har Dateien rumgespielt und bin dabei https://github.com/s3u/har-view gestoßen. Schön schlank. Der harviewer von janodvarko ist natürlich auch nicht schlecht.
    Hier gibt es ein paar brauchbare und für Open Source Projekte kostenlose Themes für Admin-Dashboards: http://colorlabsproject.com/blog/free-bootstrap-admin-templates/

    Das man mal durch das Verleihen seines „Harvesters“ Geld machen kann, sehe ich im Moment noch nicht. Meinst Du , dass man z.B. pro gesendete HAR Datei an einen zentralen Server x Cent/Credits? Ich fürchte Da gibt viele Wege zu Tricksen, da es im Gegensatz zu z.B. Bitcoins oder Video-Render-Farmen nicht um Rechenleistung, sondern hauptsächlich „nur“ um Traffic beim erstellen und senden der har Dateien geht. Das der Inhalt der gesendeten har Dateien dann valide ist, kann man dann nur hoffen.

    Man könnte diese „Crowd-Server-Farm“ natürlich durch „Trusted-Server“ ergänzen, die man via Konfigurationen auswählen kann. Diese liegen dann z.B. in einer Cloud die man skalieren kann und dann die Rechenleistung & Trafik gewinnbringend verkaufen (ähnlich wie blazemeter, oder blitz.io) Dann hätte man allerdings in Europa nur einen Knotenpunkt und ist nicht so viel anders als die bestehenden Anbieter.

    Auf Deinen Spatenstich bin ich jedenfalls schon mal gespannt!

    Gruß, André

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen