Go to the documentation of this file.
25 #include "absl/strings/str_cat.h"
26 #include "absl/strings/string_view.h"
27 #include "absl/time/clock.h"
28 #include "absl/time/time.h"
29 #include "absl/types/optional.h"
30 #include "opencensus/stats/stats.h"
31 #include "opencensus/tags/tag_key.h"
50 struct ServerMetadataElements {
57 ServerMetadataElements* sml) {
59 if (
path !=
nullptr) {
60 sml->path =
path->Ref();
63 if (grpc_trace_bin.has_value()) {
64 sml->tracing_slice =
std::move(*grpc_trace_bin);
67 if (grpc_tags_bin.has_value()) {
68 sml->census_proto =
std::move(*grpc_tags_bin);
100 ServerMetadataElements sml;
101 FilterInitialMetadata(initial_metadata, &sml);
117 if (
op->recv_initial_metadata() !=
nullptr) {
123 if (
op->send_message() !=
nullptr) {
126 if (
op->recv_message() !=
nullptr) {
129 op->
op()->payload->recv_message.recv_message_ready;
134 if (
op->send_trailing_metadata() !=
nullptr) {
139 op->send_trailing_metadata()->batch()->Set(
155 grpc_schedule_on_exec_ctx);
157 grpc_schedule_on_exec_ctx);
169 ::opencensus::stats::Record(
#define GRPC_CLOSURE_INIT(closure, cb, cb_arg, scheduler)
MeasureDouble RpcServerServerLatency()
struct census_context census_context
uint64_t GetOutgoingDataSize(const grpc_call_final_info *final_info)
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
static void OnDoneRecvInitialMetadataCb(void *user_data, grpc_error_handle error)
GRPCAPI void grpc_census_call_set_context(grpc_call *call, struct census_context *context)
uint64_t recv_message_count_
static void OnDoneRecvMessageCb(void *user_data, grpc_error_handle error)
static constexpr uint32_t kMaxServerStatsLen
grpc_error_handle Init(grpc_call_element *elem, const grpc_call_element_args *args) override
Initializes the call data.
grpc_closure * initial_on_done_recv_message_
grpc_status_code final_status
grpc_call_element * grpc_call_stack_element(grpc_call_stack *call_stack, size_t index)
grpc_closure on_done_recv_initial_metadata_
GRPCAPI void grpc_auth_context_release(grpc_auth_context *context)
::opencensus::tags::TagKey ServerStatusTagKey()
size_t ServerStatsSerialize(uint64_t server_elapsed_time, char *buf, size_t buf_size)
absl::string_view method_
void StartTransportStreamOpBatch(grpc_call_element *elem, TransportStreamOpBatch *op) override
Starts a new stream operation.
A C++ wrapper for the grpc_transport_stream_op_batch struct.
absl::optional< grpc_core::SliceBuffer > * recv_message_
MeasureInt64 RpcServerSentMessagesPerRpc()
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
std::string qualified_method_
void GenerateServerContext(absl::string_view tracing, absl::string_view method, CensusContext *context)
static Slice FromCopiedBuffer(const char *p, size_t len)
double ToDoubleMilliseconds(Duration d)
unsigned __int64 uint64_t
char stats_buf_[kMaxServerStatsLen]
absl::string_view StatusCodeToString(grpc_status_code code)
GRPCAPI grpc_auth_context * grpc_call_auth_context(grpc_call *call)
void grpc_call_next_op(grpc_call_element *elem, grpc_transport_stream_op_batch *op)
absl::string_view GetMethod(const grpc_core::Slice &path)
ABSL_NAMESPACE_BEGIN Time Now()
#define GRPC_ERROR_REF(err)
uint64_t sent_message_count_
MeasureDouble RpcServerReceivedBytesPerRpc()
::opencensus::tags::TagKey ServerMethodTagKey()
grpc_closure * initial_on_done_recv_initial_metadata_
absl::Duration elapsed_time_
grpc_auth_context * auth_context_
uint64_t GetIncomingDataSize(const grpc_call_final_info *final_info)
MeasureDouble RpcServerSentBytesPerRpc()
MeasureInt64 RpcServerReceivedMessagesPerRpc()
grpc_closure on_done_recv_message_
grpc_metadata_batch * recv_initial_metadata_
grpc_call * grpc_call_from_top_element(grpc_call_element *surface_element)
void Destroy(grpc_call_element *elem, const grpc_call_final_info *final_info, grpc_closure *then_call_closure) override
static void Run(const DebugLocation &location, grpc_closure *closure, grpc_error_handle error)
int64_t ToInt64Nanoseconds(Duration d)
#define GRPC_ERROR_IS_NONE(err)
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:11