| Mirko, the HSWAW microservice helper library |
| ============================================ |
| |
| Wanna write a Go microservice for HSWAW? Can't be arsed to copy paste code? This is the library for you! |
| |
| Usage (dev) |
| ----------- |
| |
| package main |
| |
| import ( |
| "code.hackerspace.pl/hscloud/go/mirko" |
| ) |
| |
| func main() { |
| m := mirko.New() |
| |
| // setup/checks before TCP ports are opened... |
| // ... |
| |
| if err := m.Listen(); err != nil { |
| glog.Exitf("Listen(): %v", err) |
| } |
| |
| // register your gRPC and http handlers... |
| // (relfection and basic debug http is automatically registered) |
| // pb.RegisterFooServer(m.GRPC(), s) |
| // m.HTTPMux().HandleFunc("/debug/foo", fooHandler) |
| |
| if err := m.Serve(); err != nil { |
| glog.Exitf("Serve(): %v", err) |
| } |
| |
| // start any other background processing... |
| // (you can use m.Context() to get a context that will get |
| // canceled when the service is about to shut down) |
| |
| <-m.Done() |
| } |
| |
| Usage (running) |
| --------------- |
| |
| The following flags are automatically registered: |
| |
| - `-listen_address` (default: `127.0.0.1:4200`): where to listen for gRPC requests |
| - `-debug_address` (default: `127.0.0.1:4201`): where to listen for debug HTTP requests |
| - `-debug_allow_all` (default: false): whether to allow all IP address (vs. localhost) to connect to debug endpoint |
| |
| The following debug HTTP handlers are installed: |
| |
| - `/debug/status`: show the statusz page |
| - `/debug/requests`: show the [net/trace](https://godoc.org/golang.org/x/net/trace) page (including gRPC traces) |
| |