meter/handler: provide default metrics handler
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
parent
881d7afeea
commit
4a64ee72f7
36
meter/handler/handler.go
Normal file
36
meter/handler/handler.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/unistack-org/micro/v3/codec"
|
||||||
|
"github.com/unistack-org/micro/v3/meter"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// guard to fail early
|
||||||
|
_ MeterServer = &handler{}
|
||||||
|
)
|
||||||
|
|
||||||
|
type Empty struct{}
|
||||||
|
|
||||||
|
type handler struct {
|
||||||
|
meter meter.Meter
|
||||||
|
opts []meter.Option
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewHandler(meter meter.Meter, opts ...meter.Option) *handler {
|
||||||
|
return &handler{meter: meter, opts: opts}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *handler) Metrics(ctx context.Context, req *Empty, rsp *codec.Frame) error {
|
||||||
|
buf := bytes.NewBuffer(nil)
|
||||||
|
if err := h.meter.Write(buf, h.opts...); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
rsp.Data = buf.Bytes()
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
@ -1,3 +0,0 @@
|
|||||||
package pb
|
|
||||||
|
|
||||||
type Empty struct{}
|
|
Loading…
Reference in New Issue
Block a user