Skip to content

Easysoa integration architecture monitoring platform

mdutoo edited this page Nov 15, 2012 · 5 revisions

TODO translate

Monitoring - Indicateurs :

NB. à propos d'indicateurs monitoring etc. : voir WSLA ex. http://clip.dia.fi.upm.es/Projects/S-CUBE/.../keller03:wsla_framework.pdf

sauvé dans model :

  • que les indicateurs haut niveau BS et IS ("indicateurs de santé de service")
  • plus l'URL Jasmine Portal sur la plateforme d'exploitation operation_platform de l'endpoint / du projet

un indicateur est :

  • service level health (ex. vert si gold, orange si silver, rouge si bronze),
  • service level violation (rouge si violation),
  • période sur laquelle est défini l'indicateur
  • NB. rattachés sur SLA ou OLA

Service Level Indicators dashboard UI : (for a Project + Environment) lists InformationServices (per BusinessService...) and their

  • service name,
  • SLA ou OLA name,
  • noms client et fournisseur,
  • indicateur : TODO Q aboulze le dernier, les 10 derniers, de la journée, UI navigation... ?

Monitoring - EndpointStateService :

Spécifications :

  • updateSlaOlaIndicators(slaOrOlaId, environment, [versionedProjectId, ] indicators { timestamp, serviceLevelHealth=green/orange/red, serviceLevelViolation=true/false})
  • slaOrOlaId est à récupérer manuellement du modèle EasySOA des Specifications et mettre dans la configuration de la plateforme de monitoring
  • TODO Q aboulze : serviceLevelHealth = rather gold/silver/bronze, serviceLevelViolation = rather their count ??
  • OPT slaOrOlaId peut aussi être un id métier extrait du fichier de configuration du SLA (ex. SLA/service et SLA/provider dans l'exemple d'Alain)
  • get[Last/Paginated/InPeriod]Indicator(s)(slaOrOlaId, [paramètres selon besoin UI])
  • TODO Q aboulze paramètres = le dernier, les 10 derniers, de la journée, UI navigation... ?

Réalisation côté serveur Nuxeo :

  • réalisation : dans Nuxeo, par AuditLog
  • TODO Q tdelprat, aboulze accroché à endpointDocId, ou à slaOrOlaDocId avec environnement et id projet déployant (voire versionné) dans d'autres champs (lesquels ??) ? A fournir par Jasmine tel quel (plus simple), ou à (vérifier) résoudre depuis leur nom métier (soaname), côté serveur ou (OPT caché) côté client Jasmine ?
  • TODO Q tdelprat sauver : NXAuditEventService newLogEntry(), newExtendedInfo(), addLogEntries() ; principalName, eventId (none ? required ??), date, docUUID (slaOrOlaId, env voire (if not live) versioned endpointId), docPath docType docLifeCycle repositoryId (auto ?), category (string ex. easysoa.endpointState), extendedInfos (timestamp, slh, slv), comment
  • TODO Q tdelprat OU BIEN créé par Event, quoi renseigné alors ?? comme dans https://github.com/nuxeo/nuxeo-platform-audit-web-access/blob/master/src/main/java/org/nuxeo/ecm/platform/audit/web/access/WebAccessLogActionListener.java
  • lister : tous, HQL query on what was logged (extendedInfos)... voir http://community.nuxeo.com/5.3/books/nuxeo-book/html/audit-service.html NXAuditEventService audit = Framework.getService(NXAuditEventService.class); List entries = audit.getLogEntriesFor(document.getDocUUID()); entries = audit.nativeQueryLogs("log.docPath like '/somefolder/%' and log.extendedInfos['slaOrOlaId']='anUid'", 1, 10)
  • TODO Q tdelprat lister : performances ? plutôt event=easysoa.endpointState and category=(versioned)deplProject+slaOrOla+env(ids) ??
  • TODO Q tdelprat purge : quelle purge pour les AuditLogs ? le rendre tournant / borné ?
  • UI : dashboard décrit plus haut, utilisant EndpointStateService.getIndicators()
  • OPT dashboard UI graphe de l'évolution des indicateurs

Réalisation côté client Jasmine :

  • EndpointStateService.updateSlaOlaIndicators() est appelé dans les règles EasiFab
  • TODO Q jlegrand, aboulze : par quel client, protocole et authentification ?
  • protocole : REST privilégié
  • authentification (en tant qu'utilisateur système / "monitoring") : 2-legged OAuth privilégié voir http://developer.yahoo.com/blogs/ydn/posts/2010/04/a_twolegged_oauth_serverclient_example/ , sinon Basic éventuellement encrypté par TLS/SSL, au pire une liste d'hôtes de confiance).
  • Pour cela, quel client est disponible ou embarquable côté Jasmine ?

Monitoring - service client - quelques pistes :

NB. comment rajouter le support OAuth à un client HTTP : l'enrichir en utilisant signpost comme fait pour HTTPClient, voir http://code.google.com/p/oauth-signpost/source/browse/trunk/signpost-commonshttp4/src/main/java/oauth/signpost/commonshttp/CommonsHttpOAuthConsumer.java?r=64

Clone this wiki locally