Présentation
Associez le cluster TiDB à Datadog pour :
- Recueillir des métriques TiDB clés sur votre cluster
- Recueillir les logs de votre cluster, notamment les logs TiDB/TiKV/TiFlash et les logs sur les requêtes lentes
- Visualiser les performances de votre cluster dans le dashboard fourni
Remarque :
- Pour que cette intégration fonctionne, TiDB 4.0 ou ultérieur est requis.
- Pour intégrer TiDB Cloud, consultez la documentation à ce sujet.
Configuration
Installation
Commencez par télécharger et lancer l’Agent Datadog.
Installez ensuite manuellement le check TiDB. Les instructions varient en fonction de votre environnement.
Exécutez datadog-agent integration install -t datadog-tidb==<VERSION_INTÉGRATION>
.
Procédure à suivre
Collecte de métriques
- Modifiez le fichier
tidb.d/conf.yaml
dans le dossier conf.d/
à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos données de performance TiDB. Consultez le fichier d’exemple tidb.d/conf.yaml pour découvrir toutes les options de configuration disponibles.
L’exemple de fichier tidb.d/conf.yaml configure uniquement l’instance PD. Les autres instances au sein du cluster TiDB doivent être configurées manuellement, comme suit :
init_config:
instances:
- pd_metric_url: http://localhost:2379/metrics
send_distribution_buckets: true
tags:
- cluster_name:cluster01
- tidb_metric_url: http://localhost:10080/metrics
send_distribution_buckets: true
tags:
- cluster_name:cluster01
- tikv_metric_url: http://localhost:20180/metrics
send_distribution_buckets: true
tags:
- cluster_name:cluster01
- tiflash_metric_url: http://localhost:8234/metrics
send_distribution_buckets: true
tags:
- cluster_name:cluster01
- tiflash_proxy_metric_url: http://localhost:20292/metrics
send_distribution_buckets: true
tags:
- cluster_name:cluster01
- Redémarrez l’Agent.
Collecte de logs
Disponible à partir des versions > 6.0 de l’Agent
La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml
:
Ajoutez ce bloc de configuration à votre fichier tidb.d/conf.yaml
pour commencer à recueillir vos logs TiDB :
logs:
# pd log
- type: file
path: "/tidb-deploy/pd-2379/log/pd*.log"
service: "tidb-cluster"
source: "pd"
# tikv log
- type: file
path: "/tidb-deploy/tikv-20160/log/tikv*.log"
service: "tidb-cluster"
source: "tikv"
# tidb log
- type: file
path: "/tidb-deploy/tidb-4000/log/tidb*.log"
service: "tidb-cluster"
source: "tidb"
exclude_paths:
- /tidb-deploy/tidb-4000/log/tidb_slow_query.log
- type: file
path: "/tidb-deploy/tidb-4000/log/tidb_slow_query*.log"
service: "tidb-cluster"
source: "tidb"
log_processing_rules:
- type: multi_line
name: new_log_start_with_datetime
pattern: '#\sTime:'
tags:
- "custom_format:tidb_slow_query"
# tiflash log
- type: file
path: "/tidb-deploy/tiflash-9000/log/tiflash*.log"
service: "tidb-cluster"
source: "tiflash"
Modifiez les paramètres path
et service
en fonction de la configuration de votre cluster.
Utilisez les commandes suivantes pour afficher le chemin de l’ensemble de vos logs :
# show deploying directories
tiup cluster display <YOUR_CLUSTER_NAME>
# find specific logging file path by command arguments
ps -fwwp <TIDB_PROCESS_PID/PD_PROCESS_PID/etc.>
Redémarrez l’Agent.
Validation
Lancez la sous-commande status de l’Agent et cherchez tidb
dans la section Checks.
Données collectées
Métriques
tidb_cluster.tidb_executor_statement_total (count) | The total number of statements executed Shown as execution |
tidb_cluster.tidb_server_execute_error_total (count) | The total number of execution errors Shown as error |
tidb_cluster.tidb_server_connections (gauge) | Current number of connections in TiDB server Shown as connection |
tidb_cluster.tidb_server_handle_query_duration_seconds.count (count) | The total number of handled queries in server Shown as query |
tidb_cluster.tidb_server_handle_query_duration_seconds.sum (count) | The sum of handled query duration in server Shown as second |
tidb_cluster.tikv_engine_size_bytes (gauge) | The disk usage bytes of TiKV instances Shown as byte |
tidb_cluster.tikv_store_size_bytes (gauge) | The disk capacity bytes of TiKV instances Shown as byte |
tidb_cluster.tikv_io_bytes (count) | The io read/write bytes of TiKV instances Shown as byte |
tidb_cluster.tiflash_store_size_used_bytes (gauge) | The disk usage bytes of TiFlash instances Shown as byte |
tidb_cluster.tiflash_store_size_capacity_bytes (gauge) | The disk capacity bytes of TiFlash instances Shown as byte |
tidb_cluster.process_cpu_seconds_total (count) | The cpu usage seconds of TiDB/TiKV/TiFlash instances Shown as second |
tidb_cluster.process_resident_memory_bytes (gauge) | The resident memory bytes of TiDB/TiKV/TiFlash instances Shown as byte |
Il est possible d’utiliser l’option de configuration metrics
pour recueillir des métriques supplémentaires depuis un cluster TiDB.
Événements
Le check TiDB n’inclut aucun événement.
Checks de service
tidb_cluster.prometheus.health
Returns CRITICAL
if the Agent cannot fetch Prometheus metrics, otherwise returns OK
.
Statuses: ok, critical
Dépannage
Métriques manquantes sur le processeur et la mémoire pour les instances TiKB et TiFlash sous macOS
Les métriques sur le processeur et la mémoire ne sont pas fournies pour les instances TiKV et TiFlash dans les configurations suivantes :
- Les instances TiKV ou TiFlash sont exécutées avec le playground tiup sous macOS.
- Les instances TiKV ou TiFlash sont exécutées avec docker-compose up sur une nouvelle machine dotée d’une puce M1 Apple.
Trop de métriques
Le check TiDB active les métriques distribution
de Datadog par défaut. Cette partie des données est très volumineuse et peut consommer une grande quantité de ressources. Ce comportement peut être modifié dans le fichier tidb.yml
:
send_distribution_buckets: false
Étant donné qu’un cluster TiDB comprend de nombreuses métriques importantes, le check TiDB définit le paramètre max_returned_metrics
sur 10000
par défaut. Vous pouvez définir une valeur max_returned_metrics
plus basse dans le fichier tidb.yml
si nécessaire :
max_returned_metrics: 1000
Besoin d’aide ? Contactez l’assistance Datadog.