icecast2influx.sh 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. #!/bin/bash
  2. influxurl="http://localhost:8086/write?db=icestat&precision=s"
  3. timenow=$(date +%s)
  4. icecasturl="http://stream1.esiliati.org:8000"
  5. icecastsrv=$(echo "${icecasturl##*/}")
  6. sta=$(curl "${icecasturl}/status-json.xsl" | jq '.icestats.source[]')
  7. echo $sta | jq -c '.' | while read -r i; do
  8. listeners=$(echo $i | jq -r '.listeners')
  9. listenurl=$(basename $(echo $i | jq -r '.listenurl'))
  10. title=$(echo $i | jq -r '.title' | sed 's/ /\\ /g' | sed 's/\"//g')
  11. curl -XPOST $influxurl --data-binary "listeners,icecastsrv=$icecastsrv,listenurl=$listenurl,title=$title value=$listeners $timenow"
  12. done
  13. icecasturl="http://stream2.esiliati.org:8000"
  14. icecastsrv=$(echo "${icecasturl##*/}")
  15. sta=$(curl "${icecasturl}/status-json.xsl" | jq '.icestats.source[]')
  16. echo $sta | jq -c '.' | while read -r i; do
  17. listeners=$(echo $i | jq -r '.listeners')
  18. listenurl=$(basename $(echo $i | jq -r '.listenurl'))
  19. title=$(echo $i | jq -r '.title' | sed 's/ /\\ /g' | sed 's/\"//g')
  20. curl -XPOST $influxurl --data-binary "listeners,icecastsrv=$icecastsrv,listenurl=$listenurl,title=$title value=$listeners $timenow"
  21. done