From 8952e9970470b683773bfe3a8f40a10881a3f321 Mon Sep 17 00:00:00 2001 From: Jakub Dudycz Date: Fri, 14 Dec 2018 15:20:56 +0100 Subject: Add metrics for dropped messages Add counters for messages dropped due to validation or undefined routing Slight refactoring Change-Id: Ibe4e38445e81babc745d7a7d95356910845293ce Signed-off-by: Jakub Dudycz Issue-ID: DCAEGEN2-1037 --- .../dcae/collectors/veshv/tests/utils/messages.kt | 66 ++++++++++++---------- .../dcae/collectors/veshv/tests/utils/vesEvents.kt | 13 +++-- 2 files changed, 45 insertions(+), 34 deletions(-) (limited to 'sources/hv-collector-test-utils') diff --git a/sources/hv-collector-test-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/tests/utils/messages.kt b/sources/hv-collector-test-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/tests/utils/messages.kt index 01e11665..90c4aa13 100644 --- a/sources/hv-collector-test-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/tests/utils/messages.kt +++ b/sources/hv-collector-test-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/tests/utils/messages.kt @@ -23,61 +23,67 @@ import com.google.protobuf.ByteString import io.netty.buffer.ByteBuf import io.netty.buffer.ByteBufAllocator import io.netty.buffer.PooledByteBufAllocator -import org.onap.dcae.collectors.veshv.domain.WireFrameMessage.Companion.RESERVED_BYTE_COUNT import org.onap.dcae.collectors.veshv.domain.VesEventDomain -import org.onap.dcae.collectors.veshv.domain.VesEventDomain.PERF3GPP import org.onap.dcae.collectors.veshv.domain.VesEventDomain.OTHER +import org.onap.dcae.collectors.veshv.domain.VesEventDomain.PERF3GPP +import org.onap.dcae.collectors.veshv.domain.WireFrameMessage.Companion.RESERVED_BYTE_COUNT import org.onap.ves.VesEventOuterClass.VesEvent - import java.util.UUID.randomUUID val allocator: ByteBufAllocator = PooledByteBufAllocator.DEFAULT -private fun ByteBuf.writeValidWireFrameHeaders() { +private fun validWireFrame() = allocator.buffer().run { writeByte(0xAA) // always 0xAA writeByte(0x01) // major version writeByte(0x00) // minor version writeZero(RESERVED_BYTE_COUNT) // reserved - writeShort(0x0001) // content type = GPB + writeShort(0x0001) // content type = GPB +} + +private fun invalidWireFrame() = allocator.buffer().run { + writeByte(0xAA) // always 0xAA + writeByte(0x00) // invalid major version + writeByte(0x00) // minor version + writeZero(RESERVED_BYTE_COUNT) // reserved + writeShort(0x0001) // content type = GPB +} + +fun garbageFrame(): ByteBuf = allocator.buffer().run { + writeBytes("the meaning of life is &@)(*_!".toByteArray()) } fun vesWireFrameMessage(domain: VesEventDomain = OTHER, id: String = randomUUID().toString(), - eventFields: ByteString = ByteString.EMPTY): ByteBuf = - vesWireFrameMessage(vesEvent(domain, id, eventFields)) - -fun vesWireFrameMessage(vesEvent: VesEvent) = - allocator.buffer().run { - writeValidWireFrameHeaders() + eventFields: ByteString = ByteString.EMPTY, + vesEventListenerVersion: String = "7.0.2"): ByteBuf = + vesWireFrameMessage(vesEvent(domain, id, eventFields, vesEventListenerVersion)) +fun vesWireFrameMessage(vesEvent: VesEvent): ByteBuf = + validWireFrame().run { val gpb = vesEvent.toByteString().asReadOnlyByteBuffer() writeInt(gpb.limit()) // ves event size in bytes - writeBytes(gpb) // ves event as GPB bytes + writeBytes(gpb) // ves event as GPB bytes } -fun wireFrameMessageWithInvalidPayload(): ByteBuf = allocator.buffer().run { - writeValidWireFrameHeaders() - - val invalidGpb = "some random data".toByteArray(Charsets.UTF_8) - writeInt(invalidGpb.size) // ves event size in bytes - writeBytes(invalidGpb) -} - -fun garbageFrame(): ByteBuf = allocator.buffer().run { - writeBytes("the meaning of life is &@)(*_!".toByteArray()) -} +fun messageWithInvalidWireFrameHeader(vesEvent: VesEvent = vesEvent()): ByteBuf = + invalidWireFrame().run { + val gpb = vesEvent.toByteString().asReadOnlyByteBuffer() + writeInt(gpb.limit()) // ves event size in bytes + writeBytes(gpb) // ves event as GPB bytes + } -fun invalidWireFrame(): ByteBuf = allocator.buffer().run { - writeByte(0xAA) - writeByte(0x01) // version major - writeByte(0x01) // version minor -} +fun wireFrameMessageWithInvalidPayload(): ByteBuf = + validWireFrame().run { + val invalidGpb = "some random data".toByteArray(Charsets.UTF_8) + writeInt(invalidGpb.size) // ves event size in bytes + writeBytes(invalidGpb) + } -fun vesMessageWithPayloadOfSize(payloadSizeBytes: Int, domain: VesEventDomain = PERF3GPP): ByteBuf = +fun messageWithPayloadOfSize(payloadSizeBytes: Int, domain: VesEventDomain = PERF3GPP): ByteBuf = vesWireFrameMessage( domain = domain, eventFields = ByteString.copyFrom(ByteArray(payloadSizeBytes)) ) - +fun messageWithInvalidListenerVersion() = vesWireFrameMessage(vesEventListenerVersion = "invalid") \ No newline at end of file diff --git a/sources/hv-collector-test-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/tests/utils/vesEvents.kt b/sources/hv-collector-test-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/tests/utils/vesEvents.kt index 569f1a90..cf30d2ce 100644 --- a/sources/hv-collector-test-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/tests/utils/vesEvents.kt +++ b/sources/hv-collector-test-utils/src/main/kotlin/org/onap/dcae/collectors/veshv/tests/utils/vesEvents.kt @@ -32,8 +32,12 @@ import java.util.UUID.randomUUID fun vesEvent(domain: VesEventDomain = PERF3GPP, id: String = randomUUID().toString(), - eventFields: ByteString = ByteString.EMPTY -): VesEventOuterClass.VesEvent = vesEvent(commonHeader(domain, id), eventFields) + eventFields: ByteString = ByteString.EMPTY, + vesEventListenerVersion: String = "7.0.2" +): VesEventOuterClass.VesEvent = vesEvent( + commonHeader(domain, id, vesEventListenerVersion), + eventFields +) fun vesEvent(commonEventHeader: CommonEventHeader, eventFields: ByteString = ByteString.EMPTY): VesEventOuterClass.VesEvent = @@ -44,8 +48,9 @@ fun vesEvent(commonEventHeader: CommonEventHeader, fun commonHeader(domain: VesEventDomain = PERF3GPP, id: String = randomUUID().toString(), - priority: Priority = Priority.NORMAL, - vesEventListenerVersion: String = "7.0.2"): CommonEventHeader = + vesEventListenerVersion: String = "7.0.2", + priority: Priority = Priority.NORMAL +): CommonEventHeader = CommonEventHeader.newBuilder() .setVersion("sample-version") .setDomain(domain.domainName) -- cgit 1.2.3-korg