|  | @@ -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>(
 |