C'est ainsi que j'utilise ces mots. D'autres peuvent avoir des usages supplémentaires ou différents. Selon le travail à accomplir, j'utiliserai les termes différemment. Les équipes de développement et les équipes d'exploitation ont des besoins et une utilisation différents.
La surveillance, c'est la surveillance. Habituellement, il est en cours et de préférence automatisé. Outils Open Source aiment Munin
, Nagios
et MRTG
entrent dans cette catégorie. Il y a aussi beaucoup d'outils commerciaux. J'inclurais également la sar
course en continu dans cette catégorie, mais ses résultats ne sont normalement pas surveillés. Les outils de surveillance peuvent être utilisés pour déclencher des alertes lorsqu'une ressource surveillée tombe au-dessus ou en dessous d'un niveau de déclenchement. De nombreux outils de surveillance fonctionnent bien dans des environnements hétérogènes.
Le profilage est généralement effectué sur un programme particulier pour voir quel code utilise le plus de ressources. Il s'agit souvent du temps CPU, mais peut également inclure la mémoire, les E / S et le temps d'exécution (mur). Il est généralement utilisé pour identifier le code candidat à l'optimisation. Les outils de profilage dépendent généralement de la langue et / ou de la plate-forme.
Un autre type de profilage est effectué à l'aide de journaux et / ou de données de surveillance. Il s'agit d'un profil d'utilisation et cela peut être fait pour diverses raisons. Je n'ai pas trouvé beaucoup d'outils pour le faire.
J'utilise le traçage de deux manières différentes. Le plus souvent, je trace des itinéraires réseau. Selon les paramètres du réseau et du pare-feu, divers outils peuvent être utilisés avec plus ou moins de succès. La plupart d'entre eux ont traceroute dans leur nom ou leur description.
Le suivi de programme consiste à suivre l'exécution d'un programme. Cela se fait généralement dans une situation de test. Cela peut être fait de plusieurs façons (dans mon ordre d'utilisation et d'expérience):
- Suivi des appels à l'aide d'outils comme
strace
pour voir quel code est appelé. Cela peut être utile pour déterminer pourquoi un programme échoue ou ne répond pas comme prévu.
- Journalisation au niveau de la trace, qui dépend des instructions de journalisation appropriées incluses dans le code. La plupart des suites de journalisation prennent en charge ce niveau de détail. La journalisation au niveau du suivi a généralement une faible couverture de code. Je l'ajoute généralement au besoin et le laisse dans le code pour une utilisation future.
- La couverture du code enregistre les parties du code qui ont été exécutées dans une suite de tests. Cela peut être utile pour déterminer les cas de test manquants. Une couverture à 100% du code est difficile à obtenir. Une couverture à 100% des flux normaux devrait être réalisable.
- Vérification de bureau: traçage du code en le lisant. Pas très utile sur des programmes plus importants, mais un bon moyen d'identifier les cas limites pour les tests unitaires, et / ou d'identifier les problèmes possibles lorsque la source probable a été réduite. Les IDE et éditeurs Som = e permettent de suivre relativement facilement un appel au code d'implémentation.
- Débogage en direct; suivre l'exécution du code pendant son exécution à l'aide d'un débogueur. Il est possible de tracer instruction d'exécution par instruction, mais si le problème est un problème de synchronisation, il peut être masqué. Les débogueurs qui peuvent lier le code à l'instruction en cours aident beaucoup mais peuvent nécessiter la création d'une version de débogage du programme.