Ce Plug-in obtient diverses métriques de DynamoDB.
Vous pouvez obtenir des métriques dans chaque table et le temps de réponse dans chaque API.
Table Metrics
Tout d'abord, à partir des métriques de chaque table. Les statistiques du tableau ci-dessous indiquent la formule à obtenir (la somme est la valeur totale par unité de temps, la moyenne est la valeur moyenne par unité de temps).
Metric Name | Statistics | Detail |
---|---|---|
UserErrors | Sum | Erreur client |
SystemErros | Sum | Erreur côté AWS(Je veux penser qu'il y en aura peu) |
ThrottleRequests | Sum | Nombre de demandes limitées ayant atteint la limite d'unités de capacité provisionnées |
ReadThrottleEvents | Sum | Lire les demandes qui ont atteint la limite supérieure des unités de capacité provisionnées |
WriteThrottleEvents | Sum | Ecrire les demandes qui ont atteint la limite supérieure des unités de capacité provisionnées |
ProvisionedReadCapacityUnits | Maximum | Nombre de ProvisionedReadCapacityUnits spécifié dans la table |
ProvisionedWriteCapacityUnits | Maximum | Nombre de ProvisionedWriteCapacityUnits spécifié dans la table |
ConsumedReadCapacityUnits | Maximum | Nombre maximum d'unités de capacité de lecture consommées par unité de temps |
ConsumedReadCapacityUnits | Average | Nombre moyen d'unités de capacité de lecture consommées par unité de temps |
ConsumedWriteCapacityUnits | Maximum | Nombre maximum de WriteCapacityUnits consommés par unité de temps |
ConsumedWriteCapacityUnits | Average | Nombre moyen d'unités WriteCapacityUnits consommées par unité de temps |
about UserErrors
Je pense que cela ressemble à UserErrors, mais c'est une erreur lors de l'appel de DynamoDB du côté du SDK. Plus précisément, lorsque le code d'état 4XX est renvoyé.
about Each CapacityUnits
DynamoDB est une base de données distribuée avec plusieurs fragments à l'arrière. Cependant, les CapacityUnits que vous définissez sont affectés à l'ensemble de la table. Il est facile de penser qu'il n'y a pas de problème car le fragment se divise et se met à l'échelle proportionnellement à la taille des unités de capacité. Je pense que c'est génial que vous n'ayez pas à vous soucier de la montée en charge ou de la charge.
Cependant, comme CapacityUnits est affecté à Table, chaque partition aura la valeur divisée par le nombre de partitions. J'obtiens une LimitExceededException même si ConsumedReadCapacityUnits n'a pas du tout atteint la limite! !! !! !! Cela peut arriver.
C'est parce que (enfin, si vous lisez correctement la documentation, elle est assez bien écrite, mais ...), la clé de hachage est largement distribuée et la valeur est difficile, donc le fragment chaud est créé. Une fois que cela se produit, je pense que c'est assez difficile de le réparer, donc j'aimerais bien le faire au stade de la conception si possible.
Each Operation Metrics
Vous pouvez obtenir le temps de réponse lorsque l'API réussit et le nombre d'éléments renvoyés lors de l'émission de la requête de plage. Faites attention, par exemple, si l'API d'analyse ou l'API de requête renvoie trop d'éléments. (Si quoi que ce soit, il semble que vous remarquerez que la latence de l'ELB s'est d'abord détériorée)
Concernant ResponseTime, il y a les éléments suivants,
Pour le nombre d'articles acquis
il y a. Les deux valeurs sont conçues pour obtenir le maximum et la moyenne.
Excusez-moi, donc je vais répondre dès que possible.
Les options sont les suivantes.
Key Name | Default | Require | Detail |
---|---|---|---|
region_name | us-east-1 | No | Nom de la région AWS |
aws_access_key_id | - | Yes | AWS Acces Key ID |
aws_secret_access_key | - | Yes | AWS Secret Access Key |
table_name | - | Yes | Nom de table de DynamoDB |
hostname | - | Yes | Nom d'hôte sur Zabbix(Faites-le en premier) |
module | - | Yes | Quel plugin utiliser, alors icidynamodbEst fixé à |
ignore_metrics | - | No | S'il y a une métrique que vous ne souhaitez pas obtenir, veuillez l'écrire séparée par des virgules. |
ignore_operations | - | No | S'il y a une métrique d'opération que vous ne souhaitez pas obtenir, veuillez la séparer par une virgule. |
about ignore_XXXXX parameter
S'il y a des valeurs que vous ne souhaitez pas obtenir pour ignore_metrics (CloudWatch coûte également de l'argent pour appeler l'API au-delà du mois gratuit), veuillez les séparer par des virgules comme ʻignore_metrics = UserErrors, ConsumedWriteCapacityUnits`.
La même chose est vraie pour ignore_operations, et si vous n'utilisez pas l'API BatchWrite et Scan, veuillez écrire comme ʻignore_operations = BatchWriteItem, Scan`!
Example
Ceci est un exemple de fichier de configuration
#Le nom de la section peut être n'importe quoi, mais ce sera le nom du thread qui est généré en interne, il peut donc être préférable de ne pas le porter avec d'autres. Étant donné que le journal de débogage a un nom de thread, j'utilise le nom de la table DynamoDB.
[ANYTHING_OK]
# AWS Information
region_name = ap-northeast-1
aws_access_key_id = XXXXXXXXXX
aws_secret_access_key = YYYYYYYYYY
#Veuillez saisir le nom de la table DynamoDB
table_name = YOUR_DYNAMODB_TABLE_NAME
#Nom d'hôte sur Zabbix. En raison des restrictions sur zabbix, je me demande quoi faire s'il n'est pas lié à un tel serveur, mais je crée et utilise le même nom d'hôte que le nom de la table.
hostname = HOSTNAME_ON_ZBX_SERVER
#Il est fixé à dynamodb.
module = dynamodb
Ça ressemble à ça!
Recommended Posts