This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
stellar-stellar/scripts/shell_stat.sh
2024-08-21 18:18:40 +08:00

60 lines
1.9 KiB
Bash

#!/bin/bash +x
#cat stellar_fs4.json |jq
#[
# {
# "name": "stellar",
# "tags": {},
# "fields": {
# "aaaa": 1111111,
# "bbbb": 2222222,
# },
# "timestamp_ms": 1713053113549
# }
#]
calculate() {
local curr_data=$1
local prev_data=$2
local fields=($(echo "$curr_data" | jq -r '.[].fields | to_entries | .[] | .key' | grep -v timestamp_ms))
local curr_ts=$(echo "$curr_data" | jq -r '.[].timestamp_ms')
local prev_ts=$(echo "$prev_data" | jq -r '.[].timestamp_ms')
local diff_ts=$(($curr_ts - $prev_ts))
local seconds=$((curr_ts / 1000))
local buffer=()
local curr_fileds=$(echo "$curr_data" | jq -r '.[].fields' | grep -v timestamp_ms)
local prev_fileds=$(echo "$prev_data" | jq -r '.[].fields' | grep -v timestamp_ms)
buffer+=("====================================$(date -d "@$seconds" +"%Y-%m-%d %H:%M:%S")====================================\n")
buffer+=("$(printf "%-30s" Field)$(printf "%-20s" Sum)$(printf "%-20s" Speed)\n")
local result=()
for field in "${fields[@]}"; do
local curr_val=$(echo "$curr_fileds" | grep $field | awk '{print $2}' | sed 's/,//g')
local prev_val=$(echo "$prev_fileds" | grep $field | awk '{print $2}' | sed 's/,//g')
local diff_val=$((curr_val - prev_val))
local speed=0
if [ $diff_ts -eq 0 ]; then
speed=0
else
speed=$((diff_val * 1000 / diff_ts))
fi
buffer+=("$(printf "%-30s" $field)$(printf "%-20s" $curr_val)$(printf "%-20s" $speed)\n")
done
buffer+=("===========================================================================================\n")
clear
echo -e "${buffer[@]}"
}
prev_data=""
while true; do
curr_data=$(cat /opt/tsg/stellar/log/stellar_fs4.json)
if [ ! -z "$prev_data" ]; then
calculate "$curr_data" "$prev_data"
fi
prev_data="$curr_data"
sleep 1
done