2014-10-29 5 views
0

this answer in AWS forum의 도움으로 Cloudwatch에 HDFS 사용을 게시하기 위해 하나의 cron 작업 (1 분마다 cron 작업 실행)과 셸 스크립트를 만들었습니다.AWS cloudwatch 사용자 지정 메트릭 데이터가 표시되지 않습니다.

내 스크립트는 다음과 같습니다

#!/bin/sh 

# 
# Prerequisites : 
# 1. AWS cloudwatch CLI 
# 2. JAVA 
# 3. AWS credentials file inside AWS cloudwatch CLI directory 
# 

export JAVA_HOME=$1 
export AWS_CLOUDWATCH_HOME=$2 
export AWS_CREDENTIAL_FILE=$AWS_CLOUDWATCH_HOME/credential-file-path.template 
export PATH="$PATH:$AWS_CLOUDWATCH_HOME/bin" 

echo '['`date`'] INFO : all paths set.' 

CLUSTER_NAME=$3 
UNIT="Percent" 

#1. Get hdfs report 
#2. Grep for all lines containing dfs used data 
#3. Grep for percentage data 
dfs_used_percent=`hadoop dfsadmin -report | grep -m 1 'DFS Used\%' | grep -oE '[[:digit:]]+\.?[[:digit:]]*'` 
echo '['`date`'] INFO : Current hdfs usage percent : ' $dfs_used_percent 
echo '['`date`'] INFO : Sending data to AWS cloudwatch.' 


mon-put-data --metric-name "HdfsUsed" --namespace "MyCustomMetrics" --value $dfs_used_percent --unit $UNIT 
echo '['`date`'] INFO : Result of mon-put-data command : ' $? 
echo '['`date`'] INFO : Data sent to AWS cloudwatch. Exiting.' 
echo '----------------------------------------------------' 
나는이 스크립트가 성공적으로 다음과 같은 로그 (에코 문)

$ tail -f hdfs-usage-metric.log 

[Wed Oct 29 05:23:03 UTC 2014] INFO : Result of mon-put-data command : 0 
[Wed Oct 29 05:23:03 UTC 2014] INFO : Data sent to AWS cloudwatch. Exiting. 
---------------------------------------------------- 
[Wed Oct 29 05:24:01 UTC 2014] INFO : all paths set. 
[Wed Oct 29 05:24:03 UTC 2014] INFO : Current hdfs usage percent : 14.36 
[Wed Oct 29 05:24:03 UTC 2014] INFO : Sending data to AWS cloudwatch. 
[Wed Oct 29 05:24:04 UTC 2014] INFO : Result of mon-put-data command : 0 
[Wed Oct 29 05:24:04 UTC 2014] INFO : Data sent to AWS cloudwatch. Exiting. 
---------------------------------------------------- 
[Wed Oct 29 05:25:01 UTC 2014] INFO : all paths set. 
[Wed Oct 29 05:25:02 UTC 2014] INFO : Current hdfs usage percent : 14.36 
[Wed Oct 29 05:25:02 UTC 2014] INFO : Sending data to AWS cloudwatch. 
[Wed Oct 29 05:25:03 UTC 2014] INFO : Result of mon-put-data command : 0 
[Wed Oct 29 05:25:03 UTC 2014] INFO : Data sent to AWS cloudwatch. Exiting. 
---------------------------------------------------- 
[Wed Oct 29 05:26:01 UTC 2014] INFO : all paths set. 
[Wed Oct 29 05:26:02 UTC 2014] INFO : Current hdfs usage percent : 14.36 
[Wed Oct 29 05:26:02 UTC 2014] INFO : Sending data to AWS cloudwatch. 
[Wed Oct 29 05:26:03 UTC 2014] INFO : Result of mon-put-data command : 0 
[Wed Oct 29 05:26:03 UTC 2014] INFO : Data sent to AWS cloudwatch. Exiting. 

그러나이 통계를보고 시계를 클라우드 사용자 정의 메트릭 보내는 것을 볼 수 있습니다

이 스크립트를 2 시간 이상 실행 한 후에도 AWS 콘솔에 표시되지 않습니다.

$ mon-list-metrics | grep 'Hdfs' 명령을 사용하여이 측정 항목을 볼 수 없습니다.

내가 크론 작업이 실행되는 동일한 시스템에 mon-get-stats 명령을 실행하면, I 출력을

$ mon-get-stats HdfsUsed --namespace AutodeskCustomMetrics --statistics Average 
2014-10-29 04:35:00 14.36 Percent 
2014-10-29 04:40:00 14.36 Percent 
2014-10-29 04:45:00 14.36 Percent 
2014-10-29 04:50:00 14.36 Percent 
2014-10-29 04:55:00 14.36 Percent 
2014-10-29 05:00:00 14.36 Percent 

에 따라 얻을하지만 동일한 클러스터에있는 다른 컴퓨터에 존재에서 동일한 명령을 실행하면 나는 어떤 결과를 얻을 수 없습니다.

누구든지 맞춤 측정 항목을 올바르게 삽입하고 가져올 수 있습니까?

답변

0

문제가 해결되었습니다. 하나의 자격 증명 세트로 데이터를 게시하고 다른 자격 증명으로 AWS 콘솔을 보는 중이었습니다. :(

관련 문제