nisshiee.org

MySQLの各テーブルのレコード数をDatadogで監視する

2018-12-03

前提

  • モニタリングサーバ的なのが居る(datadog-agentが動いてる)
  • 各種メトリクスはDatadogに集約している
  • 概算で良い

手順

↓こんな感じのスクリプトを適当な間隔で繰り返し実行する

mysql -h "$RDS_HOST" -u "$RDS_USER" -p"$RDS_PASSWORD" -NB -e "select TABLE_NAME, TABLE_ROWS from information_schema.TABLES where table_schema = '$RDS_DATABASE'" | while read table count; do
  echo "$table: $count"
  echo "mysql.tables.${table}.records.count:${count}|g" | nc -w 1 -u localhost 8125
done

注意

InnoDBを使っている場合、information_schema.TABLE_ROWSの値は概算。