meter/handler: move to go.unistack.org/micro-meter-handler/v3 #189
@ -1,12 +0,0 @@
|
|||||||
package meter
|
|
||||||
|
|
||||||
//go:generate sh -c "protoc -I./handler -I../ -I$(go list -f '{{ .Dir }}' -m go.unistack.org/micro-proto/v3) --go-micro_out='components=micro|http|server',standalone=false,debug=true,paths=source_relative:./handler handler/handler.proto"
|
|
||||||
|
|
||||||
import (
|
|
||||||
|
|
||||||
// import required packages
|
|
||||||
_ "go.unistack.org/micro-proto/v3/api"
|
|
||||||
|
|
||||||
// import required packages
|
|
||||||
_ "go.unistack.org/micro-proto/v3/openapiv3"
|
|
||||||
)
|
|
@ -1,67 +0,0 @@
|
|||||||
package handler // import "go.unistack.org/micro/v3/meter/handler"
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"context"
|
|
||||||
|
|
||||||
"go.unistack.org/micro/v3/codec"
|
|
||||||
"go.unistack.org/micro/v3/errors"
|
|
||||||
"go.unistack.org/micro/v3/meter"
|
|
||||||
)
|
|
||||||
|
|
||||||
// guard to fail early
|
|
||||||
var _ MeterServiceServer = &Handler{}
|
|
||||||
|
|
||||||
type Handler struct {
|
|
||||||
opts Options
|
|
||||||
}
|
|
||||||
|
|
||||||
type Option func(*Options)
|
|
||||||
|
|
||||||
type Options struct {
|
|
||||||
Meter meter.Meter
|
|
||||||
Name string
|
|
||||||
MeterOptions []meter.Option
|
|
||||||
}
|
|
||||||
|
|
||||||
func Meter(m meter.Meter) Option {
|
|
||||||
return func(o *Options) {
|
|
||||||
o.Meter = m
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func Name(name string) Option {
|
|
||||||
return func(o *Options) {
|
|
||||||
o.Name = name
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func MeterOptions(opts ...meter.Option) Option {
|
|
||||||
return func(o *Options) {
|
|
||||||
o.MeterOptions = append(o.MeterOptions, opts...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewOptions(opts ...Option) Options {
|
|
||||||
options := Options{Meter: meter.DefaultMeter}
|
|
||||||
for _, o := range opts {
|
|
||||||
o(&options)
|
|
||||||
}
|
|
||||||
return options
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewHandler(opts ...Option) *Handler {
|
|
||||||
options := NewOptions(opts...)
|
|
||||||
return &Handler{opts: options}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *Handler) Metrics(ctx context.Context, req *codec.Frame, rsp *codec.Frame) error {
|
|
||||||
buf := bytes.NewBuffer(nil)
|
|
||||||
if err := h.opts.Meter.Write(buf, h.opts.MeterOptions...); err != nil {
|
|
||||||
return errors.InternalServerError(h.opts.Name, "%v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
rsp.Data = buf.Bytes()
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
syntax = "proto3";
|
|
||||||
|
|
||||||
package micro.meter.handler;
|
|
||||||
option go_package = "go.unistack.org/micro/v3/meter/handler;handler";
|
|
||||||
|
|
||||||
import "api/annotations.proto";
|
|
||||||
import "openapiv3/annotations.proto";
|
|
||||||
import "codec/frame.proto";
|
|
||||||
|
|
||||||
service MeterService {
|
|
||||||
rpc Metrics(micro.codec.Frame) returns (micro.codec.Frame) {
|
|
||||||
option (micro.openapiv3.openapiv3_operation) = {
|
|
||||||
operation_id: "Metrics";
|
|
||||||
responses: {
|
|
||||||
default: {
|
|
||||||
reference: {
|
|
||||||
_ref: "micro.codec.Frame";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
option (micro.api.http) = { get: "/metrics"; };
|
|
||||||
};
|
|
||||||
};
|
|
@ -1,32 +0,0 @@
|
|||||||
// Code generated by protoc-gen-go-micro. DO NOT EDIT.
|
|
||||||
// versions:
|
|
||||||
// - protoc-gen-go-micro v3.10.2
|
|
||||||
// - protoc v3.21.12
|
|
||||||
// source: handler.proto
|
|
||||||
|
|
||||||
package handler
|
|
||||||
|
|
||||||
import (
|
|
||||||
context "context"
|
|
||||||
v3 "go.unistack.org/micro-server-http/v3"
|
|
||||||
codec "go.unistack.org/micro/v3/codec"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
MeterServiceName = "MeterService"
|
|
||||||
)
|
|
||||||
var (
|
|
||||||
MeterServiceServerEndpoints = []v3.EndpointMetadata{
|
|
||||||
{
|
|
||||||
Name: "MeterService.Metrics",
|
|
||||||
Path: "/metrics",
|
|
||||||
Method: "GET",
|
|
||||||
Body: "",
|
|
||||||
Stream: false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
type MeterServiceServer interface {
|
|
||||||
Metrics(ctx context.Context, req *codec.Frame, rsp *codec.Frame) error
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
// Code generated by protoc-gen-go-micro. DO NOT EDIT.
|
|
||||||
// protoc-gen-go-micro version: v3.10.2
|
|
||||||
// source: handler.proto
|
|
||||||
|
|
||||||
package handler
|
|
||||||
|
|
||||||
import (
|
|
||||||
context "context"
|
|
||||||
v3 "go.unistack.org/micro-server-http/v3"
|
|
||||||
codec "go.unistack.org/micro/v3/codec"
|
|
||||||
server "go.unistack.org/micro/v3/server"
|
|
||||||
)
|
|
||||||
|
|
||||||
type meterServiceServer struct {
|
|
||||||
MeterServiceServer
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *meterServiceServer) Metrics(ctx context.Context, req *codec.Frame, rsp *codec.Frame) error {
|
|
||||||
return h.MeterServiceServer.Metrics(ctx, req, rsp)
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterMeterServiceServer(s server.Server, sh MeterServiceServer, opts ...server.HandlerOption) error {
|
|
||||||
type meterService interface {
|
|
||||||
Metrics(ctx context.Context, req *codec.Frame, rsp *codec.Frame) error
|
|
||||||
}
|
|
||||||
type MeterService struct {
|
|
||||||
meterService
|
|
||||||
}
|
|
||||||
h := &meterServiceServer{sh}
|
|
||||||
var nopts []server.HandlerOption
|
|
||||||
nopts = append(nopts, v3.HandlerEndpoints(MeterServiceServerEndpoints))
|
|
||||||
return s.Handle(s.NewHandler(&MeterService{h}, append(nopts, opts...)...))
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user