Reviewing AlertFox for web monitoring services

March 19th, 2010 robin Posted in Internet, Reviews 2 Comments »

I recently had the opportunity to review web monitoring services.  I was looking specifically for a service which would test a web application, as if a real user was testing it: including DHTML/AJAX, in a real browser.  There are a number of services such as serverguard24, and uptrends which do allow transactions (a complex sequence of requests), but they don’t run their macros in a real browser, and so aren’t enough like a real user.  Then I found alertfox!

Alertfox

To use AlertFox, you first have to install the iMacros plugin for your browser (available for Firefox and IE).  This makes recording a macro (sequence of clicks and data entries) a piece of cake.  You can choose to have clicks recorded by the id of the element you are selecting, or by the X/Y coordinates.  Once you have recorded a transaction (you may need to edit the script to replace session ids with wildcards (*)), you can create a “sensor” with it on the AlertFox site.  A Sensor is a rule set including the macro which should be carried out, how often it should be executed, in which browser, and what the acceptable time is that this transaction should take.  You can even define from which location the test should be carried out (“Europe Zone” and “World Zone” connections both currently come from servers hosted by serverloft in Germany, “US Zone” connections come from theplanet servers in Houston Texas).

When things go wrong: If the transaction cannot be completed (server is too slow, a page in the sequence is not as expected, …), you immediately get an email warning with a link to a screenshot.  This is great!  Setting up a host of these sensors I feel like I’ve got a horde of tireless monkeys working day and night clicking, typing, and making screenshots.  On your AlertFox dashboard you have a good overview of all your sensors, when they were tested, and what the results were each time.

One small annoyance: you often won’t be able to use a macro recorded in Firefox for IE – there are small differences in how they recognise tags which sometimes break cross compatibility.  Solution: record the same transaction twice – once in Firefox, and again in IE.

Why outsource monitoring?

You might wonder what the point is of outsourcing your web application monitoring: surely you can monitor server load in-house.  This will cover many causes of downtime, but what if your server is running fine, but network interruption has made it unavailable from outside?

So you do need to have monitoring from a remote server… Maybe you have another server and can make both of your servers monitor each other, or maybe you want to use a basic monitoring service which makes simple http requests to test if your server is online.  This is better – you will know if your server goes offline, but that doesn’t cover some of the most common problems which could occur…

One of the typical errors on a web application which won’t be caught by any of the above methods is your payment system breaking.  A software error, or a glich in the payment fulfillment provider… it will allow users to visit your site, put items in the shopping cart, but not complete the checkout.  Your burning marketing money bringing them to your site, and no cash is coming in.  The only way to be sure your site is working is to test real transactions in a real browser, but … monkeys aren’t that clever, and employing slave labour will probably get you in trouble.

If you are an online marketer it is quite likely that you are responsible for driving traffic to a site, monitoring and optimising your campaigns without having any control over the site you are working for.  If the site goes down or a section is broken you want to know asap so that you can inform your customer and stop burning marketing budget on a broken site.

What does it cost?

They have 4 packages ranging between free (only one Macro, and that only on Firefox) and $199.  I used the PRO2 version for $99/month which is the cheapest version which allows testing in IE and Firefox.

Links

I spent all my time talking about AlertFox because it’s the only one which fulfils my requirements, but there are many other monitoring services which may be up to your needs if you don’t need application level monitoring (DNS, HTTP, FTP, …), and here’s a list of some of the others I looked at:


How to switch ISP without downtime

February 23rd, 2010 robin Posted in Internet Comments Off on How to switch ISP without downtime

A typical problem which many web service providers have is that when they transfer a website from one hosting to another, there is an inevitable period of time when the application has been transferred, but the DNS changes have not propagated, and so some users will experience the site as being offline.  You can reduce the effects by reducing the TTL for your domain prior to the switch, but I prefer this method.

The key to this method is Varnish.  Varnish is a state of the art reverse proxy, and you should be using it to accelerate your web applications, even if you don’t need to switch service provider.  Explaining Varnish in detail goes beyond the scope of this howto, but in summary, clients connect to the Varnish proxy on the server, which (based on a vcl configuration file) either servers from its cache, or forwards the requests to backend servers.  This can allow you to have a farm of web servers all with one frontend, or just take the load of your backend servers by efficiently serving static content .  Varnish also allows complex filtering, and this is what makes the transition from one service provider to the next a piece of cake.

For the following I’ll use the terms “old” as your old ISP server, and “new” for your new ISP server.

Here’s the basic steps:

  • Set up Varnish in front of your web server redirecting all requests to the local backend.
  • Add a new backend in your Varnish configuration, defining your new IP as the host.
  • For each application (typically a domain):
    • Copy files and databases from old to new
    • Install the files and databases on new.
    • Test the new server (make a static entry for the domain(s) in your hosts file)
      • Are all required modules installed?
      • Is everything working as expected?
    • Add a rule in your Varnish configuration that will forward all requests to this domain to your new server.
    • If you have a very active site, you may still have a few seconds of downtime in this step…
      • Put the web application into maintenance mode
      • Dump the database from old again (to get latest changes since your testing)
      • Load the database into new
      • Reload the varnish configuration to activate the forwarding to the new server
      • On the new server, take the application out of maintenance mode
    • Now all requests which hit your old server for this domain should be invisibly forwarded to your new ISP
    • Check that everything is working
    • Change the DNS entries for the domain – as this propagates, less traffic should be hitting your old ISP
  • When you see no more traffic hitting your old server, you can turn it off.

Using this procedure, you can comfortably move any number of applications with minimal downtime, and enough time to test each one as you go.  It also will allow you to transfer applications where you do not have control of the DNS entries: you can do the transfer, and then inform the domain owner to change the ANAME entrie for their domains.

Some situations where this might cause problems:

  • Your application has IP based filters or bot-blocking active – if so your new server will be getting a lot of traffic from one address (old server)
  • Your application is not compatible with Varnish?  Some web applications (Squirrelmail for example) generate many unnecessary or duplicate HTTP headers.  Varnish chomps everything after the first 32 lines of HTTP headers, which in turn can cause the application to fail if something important was after the 32nd header…

Strato V-Power server sind schrott!

February 12th, 2010 robin Posted in Internet, MySQL, Reviews 10 Comments »

Ein dramatischer Titel, aber ich kann gerade nicht anders als es so auszukotzen!  Ich habe seit Anfang November 2009 einen V-PowerServer-L von Strato, und hatte bislang nur ein paar kleine Anwendungen darauf laufen: einige WordPress Seiten… und das ging so.  Nun wollte ich vor ein Paar Tagen eine Magento Shop zur Demo aufsetzen, aber es ging nicht: der Installation vom Datenbank ist nach 45 Minuten immer noch nicht zu ende gekommen… zur Vergleich, auf meinen Desktop geht das in ~25 Sekunden!  Erst dachte ich das ich bei der MySQL Server was falsch eingestellt hatte… habe gesucht, optimiert, aber kein Ervolg… Auch merkwürdig das es zwar ewig lange brauchte, aber CPU last und Hauptspeicherverbrauch kaum nennenswert waren.   Dann kam bonnie++ zur Hilfe – da habe ich ein paar Tests gefahren, und plötzlich blöste sich der Ursache: Dateizugriffszeiten für Erstellung/Löschen sind horend langsam.  Hier ein Beispiel:

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
h1652797.strato 12G   289  66 40647  14 21138   7   683  45 50521   7 136.6   3
Latency               700ms   36604ms    8855ms     449ms    2776ms    1791ms
Version  1.96       ------Sequential Create------ --------Random Create--------
h1652797.stratoserv -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16   753   2 +++++ +++   900   2  1978   5 +++++ +++  2059   5
Latency               445ms    2346us   15866us    3986us    1653us   55366us

Ich habe das natürlich auch mit dem Rescue boot gemacht um sicher zu stellen das keine meine Dienste irgendwie dazwischen pfuschen oder irgendwelche Einstellungen von mir da negativ mitwirken.

Zum Vergleich, sieht das auf mein Desktop so aus:

Version 1.03c        ------Sequential Output------ --Sequential Input-  --Random-
                     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block--- --Seeks---
Machine        Size K/sec %CP K/sec  %CP K/sec %CP K/sec %CP K/sec  %CP  /sec  %CP
rcl-desktop   16G   68441  98 137016  29 40956   6 50718  76 226049  17  265.8   0
Version 1.03c       ------Sequential Create------ --------Random Create--------
rcl-desktop         -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 50 66904  98 +++++ +++ 95599  98 70748  99 +++++ +++ 92337 100

Wer das nicht lesen kann oder mag: der Strato V-PowerServer-L kann nur EIN HUNDERSTEL (oder schlechter) so viel/schnell Daten erstellen/lesen wie mein Desktop.  Ich weiss das Virtuelle Server nicht der Leistung haben von “echte” hardware, aber ich bin auch selber erfahren genug mit VMWare und co. zu wissen das das nicht im Rahmen das Zumutbare ist, und vor allem im Kombination mit 2CPU’s (Opteron(tm) Processor 2347 HE) und 6GB RAM ein Witz ist.  Ich habe sogar mein altes mini-PC mit bonnie++ gemessen.  Der hat ein AMD Geode 500MHz CPU, und ein älteres 2,5 Zoll ATA Festplatte… sogar der schneidet ab mit 10x schneller als mein Strato V-PowerServer:

Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-
 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
coconut          1G  3804  95 30923  43 12903  18  4405  97 34627  28 114.8   2
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16  7265  98 +++++ +++ 13685  99  7003  93 +++++ +++ 13330  99

Da habe ich Strato ausfürlich und mit den Testdaten ein Nachricht geschickt, ob die die unterliegende Systemprobleme bitte beheben könnten.  Die antworteten:

Den Sachverhalt haben wir ebenfalls erneut für Sie geprüft, konnten jedoch keine Beeinträchtigungen feststellen. Zur Prüfung haben wir die hostende Hardware Ihres V-Servers überprüft, die eine normale Lastverteilung aufzeigte.

Bitte beachten Sie, dass die Ressourcen der Hardware auf mehrere V-Server geteilt werden und sich somit je nach Lastverteilung unterschiedliche Performance-Werte ergeben können. In Ihrem Fall empfehlen wir Ihnen einen Wechsel auf einen der angebotenen dedizierten Root-Server, dessen Ressourcen ausschließlich Ihrem System zur Verfügung gestellt werden.

Ach so… der Performance (für dem ich übrigens 29,90EUR/Monat bezahle) ist 1/10 wie der Popeligste Rechner den ich finden könnte, und wenn ich was besseres will, soll ich was anderes Bestellen.

Ich dachte mir das kann doch nicht seien… wenn ich mit einen Menschen Rede wird er merken das was übersehen wurde und das Regeln können… und habe deshalb noch für weitere 3EUR auf deren Kostenpflichtige Technische Hotline angerufen um erst mit Herr Matt, und dann der Teamleader Herr Schumann zu sprechen.  Die sagten das die Tests bestätigen das es keine Probleme vorliegen, und das (wörtlich!)

das Performance das Sie gemessen haben ist was man bie dieser Produkt zu erwarten hat.

Wow… Ich staune!  Was haben die denn für Standards?  Wenn es ein Test gibt, stelle ich mir als erfahrener Ingineur vor, dann muss es auch ein Standard geben, was für Auslastung bzw. Zugriffszeiten zulässig sind.  Nein sagten die Herren: bei Strato gibt es Tests, aber keine Werte für Bestung diese Tests.

Fazit: Mit CPU und RAM protzen die V-PowerServe gross, aber sind trotzdem nutzlos weil die keine Anwendungen die ein Bischen Festplattenperformance brauchen (sprich alles ausser der Webseite deiner Oma!) unterstützen.

Ich werde bald möglichst meinen Anbieter wechseln (ärgerlich ist das ich erst 4 von ein 12-Monate Vertrag hinter mich habe…), und veröffentliche hiermit ein Beispiel der Standard der laut der Strato Technischer Support  bei den Strato V-PowerServer reihe zu erwarten ist, damit hoffentlich andere auch erfahren was bei Strato der Standard ist bevor die ein Vertrag abschliesen.

Ich rate die Finger von diesen Produkten zu lassen!