-
Notifications
You must be signed in to change notification settings - Fork 0
/
examples_test.go
39 lines (35 loc) · 896 Bytes
/
examples_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package grpcmon_test
import (
"log"
"net"
"github.com/Bo0mer/grpcmon"
bpb "github.com/Bo0mer/grpcmon/testdata/backend"
pb "github.com/Bo0mer/grpcmon/testdata/frontend"
"google.golang.org/grpc"
)
func Example() {
// Create gRPC metrics with selected options and register with monitoring
// sytem.
clientMetrics := &grpcmon.Metrics{
// ...
}
// Instrument gRPC client(s).
backendConn, err := grpc.Dial(backendAddr, grpcmon.DialOption(clientMetrics))
if err != nil {
log.Fatal(err)
}
serverMetrics := &grpcmon.Metrics{
// ...
}
// Instrument gRPC server and, optionally, initialize server metrics.
srv := grpc.NewServer(grpcmon.ServerOption(serverMetrics))
pb.RegisterFrontendServer(srv, &Server{
backend: bpb.NewBackendClient(backendConn),
})
// Listen and serve.
lis, err := net.Listen("tcp", addr)
if err != nil {
log.Fatal(err)
}
log.Fatal(srv.Serve(lis))
}