Documentation
¶
Overview ¶
Package echo is exposing a struct to handle the building and the management of the different tasks coming from the async package. This should be used in the main package only. This package provides a way to build an echo server easily (see https://echo.labstack.com), with a prometheus metrics endpoint and that relies on logrus for logging (see https://github.com/sirupsen/logrus).
Please favour the usage of [app](../app) package to run an echo web server.
Features ¶
- Build and run an echo server with a "/metrics" endpoint.
- Register an API.
- Register a Middleware.
Usage ¶
Instantiate a simple server task :
package my_package
import (
"context"
"github.com/perses/common/echo"
)
const (
// The address on which the server is listening.
addr = ":8080"
metricNamespace = "my_project"
)
func main() {
serverTask, err := echo.NewBuilder(addr).
APIRegistration(echo.NewMetricsAPI(true)).
MetricNamespace(metricNamespace).
Build()
}
Index ¶
- type Builder
- func (b *Builder) APIRegistration(api Register) *Builder
- func (b *Builder) ActivatePprof(activate bool) *Builder
- func (b *Builder) Build() (async.Task, error)
- func (b *Builder) BuildHandler() (http.Handler, error)
- func (b *Builder) MetricNamespace(namespace string) *Builder
- func (b *Builder) Middleware(mdw echo.MiddlewareFunc) *Builder
- func (b *Builder) OverrideDefaultMiddleware(override bool) *Builder
- type Register
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
func NewBuilder ¶
func (*Builder) APIRegistration ¶
func (*Builder) ActivatePprof ¶ added in v0.7.0
func (*Builder) BuildHandler ¶ added in v0.18.0
BuildHandler is creating a http Handler based on the different configuration and attribute set. It can be useful to have it when you want to use the method httptest.NewServer for testing purpose, and you want to have the same setup as the actual http server.
func (*Builder) MetricNamespace ¶
MetricNamespace is modifying the namespace that will be used next ot prefix every metrics exposed
func (*Builder) Middleware ¶
func (b *Builder) Middleware(mdw echo.MiddlewareFunc) *Builder
Middleware is adding the provided middleware into the Builder Order matters, add the middleware in the order you would like to see them started.
func (*Builder) OverrideDefaultMiddleware ¶
OverrideDefaultMiddleware is setting a flag that will tell if the Builder needs to override the default list of middleware considered by the one provided by the method Middleware In case the flag is set at false, then the middleware provided by the user will be append to the default list. Note that the default list is always executed at the beginning (a.k.a, the default middleware will be executed before yours).