1*cc02d7e2SAndroid Build Coastguard Worker // 2*cc02d7e2SAndroid Build Coastguard Worker // 3*cc02d7e2SAndroid Build Coastguard Worker // Copyright 2019 gRPC authors. 4*cc02d7e2SAndroid Build Coastguard Worker // 5*cc02d7e2SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License"); 6*cc02d7e2SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License. 7*cc02d7e2SAndroid Build Coastguard Worker // You may obtain a copy of the License at 8*cc02d7e2SAndroid Build Coastguard Worker // 9*cc02d7e2SAndroid Build Coastguard Worker // http://www.apache.org/licenses/LICENSE-2.0 10*cc02d7e2SAndroid Build Coastguard Worker // 11*cc02d7e2SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software 12*cc02d7e2SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS, 13*cc02d7e2SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*cc02d7e2SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and 15*cc02d7e2SAndroid Build Coastguard Worker // limitations under the License. 16*cc02d7e2SAndroid Build Coastguard Worker // 17*cc02d7e2SAndroid Build Coastguard Worker // 18*cc02d7e2SAndroid Build Coastguard Worker 19*cc02d7e2SAndroid Build Coastguard Worker #ifndef GRPCPP_OPENCENSUS_H 20*cc02d7e2SAndroid Build Coastguard Worker #define GRPCPP_OPENCENSUS_H 21*cc02d7e2SAndroid Build Coastguard Worker 22*cc02d7e2SAndroid Build Coastguard Worker #include "opencensus/stats/view_descriptor.h" 23*cc02d7e2SAndroid Build Coastguard Worker #include "opencensus/tags/tag_map.h" 24*cc02d7e2SAndroid Build Coastguard Worker #include "opencensus/trace/span.h" 25*cc02d7e2SAndroid Build Coastguard Worker #include "opencensus/trace/span_context.h" 26*cc02d7e2SAndroid Build Coastguard Worker 27*cc02d7e2SAndroid Build Coastguard Worker namespace grpc { 28*cc02d7e2SAndroid Build Coastguard Worker class ServerContext; 29*cc02d7e2SAndroid Build Coastguard Worker // These symbols in this file will not be included in the binary unless 30*cc02d7e2SAndroid Build Coastguard Worker // grpc_opencensus_plugin build target was added as a dependency. At the moment 31*cc02d7e2SAndroid Build Coastguard Worker // it is only setup to be built with Bazel. 32*cc02d7e2SAndroid Build Coastguard Worker 33*cc02d7e2SAndroid Build Coastguard Worker // Registers the OpenCensus plugin with gRPC, so that it will be used for future 34*cc02d7e2SAndroid Build Coastguard Worker // RPCs. This must be called before any views are created. 35*cc02d7e2SAndroid Build Coastguard Worker void RegisterOpenCensusPlugin(); 36*cc02d7e2SAndroid Build Coastguard Worker 37*cc02d7e2SAndroid Build Coastguard Worker // RPC stats definitions, defined by 38*cc02d7e2SAndroid Build Coastguard Worker // https://github.com/census-instrumentation/opencensus-specs/blob/master/stats/gRPC.md 39*cc02d7e2SAndroid Build Coastguard Worker 40*cc02d7e2SAndroid Build Coastguard Worker // Registers the cumulative gRPC views so that they will be exported by any 41*cc02d7e2SAndroid Build Coastguard Worker // registered stats exporter. For on-task stats, construct a View using the 42*cc02d7e2SAndroid Build Coastguard Worker // ViewDescriptors below. 43*cc02d7e2SAndroid Build Coastguard Worker void RegisterOpenCensusViewsForExport(); 44*cc02d7e2SAndroid Build Coastguard Worker 45*cc02d7e2SAndroid Build Coastguard Worker // Returns the tracing Span for the current RPC. 46*cc02d7e2SAndroid Build Coastguard Worker ::opencensus::trace::Span GetSpanFromServerContext(ServerContext* context); 47*cc02d7e2SAndroid Build Coastguard Worker 48*cc02d7e2SAndroid Build Coastguard Worker namespace experimental { 49*cc02d7e2SAndroid Build Coastguard Worker 50*cc02d7e2SAndroid Build Coastguard Worker // The tag keys set when recording RPC stats. 51*cc02d7e2SAndroid Build Coastguard Worker ::opencensus::tags::TagKey ClientMethodTagKey(); 52*cc02d7e2SAndroid Build Coastguard Worker ::opencensus::tags::TagKey ClientStatusTagKey(); 53*cc02d7e2SAndroid Build Coastguard Worker ::opencensus::tags::TagKey ServerMethodTagKey(); 54*cc02d7e2SAndroid Build Coastguard Worker ::opencensus::tags::TagKey ServerStatusTagKey(); 55*cc02d7e2SAndroid Build Coastguard Worker 56*cc02d7e2SAndroid Build Coastguard Worker // Names of measures used by the plugin--users can create views on these 57*cc02d7e2SAndroid Build Coastguard Worker // measures but should not record data for them. 58*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientSentMessagesPerRpcMeasureName; 59*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientSentBytesPerRpcMeasureName; 60*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientReceivedMessagesPerRpcMeasureName; 61*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientReceivedBytesPerRpcMeasureName; 62*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientRoundtripLatencyMeasureName; 63*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientServerLatencyMeasureName; 64*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientStartedRpcsMeasureName; 65*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientRetriesPerCallMeasureName; 66*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientTransparentRetriesPerCallMeasureName; 67*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientRetryDelayPerCallMeasureName; 68*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcClientTransportLatencyMeasureName; 69*cc02d7e2SAndroid Build Coastguard Worker 70*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcServerSentMessagesPerRpcMeasureName; 71*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcServerSentBytesPerRpcMeasureName; 72*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcServerReceivedMessagesPerRpcMeasureName; 73*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcServerReceivedBytesPerRpcMeasureName; 74*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcServerServerLatencyMeasureName; 75*cc02d7e2SAndroid Build Coastguard Worker extern const absl::string_view kRpcServerStartedRpcsMeasureName; 76*cc02d7e2SAndroid Build Coastguard Worker 77*cc02d7e2SAndroid Build Coastguard Worker // Canonical gRPC view definitions. 78*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientStartedRpcs(); 79*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientCompletedRpcs(); 80*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRoundtripLatency(); 81*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 82*cc02d7e2SAndroid Build Coastguard Worker ClientSentCompressedMessageBytesPerRpc(); 83*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 84*cc02d7e2SAndroid Build Coastguard Worker ClientReceivedCompressedMessageBytesPerRpc(); 85*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientTransportLatency(); 86*cc02d7e2SAndroid Build Coastguard Worker 87*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerStartedRpcs(); 88*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerCompletedRpcs(); 89*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 90*cc02d7e2SAndroid Build Coastguard Worker ServerSentCompressedMessageBytesPerRpc(); 91*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 92*cc02d7e2SAndroid Build Coastguard Worker ServerReceivedCompressedMessageBytesPerRpc(); 93*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerServerLatency(); 94*cc02d7e2SAndroid Build Coastguard Worker 95*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientSentMessagesPerRpcCumulative(); 96*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientSentBytesPerRpcCumulative(); 97*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 98*cc02d7e2SAndroid Build Coastguard Worker ClientReceivedMessagesPerRpcCumulative(); 99*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 100*cc02d7e2SAndroid Build Coastguard Worker ClientReceivedBytesPerRpcCumulative(); 101*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRoundtripLatencyCumulative(); 102*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientServerLatencyCumulative(); 103*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientStartedRpcsCumulative(); 104*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientCompletedRpcsCumulative(); 105*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRetriesPerCallCumulative(); 106*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRetriesCumulative(); 107*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 108*cc02d7e2SAndroid Build Coastguard Worker ClientTransparentRetriesPerCallCumulative(); 109*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientTransparentRetriesCumulative(); 110*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRetryDelayPerCallCumulative(); 111*cc02d7e2SAndroid Build Coastguard Worker 112*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerSentBytesPerRpcCumulative(); 113*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 114*cc02d7e2SAndroid Build Coastguard Worker ServerReceivedBytesPerRpcCumulative(); 115*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerServerLatencyCumulative(); 116*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerStartedRpcsCumulative(); 117*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerCompletedRpcsCumulative(); 118*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerSentMessagesPerRpcCumulative(); 119*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 120*cc02d7e2SAndroid Build Coastguard Worker ServerReceivedMessagesPerRpcCumulative(); 121*cc02d7e2SAndroid Build Coastguard Worker 122*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientSentMessagesPerRpcMinute(); 123*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientSentBytesPerRpcMinute(); 124*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientReceivedMessagesPerRpcMinute(); 125*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientReceivedBytesPerRpcMinute(); 126*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRoundtripLatencyMinute(); 127*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientServerLatencyMinute(); 128*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientStartedRpcsMinute(); 129*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientCompletedRpcsMinute(); 130*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRetriesPerCallMinute(); 131*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRetriesMinute(); 132*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 133*cc02d7e2SAndroid Build Coastguard Worker ClientTransparentRetriesPerCallMinute(); 134*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientTransparentRetriesMinute(); 135*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRetryDelayPerCallMinute(); 136*cc02d7e2SAndroid Build Coastguard Worker 137*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerSentMessagesPerRpcMinute(); 138*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerSentBytesPerRpcMinute(); 139*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerReceivedMessagesPerRpcMinute(); 140*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerReceivedBytesPerRpcMinute(); 141*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerServerLatencyMinute(); 142*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerStartedRpcsMinute(); 143*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerCompletedRpcsMinute(); 144*cc02d7e2SAndroid Build Coastguard Worker 145*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientSentMessagesPerRpcHour(); 146*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientSentBytesPerRpcHour(); 147*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientReceivedMessagesPerRpcHour(); 148*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientReceivedBytesPerRpcHour(); 149*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRoundtripLatencyHour(); 150*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientServerLatencyHour(); 151*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientStartedRpcsHour(); 152*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientCompletedRpcsHour(); 153*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRetriesPerCallHour(); 154*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRetriesHour(); 155*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& 156*cc02d7e2SAndroid Build Coastguard Worker ClientTransparentRetriesPerCallHour(); 157*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientTransparentRetriesHour(); 158*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ClientRetryDelayPerCallHour(); 159*cc02d7e2SAndroid Build Coastguard Worker 160*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerSentMessagesPerRpcHour(); 161*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerSentBytesPerRpcHour(); 162*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerReceivedMessagesPerRpcHour(); 163*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerReceivedBytesPerRpcHour(); 164*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerServerLatencyHour(); 165*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerStartedRpcsHour(); 166*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::stats::ViewDescriptor& ServerCompletedRpcsHour(); 167*cc02d7e2SAndroid Build Coastguard Worker 168*cc02d7e2SAndroid Build Coastguard Worker // Thread compatible. 169*cc02d7e2SAndroid Build Coastguard Worker class CensusContext { 170*cc02d7e2SAndroid Build Coastguard Worker public: CensusContext()171*cc02d7e2SAndroid Build Coastguard Worker CensusContext() : span_(::opencensus::trace::Span::BlankSpan()), tags_({}) {} 172*cc02d7e2SAndroid Build Coastguard Worker CensusContext(absl::string_view name,const::opencensus::tags::TagMap & tags)173*cc02d7e2SAndroid Build Coastguard Worker explicit CensusContext(absl::string_view name, 174*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::tags::TagMap& tags) 175*cc02d7e2SAndroid Build Coastguard Worker : span_(::opencensus::trace::Span::StartSpan(name)), tags_(tags) {} 176*cc02d7e2SAndroid Build Coastguard Worker CensusContext(const::opencensus::tags::TagMap & tags)177*cc02d7e2SAndroid Build Coastguard Worker explicit CensusContext(const ::opencensus::tags::TagMap& tags) 178*cc02d7e2SAndroid Build Coastguard Worker : span_(::opencensus::trace::Span::BlankSpan()), tags_(tags) {} 179*cc02d7e2SAndroid Build Coastguard Worker CensusContext(absl::string_view name,const::opencensus::trace::Span * parent,const::opencensus::tags::TagMap & tags)180*cc02d7e2SAndroid Build Coastguard Worker CensusContext(absl::string_view name, const ::opencensus::trace::Span* parent, 181*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::tags::TagMap& tags) 182*cc02d7e2SAndroid Build Coastguard Worker : span_(::opencensus::trace::Span::StartSpan(name, parent)), 183*cc02d7e2SAndroid Build Coastguard Worker tags_(tags) {} 184*cc02d7e2SAndroid Build Coastguard Worker CensusContext(absl::string_view name,const::opencensus::trace::SpanContext & parent_ctxt)185*cc02d7e2SAndroid Build Coastguard Worker CensusContext(absl::string_view name, 186*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::trace::SpanContext& parent_ctxt) 187*cc02d7e2SAndroid Build Coastguard Worker : span_(::opencensus::trace::Span::StartSpanWithRemoteParent( 188*cc02d7e2SAndroid Build Coastguard Worker name, parent_ctxt)), 189*cc02d7e2SAndroid Build Coastguard Worker tags_({}) {} 190*cc02d7e2SAndroid Build Coastguard Worker CensusContext(absl::string_view name,const::opencensus::trace::SpanContext & parent_ctxt,const::opencensus::tags::TagMap & tags)191*cc02d7e2SAndroid Build Coastguard Worker CensusContext(absl::string_view name, 192*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::trace::SpanContext& parent_ctxt, 193*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::tags::TagMap& tags) 194*cc02d7e2SAndroid Build Coastguard Worker : span_(::opencensus::trace::Span::StartSpanWithRemoteParent( 195*cc02d7e2SAndroid Build Coastguard Worker name, parent_ctxt)), 196*cc02d7e2SAndroid Build Coastguard Worker tags_(tags) {} 197*cc02d7e2SAndroid Build Coastguard Worker AddSpanAttribute(absl::string_view key,opencensus::trace::AttributeValueRef attribute)198*cc02d7e2SAndroid Build Coastguard Worker void AddSpanAttribute(absl::string_view key, 199*cc02d7e2SAndroid Build Coastguard Worker opencensus::trace::AttributeValueRef attribute) { 200*cc02d7e2SAndroid Build Coastguard Worker span_.AddAttribute(key, attribute); 201*cc02d7e2SAndroid Build Coastguard Worker } 202*cc02d7e2SAndroid Build Coastguard Worker AddSpanAnnotation(absl::string_view description,opencensus::trace::AttributesRef attributes)203*cc02d7e2SAndroid Build Coastguard Worker void AddSpanAnnotation(absl::string_view description, 204*cc02d7e2SAndroid Build Coastguard Worker opencensus::trace::AttributesRef attributes) { 205*cc02d7e2SAndroid Build Coastguard Worker span_.AddAnnotation(description, attributes); 206*cc02d7e2SAndroid Build Coastguard Worker } 207*cc02d7e2SAndroid Build Coastguard Worker Span()208*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::trace::Span& Span() const { return span_; } tags()209*cc02d7e2SAndroid Build Coastguard Worker const ::opencensus::tags::TagMap& tags() const { return tags_; } 210*cc02d7e2SAndroid Build Coastguard Worker Context()211*cc02d7e2SAndroid Build Coastguard Worker ::opencensus::trace::SpanContext Context() const { return Span().context(); } EndSpan()212*cc02d7e2SAndroid Build Coastguard Worker void EndSpan() { Span().End(); } 213*cc02d7e2SAndroid Build Coastguard Worker 214*cc02d7e2SAndroid Build Coastguard Worker private: 215*cc02d7e2SAndroid Build Coastguard Worker ::opencensus::trace::Span span_; 216*cc02d7e2SAndroid Build Coastguard Worker ::opencensus::tags::TagMap tags_; 217*cc02d7e2SAndroid Build Coastguard Worker }; 218*cc02d7e2SAndroid Build Coastguard Worker 219*cc02d7e2SAndroid Build Coastguard Worker } // namespace experimental 220*cc02d7e2SAndroid Build Coastguard Worker 221*cc02d7e2SAndroid Build Coastguard Worker } // namespace grpc 222*cc02d7e2SAndroid Build Coastguard Worker 223*cc02d7e2SAndroid Build Coastguard Worker #endif // GRPCPP_OPENCENSUS_H 224