#include "src/cpp/server/backend_metric_recorder.h"
#include <inttypes.h>
#include <functional>
#include <memory>
#include <string>
#include <type_traits>
#include <utility>
#include <grpc/support/log.h>
#include <grpcpp/ext/call_metric_recorder.h>
#include <grpcpp/ext/server_metric_recorder.h>
#include "src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h"
#include "src/core/lib/debug/trace.h"
BackendMetricData;
namespace {
bool IsUtilizationValid(double utilization) { … }
bool IsQpsValid(double qps) { … }
grpc_core::TraceFlag grpc_backend_metric_trace(false, "backend_metric");
}
namespace grpc {
namespace experimental {
std::unique_ptr<ServerMetricRecorder> ServerMetricRecorder::Create() { … }
ServerMetricRecorder::ServerMetricRecorder()
: … { … }
void ServerMetricRecorder::UpdateBackendMetricDataState(
std::function<void(BackendMetricData*)> updater) { … }
void ServerMetricRecorder::SetCpuUtilization(double value) { … }
void ServerMetricRecorder::SetMemoryUtilization(double value) { … }
void ServerMetricRecorder::SetQps(double value) { … }
void ServerMetricRecorder::SetNamedUtilization(string_ref name, double value) { … }
void ServerMetricRecorder::SetAllNamedUtilization(
std::map<string_ref, double> named_utilization) { … }
void ServerMetricRecorder::ClearCpuUtilization() { … }
void ServerMetricRecorder::ClearMemoryUtilization() { … }
void ServerMetricRecorder::ClearQps() { … }
void ServerMetricRecorder::ClearNamedUtilization(string_ref name) { … }
grpc_core::BackendMetricData ServerMetricRecorder::GetMetrics() const { … }
std::shared_ptr<const ServerMetricRecorder::BackendMetricDataState>
ServerMetricRecorder::GetMetricsIfChanged() const { … }
}
experimental::CallMetricRecorder&
BackendMetricState::RecordCpuUtilizationMetric(double value) { … }
experimental::CallMetricRecorder&
BackendMetricState::RecordMemoryUtilizationMetric(double value) { … }
experimental::CallMetricRecorder& BackendMetricState::RecordQpsMetric(
double value) { … }
experimental::CallMetricRecorder& BackendMetricState::RecordUtilizationMetric(
string_ref name, double value) { … }
experimental::CallMetricRecorder& BackendMetricState::RecordRequestCostMetric(
string_ref name, double value) { … }
BackendMetricData BackendMetricState::GetBackendMetricData() { … }
}