Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 26 additions & 22 deletions litt/littbuilder/build_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -244,29 +244,33 @@ func buildMetrics(config *litt.Config, logger logging.Logger) (*metrics.LittDBMe
var registry *prometheus.Registry
var server *http.Server

if config.MetricsRegistry == nil && config.MetricsEnabled {
registry = prometheus.NewRegistry()
registry.MustRegister(collectors.NewProcessCollector(collectors.ProcessCollectorOpts{}))
registry.MustRegister(collectors.NewGoCollector())

logger.Infof("Starting metrics server at port %d", config.MetricsPort)
addr := fmt.Sprintf(":%d", config.MetricsPort)
mux := http.NewServeMux()
mux.Handle("/metrics", promhttp.HandlerFor(
registry,
promhttp.HandlerOpts{},
))
server = &http.Server{
Addr: addr,
Handler: mux,
}

go func() {
err := server.ListenAndServe()
if err != nil && !strings.Contains(err.Error(), "http: Server closed") {
logger.Errorf("metrics server error: %v", err)
if config.MetricsEnabled {
if config.MetricsRegistry == nil {
registry = prometheus.NewRegistry()
registry.MustRegister(collectors.NewProcessCollector(collectors.ProcessCollectorOpts{}))
registry.MustRegister(collectors.NewGoCollector())

logger.Infof("Starting metrics server at port %d", config.MetricsPort)
addr := fmt.Sprintf(":%d", config.MetricsPort)
mux := http.NewServeMux()
mux.Handle("/metrics", promhttp.HandlerFor(
registry,
promhttp.HandlerOpts{},
))
server = &http.Server{
Addr: addr,
Handler: mux,
}
}()

go func() {
err := server.ListenAndServe()
if err != nil && !strings.Contains(err.Error(), "http: Server closed") {
logger.Errorf("metrics server error: %v", err)
}
}()
} else {
registry = config.MetricsRegistry
}
}

return metrics.NewLittDBMetrics(registry, config.MetricsNamespace), server
Expand Down
3 changes: 2 additions & 1 deletion litt/littdb_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ type Config struct {
MetricsRegistry *prometheus.Registry

// The port to use for the metrics server. Ignored if MetricsEnabled is false or MetricsRegistry is not nil.
// The default is 9101.
MetricsPort int

// The interval at which various DB metrics are updated. The default is 1 second.
Expand Down Expand Up @@ -162,7 +163,7 @@ func DefaultConfig(paths ...string) (*Config, error) {
DoubleWriteProtection: false,
MetricsEnabled: false,
MetricsNamespace: "litt",
MetricsPort: 8080,
MetricsPort: 9101,
MetricsUpdateInterval: time.Second,
}, nil
}
Expand Down
Loading