diff options
author | Juanli Shen <juanlishen@google.com> | 2018-07-13 19:52:59 -0700 |
---|---|---|
committer | Juanli Shen <juanlishen@google.com> | 2018-07-13 19:52:59 -0700 |
commit | be40b0d3a8cf2e37c80b2c248111051fa8bdf7bc (patch) | |
tree | 79384a0045d5bbc550666f047d088f9582755086 /include/grpcpp/ext | |
parent | f9f5c67aff91e4ad26371b0a2482a5011ab45226 (diff) |
Add server load reporting service
Diffstat (limited to 'include/grpcpp/ext')
-rw-r--r-- | include/grpcpp/ext/server_load_reporting.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/include/grpcpp/ext/server_load_reporting.h b/include/grpcpp/ext/server_load_reporting.h new file mode 100644 index 0000000000..939569c19a --- /dev/null +++ b/include/grpcpp/ext/server_load_reporting.h @@ -0,0 +1,53 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#ifndef GRPCPP_EXT_SERVER_LOAD_REPORTING_H +#define GRPCPP_EXT_SERVER_LOAD_REPORTING_H + +#include <grpc/support/port_platform.h> + +#include <grpc/load_reporting.h> +#include <grpcpp/impl/codegen/config.h> +#include <grpcpp/impl/codegen/server_context.h> +#include <grpcpp/impl/server_builder_option.h> + +namespace grpc { +namespace load_reporter { +namespace experimental { + +// The ServerBuilderOption to enable server-side load reporting feature. To +// enable the feature, please make sure the binary builds with the +// grpcpp_server_load_reporting library and set this option in the +// ServerBuilder. +class LoadReportingServiceServerBuilderOption : public ServerBuilderOption { + public: + void UpdateArguments(::grpc::ChannelArguments* args) override; + void UpdatePlugins(std::vector<std::unique_ptr<::grpc::ServerBuilderPlugin>>* + plugins) override; +}; + +// Adds the load reporting cost with \a cost_name and \a cost_value in the +// trailing metadata of the server context. +void AddLoadReportingCost(grpc::ServerContext* ctx, + const grpc::string& cost_name, double cost_value); + +} // namespace experimental +} // namespace load_reporter +} // namespace grpc + +#endif // GRPCPP_EXT_SERVER_LOAD_REPORTING_H |