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:


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!


Amazon RDS

October 30th, 2009 robin Posted in MySQL, Reviews 2 Comments »

A couple of days ago, Amazon released their RDS service.  Being a MySQL fan, I had to have a try!

The cool stuff:

  • It is well documented, and pretty easy to set up an instance.
  • You can dynamically change the class (CPU power and Memory) of a database instance – this means you can give it more power without shutting it down, and easily scale it without having to do complex MySQL proxy configuration and synchronisation.

What’s still missing:

  • Not available in EU yet (it should be soon) – I set up a few instances in the US, but can’t really test what the performance is in the EU between EC2 instances and RDS instances, and that’s what I’m really interested in…
  • I takes a long time for the instance to become available!  I was waiting between 5 and 30 minutes.  I guess that’s not such an issue if you are just creating it once and leaving it running as the data hub for an application, but it’s annoyingly slow for testing/playing.  At least they don’t seem to start billing for time until it is online.

Other interesting notes

  • If you start the instance without any parameters, it will have a typical configuration for the machine used (memory allocation spread between InnoDB and MyISAM).  It is however possible to specify parameters when the instance is started, or even during run time – this gives a lot of room for optimisation: it’s not just a dumb service, you can tune it to your requirements.
  • Just for kicks and giggles, I tried scaling a small instance to a large instance, without any custom parameters: the only change was allocating all the additional memory to innodb_buffer_pool_size.  I guess that’s what most people want…