/** * Adds a MessageEvent to the {@code Span}. * * <p>This function can be used by higher level applications to record messaging event. * * <p>This method should always be overridden by users whose API versions are larger or equal to * {@code 0.12}. * * @param messageEvent the message to add. * @since 0.12 */ public void addMessageEvent(MessageEvent messageEvent) { // Default implementation by invoking addNetworkEvent() so that any existing derived classes, // including implementation and the mocked ones, do not need to override this method explicitly. Utils.checkNotNull(messageEvent, "messageEvent"); addNetworkEvent(BaseMessageEventUtils.asNetworkEvent(messageEvent)); }
private static void recordNetworkEvent( Span span, NetworkEvent.Type type, int seqNo, long optionalWireSize, long optionalUncompressedSize) { NetworkEvent.Builder eventBuilder = NetworkEvent.builder(type, seqNo); if (optionalUncompressedSize != -1) { eventBuilder.setUncompressedMessageSize(optionalUncompressedSize); } if (optionalWireSize != -1) { eventBuilder.setCompressedMessageSize(optionalWireSize); } span.addNetworkEvent(eventBuilder.build()); }
@Test public void addMessageEventDefaultImplementation() { Span mockSpan = Mockito.mock(Span.class); MessageEvent messageEvent = MessageEvent.builder(MessageEvent.Type.SENT, 123) .setUncompressedMessageSize(456) .setCompressedMessageSize(789) .build(); NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.SENT, 123) .setUncompressedMessageSize(456) .setCompressedMessageSize(789) .build(); Mockito.doCallRealMethod().when(mockSpan).addMessageEvent(messageEvent); mockSpan.addMessageEvent(messageEvent); verify(mockSpan).addNetworkEvent(eq(networkEvent)); } }