Je travaille pour une entreprise du Fortune 500 qui a du mal à mesurer avec précision les performances et la disponibilité des applications à haute disponibilité (c.-à-d. Les applications en hausse de 99,5% avec une navigation de page à page en 5 secondes). Nous prenons en compte les temps d'arrêt planifiés et non planifiés pour déterminer ce numéro de disponibilité. Cependant, nous avons récemment ajouté un CDN dans le mélange, ce qui complique un peu nos mesures. Le CDN gère désormais environ 75% de notre trafic, tout en envoyant le reste à nos propres serveurs.
Nous essayons de mesurer ce que nous appelons une «véritable expérience utilisateur» (c'est-à-dire que nos scripts de test émulent un utilisateur typique cliquant sur l'application.) Ces scripts de surveillance se trouvent en dehors de notre réseau, ce qui signifie que nous atteignons le CDN environ 75% des le temps.
La direction a décidé que nous prenions le pire des cas pour mesurer la disponibilité. Donc, si nos serveurs d'origine ont des problèmes, mais que le CDN sert très bien du contenu, nous prenons toujours un coup sur la disponibilité. Il en va de même dans l'autre sens. Ma pensée est que tant que "l'expérience utilisateur" est réussie, nous ne devrions pas nous punir inutilement. Après tout, un CDN est là pour améliorer les performances et la disponibilité!
Je me demande simplement si quelqu'un sait comment les autres sociétés du Fortune 500 calculent leur nombre de disponibilités? Je regarde apple.com, par exemple, d'une vitrine qui utilise un CDN qui ne semble jamais être en panne (à moins qu'il y ait une annonce de produit majeure.) Ce serait formidable d'avoir des données factuelles dures parce que je ne 't croire que nous devons nous blesser inutilement sur ces mesures. Nous sommes des décisions d'affaires basées sur ces chiffres.
Je peux dire, cependant, étant donné que ces mesures sont visibles pour la direction, les problèmes sont résolus et résolus assez rapidement (lire: nous éliminons la paperasse assez rapidement.) Malheureusement, en tant que développeur, je ne veux pas que la direction pense que l'application est en hausse ou en baisse parce qu'un facteur externe (c.-à-d. CDN) influence les chiffres.
Pensées?
(J'ai par erreur posté cette question sur StackOverflow, désolé à l'avance pour le cross-post)
la source
Je suis d'accord avec user44700, il est préférable de séparer les tests de disponibilité de vos serveurs par rapport au CDN et de suivre les deux indépendamment indépendamment. Votre véritable disponibilité sera la disponibilité du serveur * la disponibilité du CDN, car si l'un ou l'autre tombe en panne - vous considérez que votre page / site est en panne. Cela vous coûtera également moins cher avec l'un des fournisseurs de surveillance.
Je n'irais pas dans le sens de créer un test de navigateur et de regarder quels éléments ont échoué, alors que cela pourrait fonctionner et que certaines entreprises comme Catchpoint ont le concept de «disponibilité du contenu» - ce n'est peut-être pas exactement ce que vous voulez dans ce cas. Supposons par exemple que votre page Web appelle le CDN pour un fichier qui fournit 404, la plupart des solutions de surveillance vous diront que c'est un échec - mais était-ce vraiment le CDN qui a échoué? Ce dossier était-il même important? peut-être que quelqu'un a juste oublié de supprimer une référence de relique qu'aucun utilisateur ne remarque.
Vous pouvez lire ce billet de blog pour plus d'idées: http://blog.catchpoint.com/2010/07/21/true-available-of-a-webpage/
la source
Les rapports SLA doivent refléter fidèlement la réalité. Si vous mesurez la disponibilité du point de vue de l'utilisateur et que seul le serveur effectuant la mesure rencontre des problèmes, signaler ce problème dans votre contrat SLA ne refléterait pas l'expérience utilisateur.
Je peux comprendre vouloir maintenir les informations source à un niveau élevé, peut-être toujours les rapporter même si elles sont inexactes mais avec une note indiquant pourquoi.
Si vous ne pouvez pas vous mettre d'accord, il existe peut-être une solution technique pour rendre le serveur de mesure moins faillible.
Si l'information est signalée comme une panne et qu'elle ne l'a pas été, quelle valeur la déclaration fournit-elle?
Dans mon environnement, nous rapportons à partir de plusieurs sources. Une méthodologie de surveillance externe pour signaler la disponibilité d'un point de vue externe ainsi que pour signaler notre système d'enregistrement interne des pannes, qui est entré par l'homme et tient compte de plusieurs facteurs qui reflètent le plus fidèlement la situation.
la source
Gomez et Keynote sont des solutions acceptées par l'entreprise pour rassembler les types de métriques que vous avez mentionnés. Gomez dispose également d'un service qui surveille votre expérience utilisateur finale en recherchant un fichier javascript google-analytics-esque.
la source
Pingdom est bon: http://www.pingdom.com/
la source
Nous sommes un Fortune 500 avec un site compatible CDN, et nous utilisons plusieurs choses. Vous avez correctement déterminé que vous devez mesurer différentes choses si vous voulez détecter des choses différentes. Je ne sais pas exactement ce que vous voulez spécifiquement - des numéros de disponibilité pour vous aider à déterminer quand une application est réellement en panne, ou des chiffres qui vous gèrent la gestion. En tous cas...
Pour obtenir le «CDN hors de lui», vous pouvez prendre un autre moniteur Keynote / Gomez et le pointer vers vos applications et non via le CDN en utilisant un autre nom DNS ou autre. Mais comme il possède toujours des actifs statiques, il est plus utile pour les performances que pour la disponibilité. Et il garde les pannes Internet, les coupures d'agents, etc. dans la boucle, ce qui est approprié pour certaines fins et pas pour d'autres.
Surveillance réelle des utilisateurs. Il existe des réseaux (Coradiant, Tealeaf) et des balises (Jiffy, Gomez). Nous utilisons Coradiant comme un renifleur de réseau et il détermine les performances réelles vues par l'utilisateur des actifs hébergés ici dans notre centre de données - en d'autres termes, les applications réelles et pas toutes les ordures statiques sur le CDN. Nous avons ensuite rédigé des rapports pour déterminer les taux d'erreur et les performances des applications et utilisé l'Apdex (apdex.org) comme mesure dérivée. Dans certains cas, vous ne pouvez pas utiliser le réseau (trop de trafic ou vos actifs ne sont pas hébergés où vous pouvez accéder au réseau), et le tag n'est pas fiable. A l'immense avantage de voir réellement le temps de réponse de l'utilisateur final et les erreurs - il est facile de configurer un moniteur synthétique qui ne fait pas d'erreur dans tous les cas qu'un vrai utilisateur fait.
Surveillance synthétique locale. Nagios / zabbix / sitescope / une centaine d'autres. Dirigez un moniteur vers votre application localement (ne passez pas par le CDN). Pour la surveillance de la disponibilité (comme dans, envoyer une page pour réveiller quelqu'un), il s'agit de l'étalon-or. Ne prend pas en compte les éléments du réseau.
Surveillance des journaux. Dans un sens, il s'agit d'une véritable surveillance des utilisateurs du ghetto. Mais si vous voulez vraiment voir ce qui s'est passé, c'est assez pratique. A l'avantage "non, c'est vraiment ce qui s'est passé" d'une véritable surveillance des utilisateurs. Souvent disponible uniquement, sauf si vous vous connectez en fonction du temps sur le niveau Web, auquel cas cela vous montre combien de temps votre serveur a pris - pas utile pour l'utilisateur face au SLA, mais très utile pour "sur quel code devons-nous travailler . " Utilisez splunk.
Ce n'est pas un ou nous utilisons tout cela, parce que vous voulez "l'histoire de l'utilisateur final" ainsi que "sur quel programmeur devons-nous nous appuyer".
la source
BrowserMob est génial
la source