go_study/fabric-main/internal/pkg/comm/serverstatshandler.go

39 lines
829 B
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package comm
import (
"context"
"github.com/hyperledger/fabric/common/metrics"
"google.golang.org/grpc/stats"
)
type ServerStatsHandler struct {
OpenConnCounter metrics.Counter
ClosedConnCounter metrics.Counter
}
func (h *ServerStatsHandler) TagRPC(ctx context.Context, info *stats.RPCTagInfo) context.Context {
return ctx
}
func (h *ServerStatsHandler) HandleRPC(ctx context.Context, s stats.RPCStats) {}
func (h *ServerStatsHandler) TagConn(ctx context.Context, info *stats.ConnTagInfo) context.Context {
return ctx
}
func (h *ServerStatsHandler) HandleConn(ctx context.Context, s stats.ConnStats) {
switch s.(type) {
case *stats.ConnBegin:
h.OpenConnCounter.Add(1)
case *stats.ConnEnd:
h.ClosedConnCounter.Add(1)
}
}