1*cc02d7e2SAndroid Build Coastguard Worker // Copyright 2024 The gRPC Authors. 2*cc02d7e2SAndroid Build Coastguard Worker // 3*cc02d7e2SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License"); 4*cc02d7e2SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License. 5*cc02d7e2SAndroid Build Coastguard Worker // You may obtain a copy of the License at 6*cc02d7e2SAndroid Build Coastguard Worker // 7*cc02d7e2SAndroid Build Coastguard Worker // http://www.apache.org/licenses/LICENSE-2.0 8*cc02d7e2SAndroid Build Coastguard Worker // 9*cc02d7e2SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software 10*cc02d7e2SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS, 11*cc02d7e2SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*cc02d7e2SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and 13*cc02d7e2SAndroid Build Coastguard Worker // limitations under the License. 14*cc02d7e2SAndroid Build Coastguard Worker 15*cc02d7e2SAndroid Build Coastguard Worker #ifndef GRPC_SUPPORT_METRICS_H 16*cc02d7e2SAndroid Build Coastguard Worker #define GRPC_SUPPORT_METRICS_H 17*cc02d7e2SAndroid Build Coastguard Worker 18*cc02d7e2SAndroid Build Coastguard Worker #include "absl/strings/string_view.h" 19*cc02d7e2SAndroid Build Coastguard Worker 20*cc02d7e2SAndroid Build Coastguard Worker #include <grpc/support/port_platform.h> 21*cc02d7e2SAndroid Build Coastguard Worker 22*cc02d7e2SAndroid Build Coastguard Worker namespace grpc_core { 23*cc02d7e2SAndroid Build Coastguard Worker namespace experimental { 24*cc02d7e2SAndroid Build Coastguard Worker 25*cc02d7e2SAndroid Build Coastguard Worker // Configuration (scope) for a specific client channel to be used for stats 26*cc02d7e2SAndroid Build Coastguard Worker // plugins. 27*cc02d7e2SAndroid Build Coastguard Worker class StatsPluginChannelScope { 28*cc02d7e2SAndroid Build Coastguard Worker public: StatsPluginChannelScope(absl::string_view target,absl::string_view default_authority)29*cc02d7e2SAndroid Build Coastguard Worker StatsPluginChannelScope(absl::string_view target, 30*cc02d7e2SAndroid Build Coastguard Worker absl::string_view default_authority) 31*cc02d7e2SAndroid Build Coastguard Worker : target_(target), default_authority_(default_authority) {} 32*cc02d7e2SAndroid Build Coastguard Worker 33*cc02d7e2SAndroid Build Coastguard Worker /// Returns the target used for creating the channel in the canonical form. 34*cc02d7e2SAndroid Build Coastguard Worker /// (Canonicalized target definition - 35*cc02d7e2SAndroid Build Coastguard Worker /// https://github.com/grpc/proposal/blob/master/A66-otel-stats.md) target()36*cc02d7e2SAndroid Build Coastguard Worker absl::string_view target() const { return target_; } 37*cc02d7e2SAndroid Build Coastguard Worker /// Returns the default authority for the channel. default_authority()38*cc02d7e2SAndroid Build Coastguard Worker absl::string_view default_authority() const { return default_authority_; } 39*cc02d7e2SAndroid Build Coastguard Worker 40*cc02d7e2SAndroid Build Coastguard Worker private: 41*cc02d7e2SAndroid Build Coastguard Worker // Disable copy constructor and copy-assignment operator. 42*cc02d7e2SAndroid Build Coastguard Worker StatsPluginChannelScope(const StatsPluginChannelScope&) = delete; 43*cc02d7e2SAndroid Build Coastguard Worker StatsPluginChannelScope& operator=(const StatsPluginChannelScope&) = delete; 44*cc02d7e2SAndroid Build Coastguard Worker absl::string_view target_; 45*cc02d7e2SAndroid Build Coastguard Worker absl::string_view default_authority_; 46*cc02d7e2SAndroid Build Coastguard Worker }; 47*cc02d7e2SAndroid Build Coastguard Worker 48*cc02d7e2SAndroid Build Coastguard Worker } // namespace experimental 49*cc02d7e2SAndroid Build Coastguard Worker } // namespace grpc_core 50*cc02d7e2SAndroid Build Coastguard Worker 51*cc02d7e2SAndroid Build Coastguard Worker #endif /* GRPC_SUPPORT_METRICS_H */ 52