Add initial structure of influxdb monitoring.
This commit is contained in:
@@ -4,6 +4,8 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"github.com/getsentry/sentry-go"
|
||||
influxdb2 "github.com/influxdata/influxdb-client-go/v2"
|
||||
influxdb2API "github.com/influxdata/influxdb-client-go/v2/api"
|
||||
"github.com/openHPI/poseidon/internal/api"
|
||||
"github.com/openHPI/poseidon/internal/config"
|
||||
"github.com/openHPI/poseidon/internal/environment"
|
||||
@@ -35,6 +37,20 @@ func shutdownSentry() {
|
||||
}
|
||||
}
|
||||
|
||||
func initInfluxDB(db *config.InfluxDB) (writeAPI influxdb2API.WriteAPI, cancel func()) {
|
||||
if db.Url == "" {
|
||||
return nil, func() {}
|
||||
}
|
||||
|
||||
client := influxdb2.NewClient(db.Url, db.Token)
|
||||
writeAPI = client.WriteAPI(db.Organization, db.Bucket)
|
||||
cancel = func() {
|
||||
writeAPI.Flush()
|
||||
client.Close()
|
||||
}
|
||||
return writeAPI, cancel
|
||||
}
|
||||
|
||||
func runServer(server *http.Server) {
|
||||
log.WithField("address", server.Addr).Info("Starting server")
|
||||
var err error
|
||||
@@ -95,7 +111,7 @@ func createAWSManager() (runnerManager runner.Manager, environmentManager enviro
|
||||
}
|
||||
|
||||
// initServer builds the http server and configures it with the chain of responsibility for multiple managers.
|
||||
func initServer() *http.Server {
|
||||
func initServer(influxClient influxdb2API.WriteAPI) *http.Server {
|
||||
runnerManager, environmentManager := createManagerHandler(createNomadManager, config.Config.Nomad.Enabled,
|
||||
runner.NewAbstractManager(), &environment.AbstractManager{})
|
||||
runnerManager, environmentManager = createManagerHandler(createAWSManager, config.Config.AWS.Enabled,
|
||||
@@ -105,7 +121,7 @@ func initServer() *http.Server {
|
||||
Addr: config.Config.Server.URL().Host,
|
||||
ReadTimeout: time.Second * 15,
|
||||
IdleTimeout: time.Second * 60,
|
||||
Handler: api.NewRouter(runnerManager, environmentManager),
|
||||
Handler: api.NewRouter(runnerManager, environmentManager, influxClient),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,7 +149,10 @@ func main() {
|
||||
initSentry(&config.Config.Sentry)
|
||||
defer shutdownSentry()
|
||||
|
||||
server := initServer()
|
||||
influxDB, cancel := initInfluxDB(&config.Config.InfluxDB)
|
||||
defer cancel()
|
||||
|
||||
server := initServer(influxDB)
|
||||
go runServer(server)
|
||||
shutdownOnOSSignal(server)
|
||||
}
|
||||
|
Reference in New Issue
Block a user