6
0
mirror of https://git.mills.io/prologic/msgbus.git synced 2024-06-30 18:51:44 +00:00
prologic-msgbus/cmd/msgbusd/main.go

64 lines
1.4 KiB
Go
Raw Normal View History

2017-06-03 15:16:17 +00:00
package main
import (
2017-06-03 19:15:20 +00:00
"flag"
2018-03-25 21:37:32 +00:00
"fmt"
"net/http"
2018-03-25 21:37:32 +00:00
"os"
2017-06-03 15:16:17 +00:00
2018-03-26 00:03:56 +00:00
log "github.com/sirupsen/logrus"
"github.com/mmcloughlin/professor"
2017-06-03 15:22:21 +00:00
"github.com/prologic/msgbus"
2017-06-03 15:16:17 +00:00
)
2018-03-25 21:37:32 +00:00
func main() {
var (
version bool
debug bool
bind string
bufferLength int
maxQueueSize int
maxPayloadSize int
2018-03-25 21:37:32 +00:00
)
flag.BoolVar(&version, "v", false, "display version information")
2018-03-26 00:03:56 +00:00
flag.BoolVar(&debug, "d", false, "enable debug logging")
2017-06-03 15:16:17 +00:00
2017-06-08 04:53:21 +00:00
flag.StringVar(&bind, "bind", ":8000", "interface and port to bind to")
flag.IntVar(&bufferLength, "buffer-length", msgbus.DefaultBufferLength, "buffer length")
flag.IntVar(&maxQueueSize, "max-queue-size", msgbus.DefaultMaxQueueSize, "maximum queue size")
flag.IntVar(&maxPayloadSize, "max-payload-size", msgbus.DefaultMaxPayloadSize, "maximum payload size")
2017-06-03 15:16:17 +00:00
2018-03-25 21:37:32 +00:00
flag.Parse()
2018-03-26 00:03:56 +00:00
if debug {
log.SetLevel(log.DebugLevel)
} else {
log.SetLevel(log.InfoLevel)
}
2018-03-25 21:37:32 +00:00
if version {
2018-03-25 21:50:02 +00:00
fmt.Printf("msgbusd %s", msgbus.FullVersion())
2018-03-25 21:37:32 +00:00
os.Exit(0)
}
if debug {
go professor.Launch(":6060")
}
2018-05-02 08:24:30 +00:00
opts := msgbus.Options{
BufferLength: bufferLength,
MaxQueueSize: maxQueueSize,
MaxPayloadSize: maxPayloadSize,
WithMetrics: true,
2018-05-02 08:24:30 +00:00
}
mb := msgbus.New(&opts)
2018-05-02 07:41:14 +00:00
2018-05-02 08:24:30 +00:00
http.Handle("/", mb)
http.Handle("/metrics", mb.Metrics().Handler())
2018-03-26 00:03:56 +00:00
log.Infof("msgbusd %s listening on %s", msgbus.FullVersion(), bind)
log.Fatal(http.ListenAndServe(bind, nil))
2017-06-03 15:16:17 +00:00
}