mirror of
https://github.com/matrix-org/sliding-sync.git
synced 2025-03-10 13:37:11 +00:00
Allow setting a log level using environment variables
Signed-off-by: networkException <git@nwex.de>
This commit is contained in:
parent
c9b41247e5
commit
4b7754f7d1
@ -8,6 +8,7 @@ import (
|
||||
"github.com/matrix-org/sliding-sync/internal"
|
||||
"github.com/matrix-org/sliding-sync/sync2"
|
||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
"github.com/rs/zerolog"
|
||||
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
|
||||
"net/http"
|
||||
_ "net/http/pprof"
|
||||
@ -37,6 +38,7 @@ const (
|
||||
EnvDebug = "SYNCV3_DEBUG"
|
||||
EnvJaeger = "SYNCV3_JAEGER_URL"
|
||||
EnvSentryDsn = "SYNCV3_SENTRY_DSN"
|
||||
EnvLogLevel = "SYNCV3_LOG_LEVEL"
|
||||
)
|
||||
|
||||
var helpMsg = fmt.Sprintf(`
|
||||
@ -51,7 +53,8 @@ Environment var
|
||||
%s Default: unset. The bind addr for Prometheus metrics, which will be accessible at /metrics at this address.
|
||||
%s Default: unset. The Jaeger URL to send spans to e.g http://localhost:14268/api/traces - if unset does not send OTLP traces.
|
||||
%s Default: unset. The Sentry DSN to report events to e.g https://sliding-sync@sentry.example.com/123 - if unset does not send sentry events.
|
||||
`, EnvServer, EnvDB, EnvSecret, EnvBindAddr, EnvTLSCert, EnvTLSKey, EnvPPROF, EnvPrometheus, EnvJaeger, EnvSentryDsn)
|
||||
%s Default: info. The level of verbosity for messages logged. Available values are trace, debug, info, warn, error and fatal
|
||||
`, EnvServer, EnvDB, EnvSecret, EnvBindAddr, EnvTLSCert, EnvTLSKey, EnvPPROF, EnvPrometheus, EnvJaeger, EnvSentryDsn, EnvLogLevel)
|
||||
|
||||
func defaulting(in, dft string) string {
|
||||
if in == "" {
|
||||
@ -76,6 +79,7 @@ func main() {
|
||||
EnvDebug: os.Getenv(EnvDebug),
|
||||
EnvJaeger: os.Getenv(EnvJaeger),
|
||||
EnvSentryDsn: os.Getenv(EnvSentryDsn),
|
||||
EnvLogLevel: os.Getenv(EnvLogLevel),
|
||||
}
|
||||
requiredEnvVars := []string{EnvServer, EnvDB, EnvSecret, EnvBindAddr}
|
||||
for _, requiredEnvVar := range requiredEnvVars {
|
||||
@ -131,8 +135,28 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
if args[EnvDebug] == "1" {
|
||||
zerolog.SetGlobalLevel(zerolog.TraceLevel)
|
||||
} else {
|
||||
switch strings.ToLower(args[EnvLogLevel]) {
|
||||
case "trace":
|
||||
zerolog.SetGlobalLevel(zerolog.TraceLevel)
|
||||
case "debug":
|
||||
zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
||||
case "info":
|
||||
zerolog.SetGlobalLevel(zerolog.InfoLevel)
|
||||
case "warn":
|
||||
zerolog.SetGlobalLevel(zerolog.WarnLevel)
|
||||
case "err", "error":
|
||||
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
||||
case "fatal":
|
||||
zerolog.SetGlobalLevel(zerolog.FatalLevel)
|
||||
default:
|
||||
zerolog.SetGlobalLevel(zerolog.InfoLevel)
|
||||
}
|
||||
}
|
||||
|
||||
h2, h3 := syncv3.Setup(args[EnvServer], args[EnvDB], args[EnvSecret], syncv3.Opts{
|
||||
Debug: args[EnvDebug] == "1",
|
||||
AddPrometheusMetrics: args[EnvPrometheus] != "",
|
||||
})
|
||||
|
||||
|
@ -60,14 +60,9 @@ type SyncLiveHandler struct {
|
||||
|
||||
func NewSync3Handler(
|
||||
store *state.Storage, storev2 *sync2.Storage, v2Client sync2.Client, postgresDBURI, secret string,
|
||||
debug bool, pub pubsub.Notifier, sub pubsub.Listener, enablePrometheus bool, maxPendingEventUpdates int,
|
||||
pub pubsub.Notifier, sub pubsub.Listener, enablePrometheus bool, maxPendingEventUpdates int,
|
||||
) (*SyncLiveHandler, error) {
|
||||
logger.Info().Msg("creating handler")
|
||||
if debug {
|
||||
zerolog.SetGlobalLevel(zerolog.TraceLevel)
|
||||
} else {
|
||||
zerolog.SetGlobalLevel(zerolog.InfoLevel)
|
||||
}
|
||||
sh := &SyncLiveHandler{
|
||||
V2: v2Client,
|
||||
Storage: store,
|
||||
|
@ -333,7 +333,6 @@ func runTestServer(t testutils.TestBenchInterface, v2Server *testV2Server, postg
|
||||
}
|
||||
}
|
||||
h2, h3 := syncv3.Setup(v2Server.url(), postgresConnectionString, os.Getenv("SYNCV3_SECRET"), syncv3.Opts{
|
||||
Debug: true,
|
||||
TestingSynchronousPubsub: true, // critical to avoid flakey tests
|
||||
MaxPendingEventUpdates: maxPendingEventUpdates,
|
||||
AddPrometheusMetrics: metricsEnabled,
|
||||
|
3
v3.go
3
v3.go
@ -27,7 +27,6 @@ var logger = zerolog.New(os.Stdout).With().Timestamp().Logger().Output(zerolog.C
|
||||
var Version string
|
||||
|
||||
type Opts struct {
|
||||
Debug bool
|
||||
AddPrometheusMetrics bool
|
||||
// The max number of events the client is eligible to read (unfiltered) which we are willing to
|
||||
// buffer on this connection. Too large and we consume lots of memory. Too small and busy accounts
|
||||
@ -91,7 +90,7 @@ func Setup(destHomeserver, postgresURI, secret string, opts Opts) (*handler2.Han
|
||||
}
|
||||
|
||||
// create v3 handler
|
||||
h3, err := handler.NewSync3Handler(store, storev2, v2Client, postgresURI, secret, opts.Debug, pubSub, pubSub, opts.AddPrometheusMetrics, opts.MaxPendingEventUpdates)
|
||||
h3, err := handler.NewSync3Handler(store, storev2, v2Client, postgresURI, secret, pubSub, pubSub, opts.AddPrometheusMetrics, opts.MaxPendingEventUpdates)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user