Changeset 707 in code for trunk/cmd/soju/main.go
- Timestamp:
- Nov 17, 2021, 2:58:18 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cmd/soju/main.go
r705 r707 19 19 20 20 "github.com/pires/go-proxyproto" 21 "github.com/prometheus/client_golang/prometheus" 22 "github.com/prometheus/client_golang/prometheus/promhttp" 21 23 22 24 "git.sr.ht/~emersion/soju" … … 255 257 } 256 258 }() 259 case "http+prometheus": 260 if srv.MetricsRegistry == nil { 261 srv.MetricsRegistry = prometheus.DefaultRegisterer 262 } 263 264 // Only allow localhost as listening host for security reasons. 265 // Users can always explicitly setup reverse proxies if desirable. 266 hostname, _, err := net.SplitHostPort(u.Host) 267 if err != nil { 268 log.Fatalf("invalid host in URI %q: %v", listen, err) 269 } else if hostname != "localhost" { 270 log.Fatalf("Prometheus listening host must be localhost") 271 } 272 273 metricsHandler := promhttp.HandlerFor(prometheus.DefaultGatherer, promhttp.HandlerOpts{ 274 MaxRequestsInFlight: 10, 275 Timeout: 10 * time.Second, 276 EnableOpenMetrics: true, 277 }) 278 metricsHandler = promhttp.InstrumentMetricHandler(prometheus.DefaultRegisterer, metricsHandler) 279 280 httpSrv := http.Server{ 281 Addr: u.Host, 282 Handler: metricsHandler, 283 } 284 go func() { 285 if err := httpSrv.ListenAndServe(); err != nil { 286 log.Fatalf("serving %q: %v", listen, err) 287 } 288 }() 257 289 default: 258 290 log.Fatalf("failed to listen on %q: unsupported scheme", listen)
Note:
See TracChangeset
for help on using the changeset viewer.