GRPC C++  1.66.0
call_metric_recorder.h
Go to the documentation of this file.
1 //
2 //
3 // Copyright 2022 gRPC authors.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 //
18 
19 #ifndef GRPCPP_EXT_CALL_METRIC_RECORDER_H
20 #define GRPCPP_EXT_CALL_METRIC_RECORDER_H
21 
22 #include <memory>
23 #include <string>
24 
25 #include "absl/strings/string_view.h"
26 #include "absl/types/optional.h"
27 
28 #include <grpcpp/impl/sync.h>
29 #include <grpcpp/support/slice.h>
30 
31 namespace grpc {
32 namespace experimental {
33 
38  public:
39  virtual ~CallMetricRecorder() = default;
40 
46  virtual CallMetricRecorder& RecordCpuUtilizationMetric(double value) = 0;
47 
51  virtual CallMetricRecorder& RecordMemoryUtilizationMetric(double value) = 0;
52 
59  double value) = 0;
60 
64  virtual CallMetricRecorder& RecordQpsMetric(double value) = 0;
65 
69  virtual CallMetricRecorder& RecordEpsMetric(double value) = 0;
70 
80  double value) = 0;
81 
90  double value) = 0;
91 
100  double value) = 0;
101 };
102 
103 } // namespace experimental
104 } // namespace grpc
105 
106 #endif // GRPCPP_EXT_CALL_METRIC_RECORDER_H
grpc::string_ref
This class is a non owning reference to a string.
Definition: string_ref.h:41
grpc
An Alarm posts the user-provided tag to its associated completion queue or invokes the user-provided ...
Definition: alarm.h:33
grpc::experimental::CallMetricRecorder::RecordEpsMetric
virtual CallMetricRecorder & RecordEpsMetric(double value)=0
Records a call metric measurement for errors per second.
grpc::experimental::CallMetricRecorder::RecordCpuUtilizationMetric
virtual CallMetricRecorder & RecordCpuUtilizationMetric(double value)=0
Records a call metric measurement for CPU utilization.
grpc::experimental::CallMetricRecorder::RecordQpsMetric
virtual CallMetricRecorder & RecordQpsMetric(double value)=0
Records a call metric measurement for queries per second.
grpc::experimental::CallMetricRecorder::RecordNamedMetric
virtual CallMetricRecorder & RecordNamedMetric(string_ref name, double value)=0
Records an application-specific opaque metric measurement.
grpc::experimental::CallMetricRecorder::~CallMetricRecorder
virtual ~CallMetricRecorder()=default
grpc::experimental::CallMetricRecorder
Records call metrics for the purpose of load balancing.
Definition: call_metric_recorder.h:37
grpc::experimental::CallMetricRecorder::RecordMemoryUtilizationMetric
virtual CallMetricRecorder & RecordMemoryUtilizationMetric(double value)=0
Records a call metric measurement for memory utilization.
grpc::experimental::CallMetricRecorder::RecordUtilizationMetric
virtual CallMetricRecorder & RecordUtilizationMetric(string_ref name, double value)=0
Records a call metric measurement for utilization.
grpc::experimental::CallMetricRecorder::RecordRequestCostMetric
virtual CallMetricRecorder & RecordRequestCostMetric(string_ref name, double value)=0
Records a call metric measurement for request cost.
slice.h
sync.h
grpc::experimental::CallMetricRecorder::RecordApplicationUtilizationMetric
virtual CallMetricRecorder & RecordApplicationUtilizationMetric(double value)=0
Records a call metric measurement for application specific utilization.