105 lines
2.3 KiB
Bash
Executable File
105 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ -z "$INFLUX_TOKEN" ]; then
|
|
echo "WARNING: You need to set an INFLUX_TOKEN environment variable or else it won't actually work."
|
|
fi
|
|
|
|
# This is hardcoded here because it's easier. Find it on your own. :-)
|
|
PPBAkey="00e086b2-85b9-4562-a6bd-6d5a68ad2c26"
|
|
fluxHost="192.168.0.6"
|
|
fluxPort="8086"
|
|
ppbaHost="192.168.0.151"
|
|
ppbaPort="32000"
|
|
|
|
do_help() {
|
|
echo "Help coming soon. I promise. Do not panic!"
|
|
exit
|
|
}
|
|
|
|
do_preface() {
|
|
cat << PREFACE_EOF
|
|
[global_tags]
|
|
|
|
[agent]
|
|
interval = "10s"
|
|
round_interval = true
|
|
metric_batch_size = 1000
|
|
metric_buffer_limit = 10000
|
|
collection_jitter = "0s"
|
|
flush_interval = "10s"
|
|
flush_jitter = "0s"
|
|
precision = "0s"
|
|
|
|
[[outputs.influxdb_v2]]
|
|
urls = ["http://${fluxHost}:${fluxPort}"]
|
|
token = "$INFLUX_TOKEN"
|
|
organization = "Astropotamus"
|
|
bucket = "AstropotaPOD"
|
|
PREFACE_EOF
|
|
}
|
|
|
|
do_postface() {
|
|
cat << POSTFACE_EOF
|
|
POSTFACE_EOF
|
|
}
|
|
|
|
do_ppba() {
|
|
do_preface
|
|
cat << PPBA_EOF
|
|
[[inputs.http]]
|
|
urls = [
|
|
"http://${ppbaHost}:${ppbaPort}/Driver/PPBAdvance/Report?DriverUniqueKey=${PPBAkey}"
|
|
]
|
|
name_override = "PPBA"
|
|
data_format = "json"
|
|
tagexclude = ["url", "host"]
|
|
json_query="data.message"
|
|
json_string_fields=["dewHubStatus_hub_?_current_isOverCurrent","powerHubStatus_state","powerVariablePortStatus_state"]
|
|
PPBA_EOF
|
|
do_postface
|
|
}
|
|
|
|
do_weather() {
|
|
do_preface
|
|
cat << WEATHER_EOF
|
|
[[inputs.http]]
|
|
urls=["https://api.openweathermap.org/data/2.5/weather?id=5126015&units=metric&appid=043d58f75a4ffe7cf5d414ead183cb7f"]
|
|
data_format = "json"
|
|
tag_keys = [ "coord_lon", "coord_lat", "sys_country", "id", "name" ]
|
|
json_string_fields = [ "weather_0_main", "weather_0_description" ]
|
|
json_time_key = "dt"
|
|
json_time_format = "unix"
|
|
name_override = "openweathermap"
|
|
WEATHER_EOF
|
|
do_postface
|
|
}
|
|
|
|
do_local() {
|
|
do_preface
|
|
cat << LOCAL_EOF
|
|
[[inputs.cpu]]
|
|
percpu = true
|
|
totalcpu = true
|
|
collect_cpu_time = false
|
|
report_active = false
|
|
core_tags = false
|
|
[[inputs.mem]]
|
|
[[inputs.system]]
|
|
LOCAL_EOF
|
|
do_postface
|
|
}
|
|
|
|
tmpFile=$(mktemp)
|
|
while [ -n "$1" ]; do
|
|
case "$1" in
|
|
-h|--help) do_help;;
|
|
--ppba) do_ppba > $tmpFile; shift 1;;
|
|
--weather) do_weather > $tmpFile; shift 1;;
|
|
--iss) rm $tmpFile; echo "Not yet."; exit;;
|
|
--local) do_local > $tmpFile; shift 1;;
|
|
*) shift 1;;
|
|
esac
|
|
done
|
|
telegraf --config $tmpFile --once --quiet
|
|
rm $tmpFile
|