| 
					
				 | 
			
			
				@@ -509,26 +509,6 @@ static void destroy_call(void* call, grpc_error* error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     GRPC_CQ_INTERNAL_UNREF(c->cq, "bind"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  grpc_core::channelz::ChannelNode* channelz_channel = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      grpc_channel_get_channelz_node(c->channel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (c->is_client) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (channelz_channel != nullptr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (*c->final_op.client.status != GRPC_STATUS_OK) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        channelz_channel->RecordCallFailed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        channelz_channel->RecordCallSucceeded(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (channelz_channel != nullptr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (*c->final_op.server.cancelled || c->status_error != GRPC_ERROR_NONE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        channelz_channel->RecordCallFailed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        channelz_channel->RecordCallSucceeded(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_slice slice = grpc_empty_slice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_error_get_status(c->status_error, c->send_deadline, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         &c->final_info.final_status, &slice, nullptr, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -734,6 +714,15 @@ static void set_final_status(grpc_call* call, grpc_error* error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           error_string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *call->final_op.client.status = code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *call->final_op.client.status_details = grpc_slice_ref_internal(slice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    grpc_core::channelz::ChannelNode* channelz_channel = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        grpc_channel_get_channelz_node(call->channel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (channelz_channel != nullptr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (code != GRPC_STATUS_OK) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        channelz_channel->RecordCallFailed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        channelz_channel->RecordCallSucceeded(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *call->final_op.server.cancelled = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         error != GRPC_ERROR_NONE || call->status_error != GRPC_ERROR_NONE; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1683,6 +1672,15 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       static_cast<intptr_t>( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           op->data.send_status_from_server.status)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         call->status_error = status_error; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        grpc_core::channelz::ChannelNode* channelz_channel = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            grpc_channel_get_channelz_node(call->channel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (channelz_channel != nullptr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (call->status_error != GRPC_ERROR_NONE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            channelz_channel->RecordCallFailed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            channelz_channel->RecordCallSucceeded(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!prepare_application_metadata( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 call, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 static_cast<int>( 
			 |