Problème
Vous avez des questions sur différents résultats calculés par l'agent monitoring du réseau ktranslate
.
Arrière-plan
ktranslate
renvoie les données brutes collectées par l'interrogation SNMP dans presque tous instance avec les réserves suivantes :
- % d'utilisation du processeur
- Utilisation de la mémoire %
- Utilisation de l'interface %
- Erreur d'interface %
- Différentes métriques avec les fonctions
enum
ouconversion
appliquées dans leur configuration
Solution
Metric Name: kentik.snmp.CPU
Le processeur est généralement renvoyé dans un OID direct qui fournit une valeur entière ou flottante représentant le pourcentage d'utilisation. Dans de rares cas, il n'y a qu'un résultat pour l'inactivité du processeur, qui est traduit en CPU à l'aide de cette formule :
CPU = 100 - CPU Idle
Metric Name: kentik.snmp.MemoryUtilization
Contrairement au processeur, l’utilisation de la mémoire est rarement présentée sous la forme d’une valeur OID directe. Pour calculer le pourcentage d'utilisation, ktranslate utilise cette logique:
If Memory Used and Memory Free are available: Memory Utilization = ( Memory Used / (Memory Free + Memory Used) ) * 100
If Memory Total and Memory Free are available: Memory Utilization = ( (Memory Total - Memory Free) / Memory Total ) * 100
If Memory Total and Memory Used are available: Memory Utilization = ( Memory Used / Memory Total ) * 100
If Memory Total, Memory Buffer, and Memory Cache are available: Memory Utilization = ( ( Memory Total - (Memory Buffer + Memory Cache ) ) / Memory Total ) * 100
Metric Name: kentik.snmp.IfInUtilization
| kentik.snmp.IfOutUtilization
L'utilisation de l'interface suit l'approche standard de l'industrie consistant à calculer le delta en bits et à le diviser par le produit de la vitesse configurée de l'interface et du delta de temps depuis la dernière collecte.
Par exemple, en supposant que 1 est le point de données précédent et 2 le plus récent :
( ( siHCInOctets_2 - siHCInOctets_1 ) * 8 * 100 ) / ( (sysUptime_2 - sysUptime_1) * siSpeed )
Calcul traduit
Pour le numérateur :
Prenez le dernier nombre d’octets et soustrayez la valeur de l’échantillon précédent pour obtenir un delta.
Multipliez le résultat par 8 pour convertir les octets en bits.
Multipliez les bits par 100 pour configurer le calcul du pourcentage.
Pour le dénominateur :
Prenez la dernière valeur de
sysUptime
et soustrayez la valeur de l’échantillon précédent pour obtenir un delta qui montre l’intervalle d’interrogation.Multipliez l'intervalle par le
ifSpeed
configuré (qui est indiqué en bits).Enfin:
Divisez le numérateur par le dénominateur pour trouver le pourcentage d'utilisation.
Données sources
KTranslate utilise la valeur de ifHCInOctets (réception) ou ifHCOutOctets (transmission) ; en remplaçant
ifSpeed
dans le dénominateur par la valeur de ifHighSpeed selon les besoins :Conseil
Une raison courante pour laquelle des pourcentages d'utilisation d'interface inexacts sont observés est que la vitesse d'interface configurée sur l'appareil ne reflète pas la vitesse d'interface réelle. Par instance, un circuit MPLS de 1 Go sur une interface de 10 Go afficherait des pourcentages à seulement 10 % de l'utilisation réelle. Pour résoudre ce problème, consultez la documentation de votre fournisseur sur la définition de la bande passante de l'interface.
Metric Name: kentik.snmp.ifHCInOctets
| kentik.snmp.ifHCOutOctets
Le débit de l'interface utilise la valeur de ifHCInOctets (réception) ou ifHCOutOctets (transmission).
Il est important de noter exactement ce que vous recherchez lorsque vous interrogez le débit.
1 octet = 1 octet
1 octet = 8 bits
La mesure brute dans SNMP consiste à compter les octets, ce qui dans ce contexte serait synonyme d'octets. Vous pouvez facilement calculer les octets directement via la métrique signalée sans aucune conversion nécessaire.
Si vous recherchez des bits par seconde (bps), vous devez à la fois multiplier les octets et convertir le nombre final en un débit « par seconde ».
Exemple
FROM Metric SELECTmax(kentik.snmp.ifHCInOctets) AS 'total_received_bytes',max(kentik.snmp.ifHCOutOctets) AS 'total_sent_bytes',rate(average(kentik.snmp.ifHCInOctets)*8, 1 SECOND) AS 'average_received_bps',rate(average(kentik.snmp.ifHCOutOctets)*8, 1 SECOND) AS 'average_sent_bps'FACET entity.name, if_interface_nameSINCE 1 WEEK AGOTIMESERIES
Metric Name: kentik.snmp.ifInErrorPercent
| kentik.snmp.ifOutErrorPercent
Le pourcentage d'erreur d'interface utilise la valeur de ifInErrors (réception) ou ifOutErrors (transmission), divisée par ifHCInUcastPkts (réception) ou ifHCOutUcastPkts (transmission). Dans ktranslate, la formule ressemble à ceci :
( ifInErrors / ifHCInUcastPkts ) * 100or( ifOutErrors / ifHCOutUcastPkts ) * 100
Metric Name: Divers
D'autres métriques SNMP sont converties en fonction de l'existence des fonctions enum
et conversion
dans leur profil SNMP respectif.
Paramétrage du profil | Usage |
---|---|
| Utilisé pour remplacer l'attribut |
| Utilisé pour gérer les énumérations SNMP qui convertissent la valeur entière d'une métrique dimensionnelle en valeur énumérée dans un attribut décoré sur la métrique dimensionnelle (en utilisant le même suffixe de nom de métrique). Un exemple courant est la conversion de kentik.snmp.if_AdminStatus en valeur énumérée de if_AdminStatus sous la forme |
| Utilisé pour convertir des valeurs hexadécimales au format entier. Options pour current: |
| Utilisé pour convertir des valeurs hexadécimales en chaînes IPv4 de 4 octets. |
| Utilisé pour convertir des valeurs hexadécimales en chaînes d'adresses MAC. |
| Utilisé pour l'énumération de la chaîne ASCII upsBasicStateOutputState dans |
| Place une correspondance regex sur la sortie OID pour capturer les sous-chaînes ; doit être entouré de guillemets et avoir des barres obliques inverses échappées. |
| Utilisé pour créer une métrique de jauge avec la valeur |