テクめも

プログラミング関連のちょっとしたTipsなどを書いています。

CloudWatchのログ確認を便利にする

CloudWatchのログの確認はAWSコンソールや公式のCLIよりもawslogsのほうが便利です。

pecoと連携することで、さらに便利になります。

以下のようなfunctionを.bashrcとかに書いておきます。(※zshで動作確認しています。)

awslog() {
  local res=$(awslogs groups | peco --query "$LBUFFER")
  if [ -n "$res" ]; then
    awslogs get ${res} $@
  fi
}
$ awslog

とfunctionを呼び出すと、awslogs groupsが実行され、存在するロググループ一覧が表示されます。 その中から選択すると、選択されたログが表示されます。

$ awslog -G -w

のように引数も利用できます。

選択のみのバージョン

あとで引数を追加したり、コマンド履歴に残すのには、ロググループを選択するだけのほうが便利です。

awslog() {
  local res=$(awslogs groups | peco --query "$LBUFFER")
  if [ -n "$res" ]; then
    print -z "awslogs get ${res} $@"
  fi
}

profileオプション対応バージョン

--profileオプションを使う場合は、zparseoptsを利用します。(zshのみ利用可能)

awslog() {
  local profile_opt
  zparseopts -K -profile:=profile_opt

  local res=$(awslogs groups ${profile_opt} | peco --query "$LBUFFER")
  if [ -n "$res" ]; then
    print -z "awslogs get ${res} $@"
  fi
}