search
LoginSignup
8

More than 5 years have passed since last update.

posted at

updated at

[blackbird-elasticache] Monitoring AWS ElastiCache(redis)

このプラグインはAWS ElastiCacheのMetricをCloudWatch APIを使って取得するプラグインです。
今のところ(今後memcachedについても実装予定です)、redisしか対応してない(ってか僕が所属しているプロジェクトがredisしか使ってないw)いませんが、
blackbird-elasticacheのご紹介です。

What metric does it get?

まずは、取得できるMetricの一覧からです。
Statisticsは毎度の通り、AverageとかSumとかMaxとかMinとかどの計算方法で値を取得するかです。
ElastiCacheのCloudWatchはミドルウェア自身(ここで言うと、redisかmemcachedか)のMetricと
そのミドルウェアがインストールされているホスト側のMetricが存在します。

Host Side Metrics(Called Host-level metrics by Amazon)

Metric Name Statistics Detail
CPUUtilization Average CPU使用率です。KVSを使ってるとそんなに高くはならなさそうですね。
SwapUsage Average Swapの使用率です。
FreeableMemory Average ホスト側の利用可能なmemory容量です
NetworkBytesIn Average このホストのTraffic量(in) です。
NetworkBytesOut Average このホストのTraffic量(out) です。

about SwapUsage and FreeableMemory

フルマネージドとかいいながら、ElastiCacheに関しては結構redisを直に使っている印象があります。

FreeableMemoryとSwapUsageは特に気をつけたい項目なんですが、
フルマネージドという言葉に乗っかって、がんがんKeyを追加していると以外に多くのMemoryを消費していることがあります。
KVSなのでMemoryは極限まで使用していいかとは思うのですが、Swapしていると非常に危険です。

僕が経験した内容で恐縮なんですが、特定の時間だけやけにredisのresponseが遅いって問題があって、
結果としては書き込みすぎて、bgsaveするタイミングでswap inしてたせいでswapしている時間帯だけ
超遅くなってました。そこでSwapUsageを定期的に取得しておくってのは以外に大事かもと思います。

Redis Metrics

Metric Name Statistics Detail
CurrConnections Average, Maximum 現在のconnection数。max_connectionsにあたっていないか注意!!
Evictions Average, Maximum LRUの期限前にevictionされたvalueの数
Reclaimed Average, Maximum すべてのLRUの期限切れと、memoryの上限数に達して削除されたvalueの合計
NewConnections Average, Maximum 取得時間間隔内にacceptされたconnection数
BytesUsedForCached Maximum redisによってallocateされたメモリ量
CacheHits Average, Maximum cacheとしてhitした回数
CacheMisses Average, Maximum cacheとしてmissした回数
LepricationLag Average, Maximum read replicaの遅延してる秒(Only read reolica)
GetTypeCmds Maximum Get系クエリの合計数
SetTypeCmds Maximum Set系クエリの合計数
KeyBasedCmds Maximum -
StringBasedCmds Maximum -
HashBasedCmds Maximum -
ListBasedCmds Maximum -
SetBasedCmds Maximum -
SortedSetBasedCmds Maximum -

about Evictions and Reclaimed

Evictionsはmaxmemoryの上限にあたって、expireよりも先に削除されたKeyの数です。
対してReclaimedは削除されたValueの数の合計です。
なので、Reclaimed - Evictionsの数が大きくなるとホスト側のmemoryが足りてないか、無駄なobjectがいっぱい入ってるかのどっちかです。

Zabbix Template

Items

上記のCloudWatch APIで取得できる値のみです。(急ごしらえですみません。)

Graphs

グラフは以下のものがあって、一部おもしろそうなグラフの描画だけキャプチャしてます。(通常の折れ線グラフや要素がひとつだけのものは省略でござる)

CPU Utilization

ホスト側のCPU使用率です。

Memory Usage

ホスト側のFreeable MemoryとRedis側のUsed Memoryを積み上げてます。
スクリーンショット_2014-12-22_2_42_15.png

Network Traffic

ネットワークのInとOutです。
スクリーンショット_2014-12-22_2_42_29.png

Cache Hits/Miss

CacheのHitsとMissesの積み上げグラフです。

Current Items

現在のアイテム(KeyとValueのセット)数です。

Evictions

Evictionsされたアイテムの数です。

Reclaimed

Reclaimedなアイテムの数です。

New Connections

単位時間あたりに張られたConnectionの数です。

CMDs

コマンドの一覧を積み上げグラフにしたものです。
スクリーンショット_2014-12-22_2_42_49.png

まとめ

このプラグインはあくまでCloudWatchのMetricを取ってますが、ElastiCacheは素のredisや素のmemcachedなので、blackbird-redisblackbird-memcachedの方が直接いろんな値を見れていいかもしれません。どちらかというと、両方のプラグインを使っておいしいどこどりする方がいいかも(ってか僕がそれやりたいですね)。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8