mon-put-dataでcustom metrics送信したかったけどcredential情報の設定で少しハマったのでメモ。
結論
AWSAccessKeyIdやAWSSecretKeyを直接exportするのではなく、ファイルに記述した上で、そのファイルPATHをAWS_CREDENTIAL_FILEとして設定する必要があるようです。
インストール時のメッセージに環境変数にexport AWSAccessKeyId=...しろ的なコメントが出るので別にファイルに設定する必要は無いのかな?と思い、しばらくハマりました。
ファイルの作成と設定の記述
適当な場所に設定ファイルを作成します。
cd
vi aws_credential
KeyとかSecretと記述します。
AWSAccessKeyId=xxxxxxxxxx
AWSSecretKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
credentialファイルの位置をexportしてやります。
export AWS_CREDENTIAL_FILE=/path/to/aws_credential
うまく動けば.bash_profileとかに書いておけばいいでしょう。
mon-put-data
Amazon Linux
始めからはいっていますが、上記の設定をする必要があるようです。
Mac
下記でインストール可能です。
brew install aws-mon
CentOS
sudo yum install aws-apitools-mon
Ubuntu
sudo apt-get aws-mon
利用
まあ、おおよそ下記な感じ。
mon-put-data --metric-name "test metrics-001" --namespace "TestMetrics" --dimensions "InstanceId=xxxxxxx" --value 100 --unit "Count" --region ap-northeast-1
regionつけないと、バージニアに飛ぶようです。。。
あと、Metricsは明示的に削除できないようなので、作成するときには名前とか注意した方がいいですね。
InstanceIdの取得
EC2からだと下記で取得可能。動的にやるなり静的にやるなり。
curl -s http://169.254.169.254/latest/meta-data/instance-id