xref: /aosp_15_r20/external/grpc-grpc/spm-cpp-include/grpcpp/opencensus.h (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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