github.com/kaituanwang/hyperledger@v2.0.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  }