use of com.google.cloud.videointelligence.v1p2beta1.Entity in project hypertrace-ingester by hypertrace.
the class RabbitMqBackendProviderTest method testBackendOperationAndDestinationResolution.
@Test
public void testBackendOperationAndDestinationResolution() {
String routingKey = "routingkey";
BackendInfo backendInfo = backendEntityEnricher.resolve(getRabbitMqEventMissingOperation(routingKey), structuredTrace, structuredTraceGraph).get();
Entity entity = backendInfo.getEntity();
Assertions.assertEquals(routingKey, entity.getEntityName());
Map<String, AttributeValue> attributes = backendInfo.getAttributes();
assertEquals(Map.of("BACKEND_OPERATION", AttributeValueCreator.create("basic.publish"), "BACKEND_DESTINATION", AttributeValueCreator.create("routingkey.QueueName")), attributes);
}
use of com.google.cloud.videointelligence.v1p2beta1.Entity in project hypertrace-ingester by hypertrace.
the class RabbitMqBackendProviderTest method testBackendDestinationResolutionWithRoutingKey.
@Test
public void testBackendDestinationResolutionWithRoutingKey() {
String routingKey = "routingkey";
BackendInfo backendInfo = backendEntityEnricher.resolve(getRabbitMqDestinationWithRoutingKey(routingKey), structuredTrace, structuredTraceGraph).get();
Entity entity = backendInfo.getEntity();
Assertions.assertEquals(routingKey, entity.getEntityName());
Map<String, AttributeValue> attributes = backendInfo.getAttributes();
assertEquals(Map.of("BACKEND_DESTINATION", AttributeValueCreator.create("routingkey")), attributes);
}
use of com.google.cloud.videointelligence.v1p2beta1.Entity in project hypertrace-ingester by hypertrace.
the class RedisBackendProviderTest method checkBackendEntityGeneratedFromRedisEvent.
@Test
public void checkBackendEntityGeneratedFromRedisEvent() {
Event e = Event.newBuilder().setCustomerId("__default").setEventId(ByteBuffer.wrap("bdf03dfabf5c70f8".getBytes())).setEntityIdList(Arrays.asList("4bfca8f7-4974-36a4-9385-dd76bf5c8824")).setEnrichedAttributes(Attributes.newBuilder().setAttributeMap(Map.of("SPAN_TYPE", AttributeValue.newBuilder().setValue("EXIT").build())).build()).setAttributes(Attributes.newBuilder().setAttributeMap(Map.of("redis.connection", AttributeValue.newBuilder().setValue("redis-cart:6379").build(), "span.kind", AttributeValue.newBuilder().setValue("client").build(), "redis.command", AttributeValue.newBuilder().setValue("GET").build(), "k8s.pod_id", AttributeValue.newBuilder().setValue("55636196-c840-11e9-a417-42010a8a0064").build(), "docker.container_id", AttributeValue.newBuilder().setValue("ee85cf2cfc3b24613a3da411fdbd2f3eabbe729a5c86c5262971c8d8c29dad0f").build(), "FLAGS", AttributeValue.newBuilder().setValue("0").build(), "redis.args", AttributeValue.newBuilder().setValue("key<product_5d644175551847d7408760b3>").build())).build()).setEventName("reactive.redis.exit").setStartTimeMillis(1566869077746L).setEndTimeMillis(1566869077750L).setMetrics(Metrics.newBuilder().setMetricMap(Map.of("Duration", MetricValue.newBuilder().setValue(4.0).build())).build()).setEventRefList(Arrays.asList(EventRef.newBuilder().setTraceId(ByteBuffer.wrap("random_trace_id".getBytes())).setEventId(ByteBuffer.wrap("random_event_id".getBytes())).setRefType(EventRefType.CHILD_OF).build())).build();
BackendInfo backendInfo = backendEntityEnricher.resolve(e, structuredTrace, structuredTraceGraph).get();
final Entity backendEntity = backendInfo.getEntity();
assertEquals("redis-cart:6379", backendEntity.getEntityName());
assertEquals(3, backendEntity.getIdentifyingAttributesCount());
assertEquals(backendEntity.getIdentifyingAttributesMap().get(Constants.getEntityConstant(BackendAttribute.BACKEND_ATTRIBUTE_PROTOCOL)).getValue().getString(), "REDIS");
assertEquals(backendEntity.getIdentifyingAttributesMap().get(Constants.getEntityConstant(BackendAttribute.BACKEND_ATTRIBUTE_HOST)).getValue().getString(), "redis-cart");
assertEquals(backendEntity.getIdentifyingAttributesMap().get(Constants.getEntityConstant(BackendAttribute.BACKEND_ATTRIBUTE_PORT)).getValue().getString(), "6379");
assertEquals(backendEntity.getAttributesMap().get(Constants.getEnrichedSpanConstant(Backend.BACKEND_FROM_EVENT)).getValue().getString(), "reactive.redis.exit");
assertEquals(backendEntity.getAttributesMap().get(Constants.getEnrichedSpanConstant(Backend.BACKEND_FROM_EVENT_ID)).getValue().getString(), "62646630336466616266356337306638");
assertEquals(backendEntity.getAttributesMap().get("redis.command").getValue().getString(), "GET");
assertEquals(backendEntity.getAttributesMap().get("redis.args").getValue().getString(), "key<product_5d644175551847d7408760b3>");
Map<String, AttributeValue> attributes = backendInfo.getAttributes();
assertEquals(Map.of("BACKEND_OPERATION", AttributeValueCreator.create("GET")), attributes);
}
use of com.google.cloud.videointelligence.v1p2beta1.Entity in project hypertrace-ingester by hypertrace.
the class SqsBackendProviderTest method TestOtelSqsBackendResolution.
@Test
public void TestOtelSqsBackendResolution() {
String sqsConnectionString = "https://queue.amazonaws.com/80398EXAMPLE/MyQueue";
URL sqsURL;
try {
sqsURL = new URL(sqsConnectionString);
String sqsHost = sqsURL.getHost();
BackendInfo backendInfo = backendEntityEnricher.resolve(getOtelSqsBackendEvent(sqsConnectionString), structuredTrace, structuredTraceGraph).get();
Entity entity = backendInfo.getEntity();
Assertions.assertEquals(sqsHost, entity.getEntityName());
Map<String, AttributeValue> attributes = backendInfo.getAttributes();
assertEquals(Map.of("BACKEND_OPERATION", AttributeValueCreator.create("receive"), "BACKEND_DESTINATION", AttributeValueCreator.create("QueueName")), attributes);
} catch (MalformedURLException e) {
Assertions.fail("Unable to create URL for given connection string");
}
}
use of com.google.cloud.videointelligence.v1p2beta1.Entity in project hypertrace-ingester by hypertrace.
the class BackendEntityEnricherTest method test_EnrichTrace_BackendResolvedForBrokenFacadeEvent.
@Test
public void test_EnrichTrace_BackendResolvedForBrokenFacadeEvent() {
String eventName = "broken facade event";
String backendName = "peer";
String serviceName = "peer";
String backendId = "peerId";
Map<String, String> identifyingAttributes = Map.of(BACKEND_PROTOCOL_ATTR_NAME, "UNKNOWN", BACKEND_HOST_ATTR_NAME, backendName, BACKEND_PORT_ATTR_NAME, "-1");
Map<String, String> attributes = Map.of("FROM_EVENT", eventName, "FROM_EVENT_ID", HexUtils.getHex(ByteBuffer.wrap(EVENT_ID.getBytes())));
Entity backendEntity = createEntity(EntityType.BACKEND, backendName, identifyingAttributes, attributes, TENANT_ID);
when(edsClient.upsert(eq(backendEntity))).thenReturn(Entity.newBuilder(backendEntity).setEntityId(backendId).putAllAttributes(createEdsAttributes(identifyingAttributes)).build());
// both service and peer service are same
Event e = createApiExitEvent(EVENT_ID, serviceName, backendName).setEventName(eventName).build();
StructuredTrace trace = createStructuredTrace(TENANT_ID, e);
enricher.enrichTrace(trace);
// assert that backend has been created for above event
Assertions.assertNotNull(EnrichedSpanUtils.getBackendId(e));
Assertions.assertNotNull(EnrichedSpanUtils.getBackendName(e));
}
Aggregations