go-temper/cmd/go-temper/config.go
2021-10-30 14:21:54 -05:00

55 lines
1.2 KiB
Go

package main
import (
"os"
"time"
"github.com/hashicorp/logutils"
"github.com/prometheus/client_golang/prometheus"
)
type configStructure struct {
// time configuration
TimeFormat string `json:"time_format"`
TimeZone *time.Location
TimeZoneUTC *time.Location
// logging
Log *logutils.LevelFilter
// webserver
WebSrvPort int `json:"webserver_port"`
WebSrvIP string `json:"webserver_ip"`
WebSrvReadTimeout int `json:"webserver_read_timeout"`
WebSrvWriteTimeout int `json:"webserver_write_timeout"`
WebSrvIdleTimeout int `json:"webserver_idle_timeout"`
// prometheus
Prometheus configPrometheus
}
type configPrometheus struct {
Temperature *prometheus.GaugeVec
}
var config = configStructure{
TimeFormat: "2006-01-02 15:04:05",
Log: &logutils.LevelFilter{
Levels: []logutils.LogLevel{"TRACE", "DEBUG", "INFO", "WARNING", "ERROR"},
Writer: os.Stderr,
},
WebSrvReadTimeout: 5,
WebSrvWriteTimeout: 2,
WebSrvIdleTimeout: 2,
Prometheus: configPrometheus{
Temperature: prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: "server_room",
Subsystem: "exhaust",
Name: "temp",
Help: "Temperature measured in the server room",
},
[]string{"unit"},
)},
}