采集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