mirror of
https://github.com/go-kratos/kratos.git
synced 2025-01-20 03:29:45 +02:00
parent
8c26c8c328
commit
7f2e3becbe
@ -3,15 +3,14 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/go-kratos/kratos/v2/middleware/metrics"
|
||||
prom "github.com/go-kratos/prometheus/metrics"
|
||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
"log"
|
||||
|
||||
"github.com/go-kratos/kratos/examples/helloworld/helloworld"
|
||||
"github.com/go-kratos/kratos/v2"
|
||||
"github.com/go-kratos/kratos/v2/errors"
|
||||
"github.com/go-kratos/kratos/v2/middleware/recovery"
|
||||
"github.com/go-kratos/kratos/v2/transport/grpc"
|
||||
"github.com/go-kratos/kratos/v2/transport/http"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
@ -26,14 +25,16 @@ var (
|
||||
|
||||
_metricSeconds = prometheus.NewHistogramVec(prometheus.HistogramOpts{
|
||||
Namespace: "server",
|
||||
Name: "request_duration_millisecond",
|
||||
Subsystem: "requests",
|
||||
Name: "duration_ms",
|
||||
Help: "server requests duration(ms).",
|
||||
Buckets: []float64{5, 10, 25, 50, 100, 250, 500, 1000},
|
||||
}, []string{"kind", "operation"})
|
||||
|
||||
_metricRequests = prometheus.NewCounterVec(prometheus.CounterOpts{
|
||||
Namespace: "client",
|
||||
Name: "api_requests_total",
|
||||
Subsystem: "requests",
|
||||
Name: "code_total",
|
||||
Help: "The total number of processed requests",
|
||||
}, []string{"kind", "operation", "code", "reason"})
|
||||
)
|
||||
@ -45,12 +46,6 @@ type server struct {
|
||||
|
||||
// SayHello implements helloworld.GreeterServer
|
||||
func (s *server) SayHello(ctx context.Context, in *helloworld.HelloRequest) (*helloworld.HelloReply, error) {
|
||||
if in.Name == "error" {
|
||||
return nil, errors.BadRequest("custom_error", fmt.Sprintf("invalid argument %s", in.Name))
|
||||
}
|
||||
if in.Name == "panic" {
|
||||
panic("server panic")
|
||||
}
|
||||
return &helloworld.HelloReply{Message: fmt.Sprintf("Hello %+v", in.Name)}, nil
|
||||
}
|
||||
|
||||
@ -59,16 +54,11 @@ func init() {
|
||||
}
|
||||
|
||||
func main() {
|
||||
s := &server{}
|
||||
|
||||
grpcSrv := grpc.NewServer(
|
||||
grpc.Address(":9000"),
|
||||
grpc.Middleware(
|
||||
recovery.Recovery(),
|
||||
metrics.Server(
|
||||
metrics.WithSeconds(
|
||||
prom.NewHistogram(_metricSeconds),
|
||||
),
|
||||
metrics.WithSeconds(prom.NewHistogram(_metricSeconds)),
|
||||
metrics.WithRequests(prom.NewCounter(_metricRequests)),
|
||||
),
|
||||
),
|
||||
@ -76,18 +66,15 @@ func main() {
|
||||
httpSrv := http.NewServer(
|
||||
http.Address(":8000"),
|
||||
http.Middleware(
|
||||
recovery.Recovery(),
|
||||
metrics.Server(
|
||||
metrics.WithSeconds(
|
||||
prom.NewHistogram(_metricSeconds),
|
||||
),
|
||||
metrics.WithSeconds(prom.NewHistogram(_metricSeconds)),
|
||||
metrics.WithRequests(prom.NewCounter(_metricRequests)),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
httpSrv.Handle("/metrics", promhttp.Handler())
|
||||
|
||||
s := &server{}
|
||||
helloworld.RegisterGreeterServer(grpcSrv, s)
|
||||
helloworld.RegisterGreeterHTTPServer(httpSrv, s)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user