From ad7c18c80d12477f4f120869580be1cc19ca165d Mon Sep 17 00:00:00 2001 From: adminer Date: Thu, 15 Jan 2026 21:00:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20proc=5Fscraper=5Fjson.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proc_scraper_json.sh | 119 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 proc_scraper_json.sh diff --git a/proc_scraper_json.sh b/proc_scraper_json.sh new file mode 100644 index 0000000..4413a88 --- /dev/null +++ b/proc_scraper_json.sh @@ -0,0 +1,119 @@ +#!/bin/bash + +#ps aux | grep -v ps | +# awk -v OFS=, '{print $2, $3, $11}' | +# jq -R 'split(",") | {process: .[2], pid: .[0]}' + + +#ps aux | grep -v ps | + + +z=$(ps aux | grep -v ps) +METRICS_DATA='' +varC='' +varM='' +varI='' +# CPU % +# Mem MB +#echo $z + varC=$varC$(echo "$z" | awk ' +BEGIN { ORS = ""; } +$3>15 { printf "%s{\"__name__\": \"proc_cpu_usg\",\"__type__\":\"gauge\",\"usr\": \"%s\",\"process\": \"%s\",\"pid\": \"%s\",\"value\": %s}", + separator, $1, $11, $2, $3 + separator = "," +} +END { }'; +); + + varM=$varM$(echo "$z" | awk ' +BEGIN { ORS = ""; print "," } +$6/1024>200 { printf "%s{\"__name__\": \"proc_mem_usg\",\"__type__\":\"gauge\",\"usr\": \"%s\",\"process\": \"%s\",\"pid\": \"%s\",\"value\": %s}", + separator, $1, $11, $2, $6/1024 + separator = "," +} +END { }'; +); + + +# { printf "\"cpu_usage\": %s{\"process\": \"%s\", \"pid\": \"%s\"}", +# ps aux | awk ' +#BEGIN { ORS = ""; print " [ "} +#{ printf "%s{\"user\": \"%s\", \"pid\": \"%s\", \"cpu\": \"%s\"}", +# separator, $1, $2, $3 +# separator = ", " +#} +#END { print " ] " }'; + +# varC=$varC$(echo "$z" | awk '$3>10 {print "\"cpu_usage\": "$3",\\n\"tags\": {\"process\": \""$11"\", \"pid\": "$2"}" }'); +# echo $p +# varM=$varM$(echo "$z" | awk '$6/1024>50 {print "memory_usage{process=\""$11"\", pid=\""$2"\"}", $6/1024}'); + +# varI=$varI$(ioping -q -s 8096 -c 3 -J -D /mnt/mfs_01 | sed 's/\\//g' | jq -r '",{\"__name__\": \"ioping_max\", \"__type__\":\"gauge\", \"target\": \"\(.[].target.path)\", \"size\": \"\(.[].stat.size)\", \"value\": \(.[].stat.max)},{\"__name__\": \"ioping_iops\", \"__type__\":\"gauge\", \"target\": \"\(.[].target.path)\", \"size\":\"\(.[].stat.size)\", \"value\": \(.[].stat.iops)}"') +# varI=$varI$(ioping -q -s 8096 -c 2 -J -D /mnt/mfs_01/nomad | sed 's/\\//g' | jq -r '",{\"__name__\": \"ioping_max\", \"__type__\":\"gauge\", \"target\": \"\(.[].target.path)\", \"size\": \"\(.[].stat.size)\", \"value\": \(.[].stat.max)},{\"__name__\": \"ioping_iops\", \"__type__\":\"gauge\", \"target\": \"\(.[].target.path)\", \"size\":\"\(.[].stat.size)\", \"value\": \(.[].stat.iops)}"') + + + +#ioping_iops{target=\"\(.[].target.path)\", size=\"\(.[].stat.size)\", iops=\"\(.[].stat.iops)\n +#echo $varC +#echo $varM + METRICS_DATA="[$varC$varM$varI]" + +#echo -ne $var + +echo -ne "$METRICS_DATA" +#| sed 's/} ,{/}, {/g; s/},{"__/}, {"__/g; s/} , {/}, {/g' | sed 's/}, {/\n/g' | sed 's/^/[{/; s/$/}]/' | sed '1s/^\[{//; $s/}]$//' + +#sed 's/} ,{/}, {/\g' + +exit + +echo + + +# Send the metrics using curl +#curl -u osa@novikom.ru:ZxosgpRrpd8sOKDP -k https://opob.service.banknt/api/default11/ingest/metrics/_json -d "$METRICS_DATA" +echo +response=$(curl -s -u osa@novikom.ru:ZxosgpRrpd8sOKDP -k https://opob.service.banknt/api/OSA/ingest/metrics/_json -d "$METRICS_DATA" | jq '.code') +echo +#echo $response +#response=$(curl -s -w "%{http_code}" -o /dev/null -X POST "$OPENOBS_ENDPOINT" \ +# -H "Content-Type: application/json" \ +# -H "Authorization: Bearer $API_KEY" # Uncomment if using API key \ +# -d "$METRICS_DATA") + +echo +# Check the response +if [ "$response" -eq 200 ]; then + echo "Metrics sent successfully!" +else + echo "Failed to send metrics. HTTP response code: $response" +fi + + +#echo -ne $var | sed 's/}, {/\n/g' | sed 's/^/[{/; s/$/}]/' | sed '1s/^\[{{/[{/; $s/}}]$/}]/' + +#exit +# cont_len=$(echo -ne $var | wc -c) +# { echo -ne "HTTP/1.0 200 OK\nContent-Length: $cont_len\n"; echo -ne "$var\nEOF\n"; } | nc -l -p 9091 + +# { echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $cont_len\r\n"; echo -ne "$var\n EOF\n"; } | nc -l -p 9091 +#while :; do { echo -ne "HTTP/1.0 200 OK\r\nContent-Length: $(wc -c