19 #ifndef GRPC_CORE_LIB_CHANNEL_CHANNELZ_H 20 #define GRPC_CORE_LIB_CHANNEL_CHANNELZ_H 42 #define GRPC_ARG_CHANNELZ_CHANNEL_NODE "grpc.channelz_channel_node" 45 #define GRPC_ARG_CHANNELZ_PARENT_UUID "grpc.channelz_parent_uuid" 49 #define GRPC_ENABLE_CHANNELZ_DEFAULT true 55 #define GRPC_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE_DEFAULT 1024 * 4 66 class ListenSocketNode;
69 class CallCountingHelperPeer;
70 class ChannelNodePeer;
101 intptr_t
uuid()
const {
return uuid_; }
102 const std::string&
name()
const {
return name_; }
150 sizeof(Atomic<gpr_cycle_counter>)];
161 void CollectData(CounterData* out);
164 InlinedVector<AtomicCounterData, 1> per_cpu_counter_data_storage_;
165 size_t num_cores_ = 0;
171 ChannelNode(std::string target,
size_t channel_tracer_max_nodes,
190 std::move(referenced_channel));
217 const intptr_t parent_uuid_;
227 std::map<intptr_t, bool> child_channels_;
228 std::map<intptr_t, bool> child_subchannels_;
258 std::move(referenced_channel));
268 std::map<intptr_t, RefCountedPtr<SocketNode>> child_sockets_;
269 std::map<intptr_t, RefCountedPtr<ListenSocketNode>> child_listen_sockets_;
294 const std::string&
remote() {
return remote_; }
299 Atomic<int64_t> streams_failed_{0};
300 Atomic<int64_t> messages_sent_{0};
301 Atomic<int64_t> messages_received_{0};
302 Atomic<int64_t> keepalives_sent_{0};
303 Atomic<gpr_cycle_counter> last_local_stream_created_cycle_{0};
304 Atomic<gpr_cycle_counter> last_remote_stream_created_cycle_{0};
305 Atomic<gpr_cycle_counter> last_message_sent_cycle_{0};
306 Atomic<gpr_cycle_counter> last_message_received_cycle_{0};
320 std::string local_addr_;
void RemoveChildListenSocket(intptr_t child_uuid)
Definition: channelz.cc:339
CallCountingHelper()
Definition: channelz.cc:109
SocketNode(std::string local, std::string remote, std::string name)
Definition: channelz.cc:484
Definition: channelz.h:273
char * RenderServerSockets(intptr_t start_socket_id, intptr_t max_results)
Definition: channelz.cc:344
An array of arguments that can be passed around.
Definition: grpc_types.h:132
Severity
Definition: channel_trace.h:47
BaseNode(EntityType type, std::string name)
Definition: channelz.cc:89
void RecordCallFailed()
Definition: channelz.cc:125
grpc_json * RenderJson() override
Definition: channelz.cc:613
void RecordCallFailed()
Definition: channelz.h:193
grpc_json * RenderJson() override
Definition: channelz.cc:210
~ServerNode() override
Definition: channelz.cc:322
Atomic< int64_t > calls_succeeded
Definition: channelz.h:142
void RecordCallStarted()
Definition: channelz.cc:117
const std::string & name() const
Definition: channelz.h:102
A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...
Definition: slice.h:60
grpc_connectivity_state
Connectivity state of a channel.
Definition: connectivity_state.h:27
intptr_t uuid() const
Definition: channelz.h:101
Definition: channelz.h:312
void RecordMessageReceived()
Definition: channelz.cc:506
T FetchAdd(Arg arg, MemoryOrder order=MemoryOrder::SEQ_CST)
Definition: atomic.h:71
A single argument...
Definition: grpc_types.h:103
void RecordCallStarted()
Definition: channelz.h:260
void AddChildSocket(RefCountedPtr< SocketNode > node)
Definition: channelz.cc:324
void AddTraceEventWithReference(Severity severity, const grpc_slice &data, RefCountedPtr< BaseNode > referenced_entity)
Definition: channel_trace.cc:118
ChannelNode(std::string target, size_t channel_tracer_max_nodes, intptr_t parent_uuid)
Definition: channelz.cc:184
grpc_json * RenderJson() override
Definition: channelz.cc:512
grpc_json * RenderJson() override
Definition: channelz.cc:379
void RecordCallSucceeded()
Definition: channelz.cc:130
~ListenSocketNode() override
Definition: channelz.h:315
intptr_t parent_uuid() const
Definition: channelz.h:178
Round Robin Policy.
Definition: backend_metric.cc:24
Atomic< gpr_cycle_counter > last_call_started_cycle
Definition: channelz.h:144
void AddTraceEvent(ChannelTrace::Severity severity, const grpc_slice &data)
Definition: channelz.h:251
virtual grpc_json * RenderJson()=0
Definition: channelz.h:118
AtomicCounterData()=default
EntityType
Definition: channelz.h:79
void RecordStreamSucceeded()
Definition: channelz.h:282
Definition: channelz.h:74
Definition: channelz_registry.h:36
void RecordKeepaliveSent()
Definition: channelz.h:290
void RecordMessagesSent(uint32_t num_sent)
Definition: channelz.cc:501
void RemoveChildSocket(intptr_t child_uuid)
Definition: channelz.cc:329
intptr_t GetParentUuidFromArgs(const grpc_channel_args &args)
Definition: channelz.cc:78
Definition: ref_counted_ptr.h:35
void RecordCallSucceeded()
Definition: channelz.h:194
void RecordCallFailed()
Definition: channelz.h:261
void AddTraceEventWithReference(ChannelTrace::Severity severity, const grpc_slice &data, RefCountedPtr< BaseNode > referenced_channel)
Definition: channelz.h:254
const std::string & remote()
Definition: channelz.h:294
void AddChildChannel(intptr_t child_uuid)
Definition: channelz.cc:295
void PopulateCallCounts(grpc_json *json)
Definition: channelz.cc:154
void RecordStreamStartedFromLocal()
Definition: channelz.cc:489
virtual ~BaseNode()
Definition: channelz.cc:95
void SetConnectivityState(grpc_connectivity_state state)
Definition: channelz.cc:289
void RecordCallStarted()
Definition: channelz.h:192
ServerNode(grpc_server *server, size_t channel_tracer_max_nodes)
Definition: channelz.cc:319
Definition: channel_trace.h:42
static const char * GetChannelConnectivityStateChangeString(grpc_connectivity_state state)
Definition: channelz.cc:193
Definition: ref_counted.h:248
char * RenderJsonString()
Definition: channelz.cc:97
void RemoveChildSubchannel(intptr_t child_uuid)
Definition: channelz.cc:310
void RecordCallSucceeded()
Definition: channelz.h:262
void AddChildListenSocket(RefCountedPtr< ListenSocketNode > node)
Definition: channelz.cc:334
Definition: channelz.h:232
Atomic< int64_t > calls_failed
Definition: channelz.h:143
Atomic< int64_t > calls_started
Definition: channelz.h:141
void AddChildSubchannel(intptr_t child_uuid)
Definition: channelz.cc:305
friend class testing::CallCountingHelperPeer
Definition: channelz.h:131
Definition: channelz.h:169
ListenSocketNode(std::string local_addr, std::string name)
Definition: channelz.cc:609
void RecordStreamStartedFromRemote()
Definition: channelz.cc:495
void AddTraceEvent(Severity severity, const grpc_slice &data)
Definition: channel_trace.cc:110
EntityType type() const
Definition: channelz.h:100
~SocketNode() override
Definition: channelz.h:276
void AddTraceEventWithReference(ChannelTrace::Severity severity, const grpc_slice &data, RefCountedPtr< BaseNode > referenced_channel)
Definition: channelz.h:186
grpc_arg MakeParentUuidArg(intptr_t parent_uuid)
Definition: channelz.cc:65
uint8_t padding[GPR_CACHELINE_SIZE - 3 *sizeof(Atomic< intptr_t >) - sizeof(Atomic< gpr_cycle_counter >)]
Definition: channelz.h:147
Definition: server.cc:222
friend class testing::ChannelNodePeer
Definition: channelz.h:212
void RecordStreamFailed()
Definition: channelz.h:285
void AddTraceEvent(ChannelTrace::Severity severity, const grpc_slice &data)
Definition: channelz.h:183
void RemoveChildChannel(intptr_t child_uuid)
Definition: channelz.cc:300