SystemDataRecorder

Service natif léger pour Windows

développé par Redwerk pour surveiller facilement les données de performance
×
Où souhaitez-vous que nous envoyions notre étude de cas de développement SystemDataRecorder ?
Veuillez saisir votre adresse courriel professionnelle n'est pas un courriel professionnel

SystemDataRecorder est un outil d'analyse des performances, de dimensionnement de système et de planification de capacité dans des environnements commerciaux difficiles.

Tous les clients

Développement de produit

En tant que guichet unique pour le développement de logiciels, Redwerk a implémenté tous les services Windows de System Data Recorder à partir de zéro. Nous avons traversé chaque phase ici : analyse des exigences, architecture, développement, tests, création du package d'installation et livraison.

En savoir plus

Startups & Innovation

Nous avons développé des produits pour plusieurs start-ups technologiques à partir de zéro, qui nous ont fait confiance pour construire leur technologie entière.

En savoir plus

Défi

SystemDataRecorder est peut-être le package le plus complet et le plus simple pour la surveillance professionnelle des performances, l’analyse des performances, la dimensionnement des systèmes et la planification de la capacité dans des environnements professionnels exigeants. Il assure un enregistrement cohérent des données sur les systèmes et les appareils, permet l’accès aux données brutes et est conçu pour des analyses de séries temporelles. Cela peut ne pas sembler évident pour les non-experts en logiciels, mais il s’agit bel et bien d’une solution très puissante et attendue depuis longtemps à un problème persistant.

Bien que les ordinateurs existent depuis plus de 25 ans, il n’existe toujours pas de surveillance cohérente des performances entre les différents systèmes d’exploitation, car chaque environnement déploie son propre type d’outils de surveillance et de collecte de données. L’enregistrement cohérent des données sur différents systèmes d’exploitation est très difficile à réaliser sans acheter de logiciels séparés pour chaque environnement ou installer des solutions tierces. Même le format utilisé pour enregistrer les données varie d’un système à l’autre, faisant de la collecte et de l’analyse des données un cauchemar logistique.

En examinant de près les systèmes d’exploitation individuels, il est facile de constater que les méthodes d’obtention des données de performance sont en réalité similaires, mais des interfaces différentes sont utilisées avec une terminologie variable selon les fournisseurs et le type spécifique d’implémentation. L’idée derrière SystemDataRecorder est d’avoir plusieurs agents de collecte de données standard pour obtenir des métriques à partir des interfaces système afin d’exporter ces informations d’une manière unifiée. Pour les données exportées, un fichier texte brut peut être utilisé, en évitant tout format de fichier spécial, afin de rendre ce fichier utilisable par tout outil d’analyse disponible. De cette façon, un simple module d’enregistrement de données peut être utilisé pour le dépannage système, l’analyse des performances, l’analyse des pannes système, etc., et il est facile à activer sur un grand nombre d’hôtes dans un centre de données, et le système d’exploitation utilisé ne joue plus de rôle.

SystemDataRecorder était déjà disponible et se révélait être la lumière au bout du tunnel pour les systèmes Linux et Solaris, lorsque Redwerk a été contacté pour l’adapter également aux environnements serveur Windows 2003 et 2008. L’objectif était que ces serveurs fonctionnent avec des métriques similaires à celles de SystemDataRecorder pour Linux ou Solaris. La solution devait utiliser le moins de ressources système possible, être de petite taille et suffisamment robuste pour ne pas créer de surcharges système. Les enregistreurs devaient être implémentés en tant que services Windows, c’est-à-dire des applications natives pour les systèmes 32 bits et 64 bits. Toutes les données devaient être stockées dans un fichier texte brut.

Un défi supplémentaire consistait à porter sous Windows la capacité de surveiller la sortie des fichiers de données brutes. Pour chaque modification dans un fichier, un POST HTTP/HTTPS devait être envoyé à un système backend afin d’être analysé ultérieurement. Le logiciel devait être distribué sous forme de package logiciel adapté à une installation automatique sur Windows sans nécessiter d’interaction utilisateur.

Solution

Nos recherches ont montré qu’un service écrit en C/C++ recevant des dizaines de paramètres et écrivant des données dans un fichier utilise environ 2 Mo de RAM et seulement des ressources CPU mineures. Le même service en C# utilise un minimum de 6 Mo, et bien qu’il soit plus facile à développer, il nécessite également un minimum de .NET 2.0. Après analyse des avantages et des inconvénients, le code a été développé en C. De cette façon, nous avons réussi à minimiser l’abstraction et avons pu utiliser des routines simples pour accéder aux métriques du noyau Windows sans les surcoûts qu’aurait entraînés l’utilisation d’un langage orienté objet. Toutes les données du service ont été obtenues via l’API WMI.

Pour chaque enregistreur individuel, le paramètre clé à utiliser est le nombre de secondes entre chaque mesure. La valeur par défaut était de 60 secondes. Nous avons également trouvé une solution pour lancer avec un certain paramètre sous Windows. Les enregistreurs se lancent et écrivent des données dans leurs propres fichiers individuels. Après cette première étape, les fichiers sont rotatifs et compressés. Sous Linux ou Solaris, cela est implémenté à l’aide de cron, mais pour Windows, nous avons dû trouver notre propre solution.

Le processus de développement a été très solide et basé sur des étapes logiques de recherche, de test et de déploiement. Les tests ont inclus des problèmes très intéressants. Nous avons dû nous assurer que les enregistreurs fonctionnaient sans fuites de mémoire ni autres déviations pendant au moins 48 heures. Nous les avons même laissés fonctionner pendant le week-end, afin de pouvoir les surveiller correctement, en effectuant des tests d’acceptation appropriés.

Pour que le processus et la solution soient solides et complets, les situations d’urgence telles que les pannes de courant ou les redémarrages système non planifiés doivent également être prises en compte. Pour faire face à de tels scénarios, les services doivent redémarrer automatiquement au démarrage du système et continuer à enregistrer et stocker les données dans les fichiers de sortie.

Résultat

Les meilleurs produits sont ceux qui font paraître simples des problèmes complexes. C’est particulièrement vrai dans le monde du développement logiciel en C. SystemDataRecorder est l’une de ces solutions. Les experts ingénieurs logiciels de Redwerk ont dû faire face à quelques obstacles, mais dans l’ensemble, ils ont eu peu de problèmes à développer les services requis pour les environnements Windows, avec des revues périodiques prévues (3-4 revues du code principal et du produit binaire avant la sortie finale). La solution a été testée de manière très approfondie pour voir comment elle se comporterait sous différents types de systèmes d’exploitation Windows.

Notre client a effectué son propre test d’acceptation à la fin de la phase de développement, vérifiant le produit en termes d’utilisation du processeur, de consommation de mémoire et de robustesse. Nous n’avions certainement rien contre ce genre d’« examens » ! Il a été très intéressant pour notre équipe de travailler sur un produit aussi inhabituel avec un scénario d’utilisation très spécifique, et nous avons été ravis que notre solution soit à la hauteur des normes élevées que notre client attendait de nous. Nous sommes très fiers d’avoir contribué à un tel outil formidable !

Nous avons choisi Redwerk pour son dévouement et son professionnalisme dans la conception et le développement du système de surveillance des performances SystemDataRecorder pour les plateformes Windows. Les longues heures consacrées aux tests et à la garantie du bon fonctionnement du logiciel font de Redwerk un partenaire solide et expérimenté pour le développement logiciel.
Stefan Parvu
Stefan Parvu, Ingénieur système principal chez SDR Dynamics Oy

Besoin d'un partenaire de développement dédié ?

Contactez-nous

Technologies

C++Windows
Enterprise Library
HTTP
2développeurs ont travaillé sur le projet
1ingénieur QA
600heures-homme consacrées
46,650lignes de code
Media
Media
Media
Media
Media
Media

Impressionné ?

Engagez-nous

Autres études de cas

Akamai Closed Captioning Fix

Akamai Closed Captioning Fix

États-Unis

A aidé WorldNow à résoudre le problème de perte de sous-titres lors du streaming en direct, améliorant l'expérience télévisuelle pour des millions de foyers américains

Cleanagents

Cleanagents

Allemagne

Nous avons développé cette application Android qui prend en charge les nettoyeurs indépendants en Allemagne et en Autriche. L'application a été rapidement acquise par Helping.de.

City Council Decision-Making

City Council Decision-Making

Pays-Bas

A aidé le fournisseur n°1 de l'administration électronique aux Pays-Bas et en Belgique à développer plusieurs modules clés pour leur plateforme décisionnelle des municipalités