1 /* 2 * 3 * Copyright 2018 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 GRPC_INTERNAL_CPP_EXT_FILTERS_CENSUS_GRPC_PLUGIN_H 20 #define GRPC_INTERNAL_CPP_EXT_FILTERS_CENSUS_GRPC_PLUGIN_H 21 22 #include <grpc/support/port_platform.h> 23 24 #include "absl/strings/string_view.h" 25 #include "include/grpcpp/opencensus.h" 26 #include "opencensus/stats/stats.h" 27 #include "opencensus/tags/tag_key.h" 28 29 namespace grpc_impl { 30 class ServerContext; 31 } 32 33 namespace grpc { 34 35 // The tag keys set when recording RPC stats. 36 ::opencensus::tags::TagKey ClientMethodTagKey(); 37 ::opencensus::tags::TagKey ClientStatusTagKey(); 38 ::opencensus::tags::TagKey ServerMethodTagKey(); 39 ::opencensus::tags::TagKey ServerStatusTagKey(); 40 41 // Names of measures used by the plugin--users can create views on these 42 // measures but should not record data for them. 43 extern const absl::string_view kRpcClientSentMessagesPerRpcMeasureName; 44 extern const absl::string_view kRpcClientSentBytesPerRpcMeasureName; 45 extern const absl::string_view kRpcClientReceivedMessagesPerRpcMeasureName; 46 extern const absl::string_view kRpcClientReceivedBytesPerRpcMeasureName; 47 extern const absl::string_view kRpcClientRoundtripLatencyMeasureName; 48 extern const absl::string_view kRpcClientServerLatencyMeasureName; 49 50 extern const absl::string_view kRpcServerSentMessagesPerRpcMeasureName; 51 extern const absl::string_view kRpcServerSentBytesPerRpcMeasureName; 52 extern const absl::string_view kRpcServerReceivedMessagesPerRpcMeasureName; 53 extern const absl::string_view kRpcServerReceivedBytesPerRpcMeasureName; 54 extern const absl::string_view kRpcServerServerLatencyMeasureName; 55 56 // Canonical gRPC view definitions. 57 const ::opencensus::stats::ViewDescriptor& ClientSentMessagesPerRpcCumulative(); 58 const ::opencensus::stats::ViewDescriptor& ClientSentBytesPerRpcCumulative(); 59 const ::opencensus::stats::ViewDescriptor& 60 ClientReceivedMessagesPerRpcCumulative(); 61 const ::opencensus::stats::ViewDescriptor& 62 ClientReceivedBytesPerRpcCumulative(); 63 const ::opencensus::stats::ViewDescriptor& ClientRoundtripLatencyCumulative(); 64 const ::opencensus::stats::ViewDescriptor& ClientServerLatencyCumulative(); 65 const ::opencensus::stats::ViewDescriptor& ClientCompletedRpcsCumulative(); 66 67 const ::opencensus::stats::ViewDescriptor& ServerSentBytesPerRpcCumulative(); 68 const ::opencensus::stats::ViewDescriptor& 69 ServerReceivedBytesPerRpcCumulative(); 70 const ::opencensus::stats::ViewDescriptor& ServerServerLatencyCumulative(); 71 const ::opencensus::stats::ViewDescriptor& ServerStartedCountCumulative(); 72 const ::opencensus::stats::ViewDescriptor& ServerCompletedRpcsCumulative(); 73 const ::opencensus::stats::ViewDescriptor& ServerSentMessagesPerRpcCumulative(); 74 const ::opencensus::stats::ViewDescriptor& 75 ServerReceivedMessagesPerRpcCumulative(); 76 77 const ::opencensus::stats::ViewDescriptor& ClientSentMessagesPerRpcMinute(); 78 const ::opencensus::stats::ViewDescriptor& ClientSentBytesPerRpcMinute(); 79 const ::opencensus::stats::ViewDescriptor& ClientReceivedMessagesPerRpcMinute(); 80 const ::opencensus::stats::ViewDescriptor& ClientReceivedBytesPerRpcMinute(); 81 const ::opencensus::stats::ViewDescriptor& ClientRoundtripLatencyMinute(); 82 const ::opencensus::stats::ViewDescriptor& ClientServerLatencyMinute(); 83 const ::opencensus::stats::ViewDescriptor& ClientCompletedRpcsMinute(); 84 85 const ::opencensus::stats::ViewDescriptor& ServerSentMessagesPerRpcMinute(); 86 const ::opencensus::stats::ViewDescriptor& ServerSentBytesPerRpcMinute(); 87 const ::opencensus::stats::ViewDescriptor& ServerReceivedMessagesPerRpcMinute(); 88 const ::opencensus::stats::ViewDescriptor& ServerReceivedBytesPerRpcMinute(); 89 const ::opencensus::stats::ViewDescriptor& ServerServerLatencyMinute(); 90 const ::opencensus::stats::ViewDescriptor& ServerCompletedRpcsMinute(); 91 92 const ::opencensus::stats::ViewDescriptor& ClientSentMessagesPerRpcHour(); 93 const ::opencensus::stats::ViewDescriptor& ClientSentBytesPerRpcHour(); 94 const ::opencensus::stats::ViewDescriptor& ClientReceivedMessagesPerRpcHour(); 95 const ::opencensus::stats::ViewDescriptor& ClientReceivedBytesPerRpcHour(); 96 const ::opencensus::stats::ViewDescriptor& ClientRoundtripLatencyHour(); 97 const ::opencensus::stats::ViewDescriptor& ClientServerLatencyHour(); 98 const ::opencensus::stats::ViewDescriptor& ClientCompletedRpcsHour(); 99 100 const ::opencensus::stats::ViewDescriptor& ServerSentMessagesPerRpcHour(); 101 const ::opencensus::stats::ViewDescriptor& ServerSentBytesPerRpcHour(); 102 const ::opencensus::stats::ViewDescriptor& ServerReceivedMessagesPerRpcHour(); 103 const ::opencensus::stats::ViewDescriptor& ServerReceivedBytesPerRpcHour(); 104 const ::opencensus::stats::ViewDescriptor& ServerServerLatencyHour(); 105 const ::opencensus::stats::ViewDescriptor& ServerStartedCountHour(); 106 const ::opencensus::stats::ViewDescriptor& ServerCompletedRpcsHour(); 107 108 } // namespace grpc 109 110 #endif /* GRPC_INTERNAL_CPP_EXT_FILTERS_CENSUS_GRPC_PLUGIN_H */ 111