github.com/defanghe/fabric@v2.1.1+incompatible/common/grpcmetrics/metrics.go (about) 1 /* 2 Copyright IBM Corp. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package grpcmetrics 8 9 import "github.com/hyperledger/fabric/common/metrics" 10 11 var ( 12 unaryRequestDuration = metrics.HistogramOpts{ 13 Namespace: "grpc", 14 Subsystem: "server", 15 Name: "unary_request_duration", 16 Help: "The time to complete a unary request.", 17 LabelNames: []string{"service", "method", "code"}, 18 StatsdFormat: "%{#fqname}.%{service}.%{method}.%{code}", 19 } 20 unaryRequestsReceived = metrics.CounterOpts{ 21 Namespace: "grpc", 22 Subsystem: "server", 23 Name: "unary_requests_received", 24 Help: "The number of unary requests received.", 25 LabelNames: []string{"service", "method"}, 26 StatsdFormat: "%{#fqname}.%{service}.%{method}", 27 } 28 unaryRequestsCompleted = metrics.CounterOpts{ 29 Namespace: "grpc", 30 Subsystem: "server", 31 Name: "unary_requests_completed", 32 Help: "The number of unary requests completed.", 33 LabelNames: []string{"service", "method", "code"}, 34 StatsdFormat: "%{#fqname}.%{service}.%{method}.%{code}", 35 } 36 37 streamRequestDuration = metrics.HistogramOpts{ 38 Namespace: "grpc", 39 Subsystem: "server", 40 Name: "stream_request_duration", 41 Help: "The time to complete a stream request.", 42 LabelNames: []string{"service", "method", "code"}, 43 StatsdFormat: "%{#fqname}.%{service}.%{method}.%{code}", 44 } 45 streamRequestsReceived = metrics.CounterOpts{ 46 Namespace: "grpc", 47 Subsystem: "server", 48 Name: "stream_requests_received", 49 Help: "The number of stream requests received.", 50 LabelNames: []string{"service", "method"}, 51 StatsdFormat: "%{#fqname}.%{service}.%{method}", 52 } 53 streamRequestsCompleted = metrics.CounterOpts{ 54 Namespace: "grpc", 55 Subsystem: "server", 56 Name: "stream_requests_completed", 57 Help: "The number of stream requests completed.", 58 LabelNames: []string{"service", "method", "code"}, 59 StatsdFormat: "%{#fqname}.%{service}.%{method}.%{code}", 60 } 61 streamMessagesReceived = metrics.CounterOpts{ 62 Namespace: "grpc", 63 Subsystem: "server", 64 Name: "stream_messages_received", 65 Help: "The number of stream messages received.", 66 LabelNames: []string{"service", "method"}, 67 StatsdFormat: "%{#fqname}.%{service}.%{method}", 68 } 69 streamMessagesSent = metrics.CounterOpts{ 70 Namespace: "grpc", 71 Subsystem: "server", 72 Name: "stream_messages_sent", 73 Help: "The number of stream messages sent.", 74 LabelNames: []string{"service", "method"}, 75 StatsdFormat: "%{#fqname}.%{service}.%{method}", 76 } 77 ) 78 79 func NewUnaryMetrics(p metrics.Provider) *UnaryMetrics { 80 return &UnaryMetrics{ 81 RequestDuration: p.NewHistogram(unaryRequestDuration), 82 RequestsReceived: p.NewCounter(unaryRequestsReceived), 83 RequestsCompleted: p.NewCounter(unaryRequestsCompleted), 84 } 85 } 86 87 func NewStreamMetrics(p metrics.Provider) *StreamMetrics { 88 return &StreamMetrics{ 89 RequestDuration: p.NewHistogram(streamRequestDuration), 90 RequestsReceived: p.NewCounter(streamRequestsReceived), 91 RequestsCompleted: p.NewCounter(streamRequestsCompleted), 92 MessagesSent: p.NewCounter(streamMessagesSent), 93 MessagesReceived: p.NewCounter(streamMessagesReceived), 94 } 95 }