#110 Refactor influxdb monitoring
to use it as singleton. This enables the possibility to monitor processes that are independent of an incoming request.
This commit is contained in:
@@ -4,14 +4,13 @@ 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"
|
||||
"github.com/openHPI/poseidon/internal/nomad"
|
||||
"github.com/openHPI/poseidon/internal/runner"
|
||||
"github.com/openHPI/poseidon/pkg/logging"
|
||||
"github.com/openHPI/poseidon/pkg/monitoring"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
@@ -37,20 +36,6 @@ 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
|
||||
@@ -111,7 +96,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(influxClient influxdb2API.WriteAPI) *http.Server {
|
||||
func initServer() *http.Server {
|
||||
runnerManager, environmentManager := createManagerHandler(createNomadManager, config.Config.Nomad.Enabled,
|
||||
nil, nil)
|
||||
runnerManager, environmentManager = createManagerHandler(createAWSManager, config.Config.AWS.Enabled,
|
||||
@@ -121,7 +106,7 @@ func initServer(influxClient influxdb2API.WriteAPI) *http.Server {
|
||||
Addr: config.Config.Server.URL().Host,
|
||||
ReadTimeout: time.Second * 15,
|
||||
IdleTimeout: time.Second * 60,
|
||||
Handler: api.NewRouter(runnerManager, environmentManager, influxClient),
|
||||
Handler: api.NewRouter(runnerManager, environmentManager),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,10 +134,10 @@ func main() {
|
||||
initSentry(&config.Config.Sentry)
|
||||
defer shutdownSentry()
|
||||
|
||||
influxDB, cancel := initInfluxDB(&config.Config.InfluxDB)
|
||||
cancel := monitoring.InitializeInfluxDB(&config.Config.InfluxDB)
|
||||
defer cancel()
|
||||
|
||||
server := initServer(influxDB)
|
||||
server := initServer()
|
||||
go runServer(server)
|
||||
shutdownOnOSSignal(server)
|
||||
}
|
||||
|
Reference in New Issue
Block a user