Golang gRPCの練習は6内蔵のトレースをシリアライズ

内蔵トレース

grpcデフォルトのトレースログが役立ち、クライアントとサーバは基本的に同じであるにもクライアントとサーバを提供していますが、カスタムインタフェースを提供していません、だけで、基本的な現在のイベントログと要求ログを表示し、基本的な要求のステータスを表示することができますこの場所は、たとえば、コード・サーバー・ハロープロジェクトを変更、サーバー・トレースをオンにしています:

サーバー/ main.go

package main

import (
    "net"
    "net/http"

    pb "git.vodjk.com/go-grpc/example/proto" // 引入编译生成的包 "golang.org/x/net/context" "golang.org/x/net/trace" // 引入trace包 "google.golang.org/grpc" "google.golang.org/grpc/grpclog" ) const ( // Address gRPC服务地址 Address = "127.0.0.1:50052" ) // 定义helloService并实现约定的接口 type helloService struct{} // HelloService ... var HelloService = helloService{} func (h helloService) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) { resp := new(pb.HelloReply) resp.Message = "Hello " + in.Name + "." return resp, nil } func main() { listen, err := net.Listen("tcp", Address) if err != nil { grpclog.Fatalf("failed to listen: %v", err) } // 实例化grpc Server s := grpc.NewServer() // 注册HelloService pb.RegisterHelloServer(s, HelloService) // 开启trace go startTrace() grpclog.Println("Listen on " + Address) s.Serve(listen) } func startTrace() { trace.AuthRequest = func(req *http.Request) (any, sensitive bool) { return true, true } go http.ListenAndServe(":50051", nil) grpclog.Println("Trace listen on 50051") } 

ここでは、HTTPサービスのリスニングポート50051を開いて、あなたは、トレース情報のgrpc要求を表示することができます

実行します。

go run main.go

Listen on 127.0.0.1:50052 Trace listen on 50051  // 进入client目录执行一次客户端请求 

イベントビューアサーバ

アクセス:ローカルホスト:50051 /デバッグ/イベント、結果が示されています。

画像のキャプション

あなたは、イベント情報サーバの登録サービスを見ることができますし、サービスが正常に起動し、デフォルトのトレースのみ、このイベント

閲覧要求のログ

アクセス:ローカルホスト:50051 /デバッグ/リクエスト、結果が示されています。

画像のキャプション

ここでは、リクエストの最新のステータスは、要求サービス、パラメータを含み、時間のかかるが、対応して、簡単なステータス表示のために、非常に便利なデフォルト値の表示である最後の10件のレコードを表示することができ、変更することはできません。

参照

サンプルコードこの一連の

おすすめ

転載: www.cnblogs.com/ExMan/p/12163104.html