#!/bin/bash

LOCATION="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"

SYSTEMLOG=${SYSTEMLOG:-1}
if ! command -v bgsystemlog &> /dev/null; then
  SYSTEMLOG=0
fi

# get container info
APP_CONTAINER=${APP_CONTAINER:-streamline-emr}
if grep -q "^APP_CONTAINER=" ${LOCATION}/.env > /dev/null 2>&1; then
  APP_CONTAINER=$(sed -n 's/APP_CONTAINER=//p' ${LOCATION}/.env)
fi

pushd $LOCATION > /dev/null
  # get process status for each service
  echo "checking streamline-emr service status"
  for service in $(docker compose ps --services); do
    status=$(docker compose ps --format '{"name":"{{.Names}}","created":"{{.CreatedAt}}","elapsed":"{{.RunningFor}}","state":"{{.State}}","status":"{{.Status}}"}' ${service})
    if [ "${status}" ]; then
      echo $status
      if [ "$SYSTEMLOG" -eq 1 ]; then
        bgsystemlog -j streamline_emr_status -m ${status}
      fi
    else
      echo "no status results found for service ${service}"
    fi
  done
  # get resource usage
  echo "checking streamline-emr resource usage"
  status=$(docker stats --no-stream --format '{"name":"{{.Name}}","cpu_p":"{{.CPUPerc}}","mem_p":"{{.MemPerc}}","mem_u":"{{.MemUsage}}","net_io":"{{.NetIO}}","block_io":"{{.BlockIO}}"}' ${APP_CONTAINER})
  if [ "${status}" ]; then
    echo $status
    if [ "$SYSTEMLOG" -eq 1 ]; then
      bgsystemlog -j streamline_emr_usage -m ${status}
    fi
  else
    echo "no usage results found for container ${APP_CONTAINER}"
  fi
popd > /dev/null

echo "done."
