DTrace fournit deux types d'attribut de stabilité aux entités comme les variables intégrées, les fonctions et les sondes : un niveau de stabilité et une classe de dépendance architecturale. Le niveau de stabilité de DTrace vous aide à évaluer les risques lors du développement de scripts et d'outils basés sur DTrace en indiquant la probabilité selon laquelle une interface ou une entité de DTrace sera modifiée dans une version ou un correctif à venir. La classe de dépendance de DTrace vous indique si une interface est commune à toutes les plates-formes et à tous les processeurs Solaris ou si elle est associée à une architecture particulière comme les processeurs SPARC uniquement. Les deux types d'attribut utilisés pour décrire les interfaces peuvent varier indépendamment l'un de l'autre.
Les valeurs de stabilité utilisées par DTrace apparaissent dans la liste suivante du niveau de stabilité le plus faible au plus élevé. Les interfaces les plus stables peuvent être utilisées par tous les programmes en D et les applications en couches car Sun s'efforce de garantir leur compatibilité avec les versions mineures ultérieures. Les applications qui ne dépendent que des interfaces stables continueront de fonctionner de manière fiable sur les versions mineures ultérieures et ne seront pas interrompues par des correctifs intermédiaires. Les interfaces les moins stables permettent l'expérimentation, le prototypage, le réglage et le débogage de votre système actuel. Il est nécessaire, lors de leur utilisation, de savoir qu'elles peuvent s'avérer incompatibles avec les versions mineures ultérieures, de même qu'elles peuvent être supprimées ou remplacées.
Les valeurs de stabilité de DTrace permettent de comprendre plus facilement la stabilité des entités logicielles que vous observez, en plus de la stabilité des interfaces de DTrace elles-mêmes. Par conséquent, les valeurs de stabilité de DTrace vous indiquent également la probabilité suivant laquelle les changements correspondants sont requis au niveau de vos programmes en D et des outils en couches lors de la mise à jour ou de la modification de la pile logicielle observée.
L'interface est privée à DTrace et représente un détail d'implémentation de DTrace. Les interfaces internes peuvent changer dans les micro-versions et les versions mineures.
L'interface est privée à Sun. Elle constitue une interface dédiée aux autres produits Sun et n'est pas publiquement documentée pour pouvoir être utilisée par les clients et les ISV. Les interfaces privées peuvent subir des modifications dans les micro-versions et les versions mineures.
L'interface est prise en charge dans la version actuelle mais sa suppression, dans une prochaine version mineure, est programmée. Lorsque la prise en charge d'une interface est sur le point d'être interrompue, Sun essaye de le notifier à l'avance. Le compilateur D peut émettre des messages d'avertissement si vous tentez d'utiliser une interface obsolète.
L'interface est contrôlée par une entité autre que Sun. Sun, selon son appréciation exclusive, peut fournir des versions de mises à jour de ces interfaces, suceptibles d'être incompatibles, en fonction de leur disponibilité au niveau de l'entité de contrôle. Sun ne fait aucune déclaration sur la compatibilité source ou binaire des interfaces externes entre deux versions différentes. Les applications basées sur ces interfaces peuvent ne pas fonctionner dans les prochaines versions, y compris les correctifs qui contiennent des interfaces externes.
L'interface est fournie pour permettre aux développeurs d'accéder en avance aux nouvelles technologies et aux technologies en pleine évolution ou à un artefact d'implémentation essentiel à l'observation ou au débogage du comportement du système pour lequel une solution plus stable sera anticipée prochainement. Sun ne fait aucune déclaration sur la compatibilité source ou binaire des interfaces instables d'une version mineure à une autre.
L'interface peut éventuellement devenir standard ou stable mais reste en phase de transition. Sun mettra en œuvre les efforts raisonnables pour assurer la compatibilité avec les versions précédentes au fur et à mesure de l'évolution. Lorsque des modifications à compatibilité non ascendante s'imposent, elles sont implémentées dans le cadre d'une version mineure ou majeure. Les micro-versions ne contiendront pas, dans la mesure du possible, de telles modifications. Si de telles modifications s'imposent, elles seront documentées dans les notes de version de la version concernée, et dans la mesure du possible, Sun proposera une aide à la migration pour assurer la compatibilité binaire et le développement continu des programmes en D.
L'interface est une interface stabilisée sous le contrôle de Sun. Sun essayera de ne pas intégrer de modifications à compatibilité non ascendante à ces interfaces, notamment dans les versions mineures ou les micro-versions. En cas d'interruption de la prise en charge d'une interface stable, Sun essayera de le notifier. En outre, Ie niveau de stabilité bascule sur Obsolète.
L'interface est conforme au standard de l'industrie. La documentation correspondante de l'interface décrit le standard auquel l'interface se conforme. Les standards sont généralement contrôlés par un organisme de développement de standards. Par ailleurs, l'interface peut être modifiée en fonction des changements approuvés au niveau du standard observé. Ce niveau de stabilité peut également s'appliquer aux interfaces adoptées sans qu'une convention industrielle n'impose de standard formel. La prise en charge n'est fournie que pour les versions spécifiées d'un standard ; de ce fait, la prise en charge des versions ultérieures n'est pas garantie. Si l'organisme de développement de standards approuve une modification à compatibilité non ascendante d'une interface standard que Sun choisit de prendre en charge, Sun annoncera une stratégie de compatibilité et de migration.