采集java性能指标数据

这里我们开发把每个服务的jvm的运行情况和gc的情况卸载java程序里,这里我们访问一个URL地址就可以得到json数据

#!/bin/bash
# 定时收集java服务metrics
# curl http://10.7.16.42:6301/metrics  demo
# 参数:

post_influxdb_write='http://10.19.186.40:8086/write?db=test1'
array=(
"http://10.7.16.42:6301/metrics|zhuye_machine1|demo"
"http://10.7.16.42:6301/metrics|zhuye_machine2|demo2"
)

for data in ${array[@]}
do
    get_java_metrics=`echo $data |awk -F"|" '{print $1}'`
    java_host_name=`echo $data |awk -F"|" '{print $2}'`
    java_service_name=`echo $data |awk -F"|" '{print $3}'`
        currentTime=`date "+%Y-%m-%d %H:%M:%S"`
        currentTimeStamp=`date -d "$currentTime" +%s`
        java_metrics_data=`curl $get_java_metrics`
        v_length=${#java_metrics_data}
        if [[ v_length -gt 2  &&  ${java_metrics_data:0:1} = "{" ]]; then
                java_metrics_data1=${java_metrics_data:1:v_length-2}
                java_metrics_data2=${java_metrics_data1//:/=}
        else
                exit
        fi
        insert_sql="${insert_sql}
zgh_test_write,host=${java_host_name},app=${java_service_name} ${java_metrics_data2} ${currentTimeStamp}000000000"
done

#echo "$insert_sql"
echo "insert data"
curl -i -X POST "$post_influxdb_write" --data-binary "$insert_sql"

#echo "querying data"
#curl -G http://localhost:8086/query  --data-urlencode "q=SELECT * FROM test1..zgh_test_write limit 2"

exit

 

posted @ 2017-07-19 17:12  BigBao的博客  阅读(758)  评论(0编辑  收藏  举报