@Test public void buildNetworkEvent_WithRequiredFields() { NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.SENT, 1L).build(); assertThat(networkEvent.getType()).isEqualTo(NetworkEvent.Type.SENT); assertThat(networkEvent.getMessageId()).isEqualTo(1L); assertThat(networkEvent.getKernelTimestamp()).isNull(); assertThat(networkEvent.getUncompressedMessageSize()).isEqualTo(0L); }
@Test public void buildNetworkEvent_WithCompressedMessageSize() { NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.SENT, 1L).setCompressedMessageSize(123L).build(); assertThat(networkEvent.getKernelTimestamp()).isNull(); assertThat(networkEvent.getType()).isEqualTo(NetworkEvent.Type.SENT); assertThat(networkEvent.getMessageId()).isEqualTo(1L); assertThat(networkEvent.getCompressedMessageSize()).isEqualTo(123L); }
@SuppressWarnings("deprecation") private static String renderNetworkEvents(io.opencensus.trace.NetworkEvent networkEvent) { StringBuilder stringBuilder = new StringBuilder(); if (networkEvent.getType() == io.opencensus.trace.NetworkEvent.Type.RECV) { stringBuilder.append("Received message"); } else if (networkEvent.getType() == io.opencensus.trace.NetworkEvent.Type.SENT) { stringBuilder.append("Sent message"); } else { stringBuilder.append("Unknown"); } stringBuilder.append(" id="); stringBuilder.append(networkEvent.getMessageId()); stringBuilder.append(" uncompressed_size="); stringBuilder.append(networkEvent.getUncompressedMessageSize()); stringBuilder.append(" compressed_size="); stringBuilder.append(networkEvent.getCompressedMessageSize()); return stringBuilder.toString(); }
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()); }
/** * Returns the uncompressed size in bytes of the {@code NetworkEvent}. * * @deprecated Use {@link #getUncompressedMessageSize}. * @return the uncompressed size in bytes of the {@code NetworkEvent}. * @since 0.5 */ @Deprecated public long getMessageSize() { return getUncompressedMessageSize(); }
/** * Cast or convert a {@link io.opencensus.trace.BaseMessageEvent} to {@link * io.opencensus.trace.MessageEvent}. * * <p>Warning: if the input is a {@code io.opencensus.trace.NetworkEvent} and contains {@code * kernelTimestamp} information, this information will be dropped. * * @param event the {@code BaseMessageEvent} that is being cast or converted. * @return a {@code MessageEvent} representation of the input. */ public static io.opencensus.trace.MessageEvent asMessageEvent( io.opencensus.trace.BaseMessageEvent event) { Utils.checkNotNull(event, "event"); if (event instanceof io.opencensus.trace.MessageEvent) { return (io.opencensus.trace.MessageEvent) event; } io.opencensus.trace.NetworkEvent networkEvent = (io.opencensus.trace.NetworkEvent) event; io.opencensus.trace.MessageEvent.Type type = (networkEvent.getType() == io.opencensus.trace.NetworkEvent.Type.RECV) ? io.opencensus.trace.MessageEvent.Type.RECEIVED : io.opencensus.trace.MessageEvent.Type.SENT; return io.opencensus.trace.MessageEvent.builder(type, networkEvent.getMessageId()) .setUncompressedMessageSize(networkEvent.getUncompressedMessageSize()) .setCompressedMessageSize(networkEvent.getCompressedMessageSize()) .build(); }
@Test(expected = NullPointerException.class) public void buildNetworkEvent_NullType() { NetworkEvent.builder(null, 1L).build(); }
/** * @deprecated Use {@link #getUncompressedMessageSize}. * @return the uncompressed size in bytes of the {@code NetworkEvent}. */ @Deprecated public long getMessageSize() { return getUncompressedMessageSize(); }
@Test public void buildNetworkEvent_WithUncompressedMessageSize() { NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.SENT, 1L).setUncompressedMessageSize(123L).build(); assertThat(networkEvent.getKernelTimestamp()).isNull(); assertThat(networkEvent.getType()).isEqualTo(NetworkEvent.Type.SENT); assertThat(networkEvent.getMessageId()).isEqualTo(1L); assertThat(networkEvent.getUncompressedMessageSize()).isEqualTo(123L); assertThat(networkEvent.getMessageSize()).isEqualTo(123L); }
@Test public void networkEvent_ToString() { NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.SENT, 1L) .setKernelTimestamp(Timestamp.fromMillis(123456L)) .setUncompressedMessageSize(123L) .setCompressedMessageSize(63L) .build(); assertThat(networkEvent.toString()).contains(Timestamp.fromMillis(123456L).toString()); assertThat(networkEvent.toString()).contains("type=SENT"); assertThat(networkEvent.toString()).contains("messageId=1"); assertThat(networkEvent.toString()).contains("compressedMessageSize=63"); assertThat(networkEvent.toString()).contains("uncompressedMessageSize=123"); } }
@Test public void buildNetworkEvent_WithMessageSize() { NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.SENT, 1L).setMessageSize(123L).build(); assertThat(networkEvent.getKernelTimestamp()).isNull(); assertThat(networkEvent.getType()).isEqualTo(NetworkEvent.Type.SENT); assertThat(networkEvent.getMessageId()).isEqualTo(1L); assertThat(networkEvent.getMessageSize()).isEqualTo(123L); assertThat(networkEvent.getUncompressedMessageSize()).isEqualTo(123L); }
/** * Cast or convert a {@link io.opencensus.trace.BaseMessageEvent} to {@link * io.opencensus.trace.NetworkEvent}. * * @param event the {@code BaseMessageEvent} that is being cast or converted. * @return a {@code io.opencensus.trace.NetworkEvent} representation of the input. */ public static io.opencensus.trace.NetworkEvent asNetworkEvent( io.opencensus.trace.BaseMessageEvent event) { Utils.checkNotNull(event, "event"); if (event instanceof io.opencensus.trace.NetworkEvent) { return (io.opencensus.trace.NetworkEvent) event; } io.opencensus.trace.MessageEvent messageEvent = (io.opencensus.trace.MessageEvent) event; io.opencensus.trace.NetworkEvent.Type type = (messageEvent.getType() == io.opencensus.trace.MessageEvent.Type.RECEIVED) ? io.opencensus.trace.NetworkEvent.Type.RECV : io.opencensus.trace.NetworkEvent.Type.SENT; return io.opencensus.trace.NetworkEvent.builder(type, messageEvent.getMessageId()) .setUncompressedMessageSize(messageEvent.getUncompressedMessageSize()) .setCompressedMessageSize(messageEvent.getCompressedMessageSize()) .build(); }
@Test public void buildNetworkEvent_WithTimestamp() { NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.SENT, 1L) .setKernelTimestamp(Timestamp.fromMillis(123456L)) .build(); assertThat(networkEvent.getKernelTimestamp()).isEqualTo(Timestamp.fromMillis(123456L)); assertThat(networkEvent.getType()).isEqualTo(NetworkEvent.Type.SENT); assertThat(networkEvent.getMessageId()).isEqualTo(1L); assertThat(networkEvent.getUncompressedMessageSize()).isEqualTo(0L); }
@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)); } }
@Test public void buildNetworkEvent_WithAllValues() { NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.RECV, 1L) .setKernelTimestamp(Timestamp.fromMillis(123456L)) .setUncompressedMessageSize(123L) .setCompressedMessageSize(63L) .build(); assertThat(networkEvent.getKernelTimestamp()).isEqualTo(Timestamp.fromMillis(123456L)); assertThat(networkEvent.getType()).isEqualTo(NetworkEvent.Type.RECV); assertThat(networkEvent.getMessageId()).isEqualTo(1L); assertThat(networkEvent.getUncompressedMessageSize()).isEqualTo(123L); // Test that getMessageSize returns same as getUncompressedMessageSize(); assertThat(networkEvent.getMessageSize()).isEqualTo(123L); assertThat(networkEvent.getCompressedMessageSize()).isEqualTo(63L); }
@Test public void doNotCrash() { Map<String, AttributeValue> attributes = new HashMap<String, AttributeValue>(); attributes.put( "MyStringAttributeKey", AttributeValue.stringAttributeValue("MyStringAttributeValue")); Map<String, AttributeValue> multipleAttributes = new HashMap<String, AttributeValue>(); multipleAttributes.put( "MyStringAttributeKey", AttributeValue.stringAttributeValue("MyStringAttributeValue")); multipleAttributes.put("MyBooleanAttributeKey", AttributeValue.booleanAttributeValue(true)); multipleAttributes.put("MyLongAttributeKey", AttributeValue.longAttributeValue(123)); // Tests only that all the methods are not crashing/throwing errors. BlankSpan.INSTANCE.putAttribute( "MyStringAttributeKey2", AttributeValue.stringAttributeValue("MyStringAttributeValue2")); BlankSpan.INSTANCE.addAttributes(attributes); BlankSpan.INSTANCE.addAttributes(multipleAttributes); BlankSpan.INSTANCE.addAnnotation("MyAnnotation"); BlankSpan.INSTANCE.addAnnotation("MyAnnotation", attributes); BlankSpan.INSTANCE.addAnnotation("MyAnnotation", multipleAttributes); BlankSpan.INSTANCE.addAnnotation(Annotation.fromDescription("MyAnnotation")); BlankSpan.INSTANCE.addNetworkEvent(NetworkEvent.builder(NetworkEvent.Type.SENT, 1L).build()); BlankSpan.INSTANCE.addMessageEvent(MessageEvent.builder(MessageEvent.Type.SENT, 1L).build()); BlankSpan.INSTANCE.addLink( Link.fromSpanContext(SpanContext.INVALID, Link.Type.CHILD_LINKED_SPAN)); BlankSpan.INSTANCE.setStatus(Status.OK); BlankSpan.INSTANCE.end(EndSpanOptions.DEFAULT); BlankSpan.INSTANCE.end(); }
@Test public void doNotCrash() { Map<String, AttributeValue> attributes = new HashMap<String, AttributeValue>(); attributes.put( "MyStringAttributeKey", AttributeValue.stringAttributeValue("MyStringAttributeValue")); Map<String, AttributeValue> multipleAttributes = new HashMap<String, AttributeValue>(); multipleAttributes.put( "MyStringAttributeKey", AttributeValue.stringAttributeValue("MyStringAttributeValue")); multipleAttributes.put("MyBooleanAttributeKey", AttributeValue.booleanAttributeValue(true)); multipleAttributes.put("MyLongAttributeKey", AttributeValue.longAttributeValue(123)); // Tests only that all the methods are not crashing/throwing errors. noRecordEventsSpan.putAttribute( "MyStringAttributeKey2", AttributeValue.stringAttributeValue("MyStringAttributeValue2")); noRecordEventsSpan.addAttributes(attributes); noRecordEventsSpan.addAttributes(multipleAttributes); noRecordEventsSpan.addAnnotation("MyAnnotation"); noRecordEventsSpan.addAnnotation("MyAnnotation", attributes); noRecordEventsSpan.addAnnotation("MyAnnotation", multipleAttributes); noRecordEventsSpan.addAnnotation(Annotation.fromDescription("MyAnnotation")); noRecordEventsSpan.addNetworkEvent(NetworkEvent.builder(NetworkEvent.Type.SENT, 1L).build()); noRecordEventsSpan.addMessageEvent(MessageEvent.builder(MessageEvent.Type.SENT, 1L).build()); noRecordEventsSpan.addLink( Link.fromSpanContext(SpanContext.INVALID, Link.Type.CHILD_LINKED_SPAN)); noRecordEventsSpan.setStatus(Status.OK); noRecordEventsSpan.end(EndSpanOptions.DEFAULT); noRecordEventsSpan.end(); } }
testClock); NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.RECV, 1).setUncompressedMessageSize(3).build(); for (int i = 0; i < 2 * maxNumberOfNetworkEvents; i++) { span.addNetworkEvent(networkEvent);
testClock.advanceTime(Duration.create(0, 100)); NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.RECV, 1).setUncompressedMessageSize(3).build(); span.addNetworkEvent(networkEvent); testClock.advanceTime(Duration.create(0, 100));
testClock.advanceTime(Duration.create(0, 100)); NetworkEvent networkEvent = NetworkEvent.builder(NetworkEvent.Type.RECV, 1).setUncompressedMessageSize(3).build(); span.addNetworkEvent(networkEvent); Link link = Link.fromSpanContext(spanContext, Link.Type.CHILD_LINKED_SPAN);