mirror of
https://github.com/foomo/keel.git
synced 2025-10-16 12:35:34 +00:00
| .github/workflows | ||
| config | ||
| env | ||
| log | ||
| metrics | ||
| net | ||
| telemetry | ||
| utils/net/http | ||
| .editorconfig | ||
| .gitignore | ||
| .golangci.yml | ||
| closer.go | ||
| go.mod | ||
| go.sum | ||
| ldflags.go | ||
| main.go | ||
| Makefile | ||
| option.go | ||
| README.md | ||
| server.go | ||
| service_http_prometheus.go | ||
| service_http_viper.go | ||
| service_http_zap.go | ||
| service_http.go | ||
| service.go | ||
keel
Opinionated way to run services.
Stack
- Configuration: Viper
- Metrics: Prometheus
- Telemetry: Open Telemetry
- Logging: Zap
Example
package main
import (
"github.com/foomo/keel"
"github.com/foomo/keel/config"
"github.com/foomo/keel/log"
"github.com/foomo/keel/net/http/middleware"
"github.com/foomo/keel/telemetry"
)
func main() {
svr := keel.NewServer()
// register Closers for graceful shutdowns
svr.AddClosers(telemetry.Provider())
// add zap service
svr.AddServices(keel.NewDefaultServiceHTTPZap())
// add viper service
svr.AddServices(keel.NewDefaultServiceHTTPViper())
// add prometheus service
svr.AddServices(keel.NewDefaultServiceHTTPPrometheus())
svr.Run()
}