configure-metrics.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # |source| this file
  2. #
  3. # The SOLANA_METRICS_CONFIG environment variable is formatted as a
  4. # comma-delimited list of parameters. All parameters are optional.
  5. #
  6. # Example:
  7. # export SOLANA_METRICS_CONFIG="host=<metrics host>,db=<database name>,u=<username>,p=<password>"
  8. #
  9. # The following directive disable complaints about unused variables in this
  10. # file:
  11. # shellcheck disable=2034
  12. #
  13. configureMetrics() {
  14. [[ -n $SOLANA_METRICS_CONFIG ]] || return 0
  15. declare metricsParams
  16. IFS=',' read -r -a metricsParams <<< "$SOLANA_METRICS_CONFIG"
  17. for param in "${metricsParams[@]}"; do
  18. IFS='=' read -r -a pair <<< "$param"
  19. if [[ ${#pair[@]} != 2 ]]; then
  20. echo Error: invalid metrics parameter: "$param" >&2
  21. else
  22. declare name="${pair[0]}"
  23. declare value="${pair[1]}"
  24. case "$name" in
  25. host)
  26. export INFLUX_HOST="$value"
  27. echo INFLUX_HOST="$INFLUX_HOST" >&2
  28. ;;
  29. db)
  30. export INFLUX_DATABASE="$value"
  31. echo INFLUX_DATABASE="$INFLUX_DATABASE" >&2
  32. ;;
  33. u)
  34. export INFLUX_USERNAME="$value"
  35. echo INFLUX_USERNAME="$INFLUX_USERNAME" >&2
  36. ;;
  37. p)
  38. export INFLUX_PASSWORD="$value"
  39. echo INFLUX_PASSWORD="********" >&2
  40. ;;
  41. *)
  42. echo Error: Unknown metrics parameter name: "$name" >&2
  43. ;;
  44. esac
  45. fi
  46. done
  47. }
  48. configureMetrics
  49. metricsWriteDatapoint="$(dirname "${BASH_SOURCE[0]}")"/metrics-write-datapoint.sh