diff --git a/relationships/synthesis/EXT-SERVICE-to-INFRA-AWSMQBROKER.yml b/relationships/synthesis/EXT-SERVICE-to-INFRA-AWSMQBROKER.yml new file mode 100644 index 000000000..f7bf545df --- /dev/null +++ b/relationships/synthesis/EXT-SERVICE-to-INFRA-AWSMQBROKER.yml @@ -0,0 +1,128 @@ +relationships: + - name: extServiceConsumesAwsMqBroker1_20 + version: "1" + origins: + - Distributed Tracing + - OpenTelemetry + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: span.kind + anyOf: [ "consumer", "server" ] + - attribute: messaging.system + anyOf: [ "rabbitmq", "activemq" ] + - attribute: net.peer.name + present: true + regex: "^[^\\.]+\\.mq\\.[^\\.]+\\.amazonaws\\.com" + relationship: + expires: P75M + relationshipType: CONSUMES + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: AWSMQBROKER + fields: + - field: endpoint + attribute: net.peer.name + + - name: extServiceProducesAwsMqBroker1_20 + version: "1" + origins: + - Distributed Tracing + - OpenTelemetry + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: span.kind + anyOf: [ "producer", "client" ] + - attribute: messaging.system + anyOf: [ "rabbitmq", "activemq" ] + - attribute: net.peer.name + present: true + regex: "^[^\\.]+\\.mq\\.[^\\.]+\\.amazonaws\\.com" + relationship: + expires: P75M + relationshipType: PRODUCES + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: AWSMQBROKER + fields: + - field: endpoint + attribute: net.peer.name + + - name: extServiceConsumesAwsMqBroker1_23 + version: "1" + origins: + - Distributed Tracing + - OpenTelemetry + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: span.kind + anyOf: [ "consumer", "server" ] + - attribute: messaging.system + anyOf: [ "rabbitmq", "activemq" ] + - attribute: server.address + present: true + regex: "^[^\\.]+\\.mq\\.[^\\.]+\\.amazonaws\\.com" + relationship: + expires: P75M + relationshipType: CONSUMES + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: AWSMQBROKER + fields: + - field: endpoint + attribute: server.address + + - name: extServiceProducesAwsMqBroker1_23 + version: "1" + origins: + - Distributed Tracing + - OpenTelemetry + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: span.kind + anyOf: [ "producer", "client" ] + - attribute: messaging.system + anyOf: [ "rabbitmq", "activemq" ] + - attribute: server.address + present: true + regex: "^[^\\.]+\\.mq\\.[^\\.]+\\.amazonaws\\.com" + relationship: + expires: P75M + relationshipType: PRODUCES + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: AWSMQBROKER + fields: + - field: endpoint + attribute: server.address diff --git a/relationships/synthesis/EXT-SERVICE-to-INFRA-MQBROKER.yml b/relationships/synthesis/EXT-SERVICE-to-INFRA-MQBROKER.yml deleted file mode 100644 index 0cf5e1410..000000000 --- a/relationships/synthesis/EXT-SERVICE-to-INFRA-MQBROKER.yml +++ /dev/null @@ -1,50 +0,0 @@ -relationships: - - name: extServiceConsumesAwsMqBroker - version: "1" - origins: - - Distributed Tracing - - OpenTelemetry - conditions: - - attribute: eventType - anyOf: [ "Span" ] - - attribute: span.kind - anyOf: [ "consumer" ] - - attribute: messaging.system - anyOf: [ "rabbitmq", "activemq" ] - relationship: - expires: P75M - relationshipType: CONSUMES - source: - extractGuid: - attribute: entity.guid - target: - lookupGuid: - candidateCategory: AWSMQBROKER - fields: - - field: endpoint - attribute: server.address - - - name: extServiceProducesAwsMqBroker - version: "1" - origins: - - Distributed Tracing - - OpenTelemetry - conditions: - - attribute: eventType - anyOf: [ "Span" ] - - attribute: span.kind - anyOf: [ "producer" ] - - attribute: messaging.system - anyOf: [ "rabbitmq", "activemq" ] - relationship: - expires: P75M - relationshipType: PRODUCES - source: - extractGuid: - attribute: entity.guid - target: - lookupGuid: - candidateCategory: AWSMQBROKER - fields: - - field: endpoint - attribute: server.address diff --git a/relationships/synthesis/EXT-SERVICE-to-KAFKATOPIC.yml b/relationships/synthesis/EXT-SERVICE-to-KAFKATOPIC.yml index 914306023..bb47c5df2 100644 --- a/relationships/synthesis/EXT-SERVICE-to-KAFKATOPIC.yml +++ b/relationships/synthesis/EXT-SERVICE-to-KAFKATOPIC.yml @@ -1,13 +1,23 @@ relationships: - - name: extServiceProducesAwsMskTopic + - name: extServiceProducesAwsMskTopic1_20 version: "1" origins: - Distributed Tracing + - OpenTelemetry conditions: - attribute: eventType anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] - attribute: span.kind - anyOf: [ "producer" ] + anyOf: [ "producer", "client" ] + - attribute: net.peer.name + present: true + regex: "^[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.kafka\\.[^\\.]+\\.amazonaws\\.com:[0-9]+.*" + - attribute: messaging.destination.name + present: true relationship: expires: P75M relationshipType: PRODUCES @@ -20,7 +30,85 @@ relationships: fields: - field: clusterName capture: - attribute: server.address + attribute: net.peer.name + regex: "^[^\\.]+\\.([^\\.]+)\\.[^\\.]+\\.[^\\.]+\\.kafka\\.[^\\.]+\\.amazonaws\\.com:[0-9]+.*" + - field: region + capture: + attribute: net.peer.name + regex: "^[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.kafka\\.([^\\.]+)\\.amazonaws\\.com:[0-9]+.*" + - field: topic + attribute: messaging.destination.name + + - name: extServiceConsumesAwsMskTopic1_20 + version: "1" + origins: + - Distributed Tracing + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: span.kind + anyOf: [ "consumer", "server" ] + - attribute: net.peer.name + present: true + regex: "^[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.kafka\\.[^\\.]+\\.amazonaws\\.com:[0-9]+.*" + - attribute: messaging.destination.name + present: true + relationship: + expires: P75M + relationshipType: CONSUMES + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: KAFKATOPIC + fields: + - field: clusterName + capture: + attribute: net.peer.name + regex: "^[^\\.]+\\.([^\\.]+)\\.[^\\.]+\\.[^\\.]+\\.kafka\\.[^\\.]+\\.amazonaws\\.com:[0-9]+.*" + - field: region + capture: + attribute: net.peer.name + regex: "^[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.kafka\\.([^\\.]+)\\.amazonaws\\.com:[0-9]+.*" + - field: topic + attribute: messaging.destination.name + + - name: extServiceProducesAwsMskTopic1_23 + version: "1" + origins: + - Distributed Tracing + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: span.kind + anyOf: [ "producer", "client" ] + - attribute: server.address + present: true + regex: "^[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.kafka\\.[^\\.]+\\.amazonaws\\.com:[0-9]+.*" + - attribute: messaging.destination.name + present: true + relationship: + expires: P75M + relationshipType: PRODUCES + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: KAFKATOPIC + fields: + - field: clusterName + capture: + attribute: server.address regex: "^[^\\.]+\\.([^\\.]+)\\.[^\\.]+\\.[^\\.]+\\.kafka\\.[^\\.]+\\.amazonaws\\.com:[0-9]+.*" - field: region capture: @@ -29,15 +117,24 @@ relationships: - field: topic attribute: messaging.destination.name - - name: extServiceConsumesAwsMskTopic + - name: extServiceConsumesAwsMskTopic1_23 version: "1" origins: - Distributed Tracing conditions: - attribute: eventType anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] - attribute: span.kind - anyOf: [ "consumer" ] + anyOf: [ "consumer", "server" ] + - attribute: server.address + present: true + regex: "^[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.[^\\.]+\\.kafka\\.[^\\.]+\\.amazonaws\\.com:[0-9]+.*" + - attribute: messaging.destination.name + present: true relationship: expires: P75M relationshipType: CONSUMES diff --git a/relationships/synthesis/EXT-SERVICE-to-MEMCACHED.yml b/relationships/synthesis/EXT-SERVICE-to-MEMCACHED.yml index 206b53688..0ff7d9634 100644 --- a/relationships/synthesis/EXT-SERVICE-to-MEMCACHED.yml +++ b/relationships/synthesis/EXT-SERVICE-to-MEMCACHED.yml @@ -1,13 +1,89 @@ relationships: - - name: extServiceCallsMemcached + - name: extServiceCallsMemcached1_20 version: "1" origins: - Distributed Tracing + - OpenTelemetry conditions: - attribute: eventType - anyOf: [ "Span"] - - attribute: db.system.name + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: db.system anyOf: [ "memcached" ] + - attribute: net.peer.name + present: true + regex: " .*\\.cache\\.amazonaws\\.com" + - attribute: net.peer.port + present: true + relationship: + expires: P75M + relationshipType: CALLS + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: MEMCACHED + fields: + - field: endpoint + attribute: net.peer.name + - field: port + attribute: net.peer.port + + - name: extServiceCallsMemcached1_20_Default_Port + version: "1" + origins: + - Distributed Tracing + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: db.system + anyOf: [ "memcached" ] + - attribute: net.peer.name + present: true + regex: " .*\\.cache\\.amazonaws\\.com" + - attribute: net.peer.port + present: false + relationship: + expires: P75M + relationshipType: CALLS + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: MEMCACHED + fields: + - field: endpoint + attribute: net.peer.name + - field: port + attribute: 11211 # Default port for memcached + + - name: extServiceCallsMemcached1_23 + version: "1" + origins: + - Distributed Tracing + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: db.system + anyOf: [ "memcached" ] + - attribute: server.address + present: true + regex: " .*\\.cache\\.amazonaws\\.com" + - attribute: server.port + present: true relationship: expires: P75M relationshipType: CALLS @@ -22,3 +98,36 @@ relationships: attribute: server.address - field: port attribute: server.port + + - name: extServiceCallsMemcached1_23_Default_Port + version: "1" + origins: + - Distributed Tracing + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: newrelic.source + anyOf: [ "api.traces.otlp" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: db.system + anyOf: [ "memcached" ] + - attribute: server.address + present: true + regex: " .*\\.cache\\.amazonaws\\.com" + - attribute: server.port + present: false + relationship: + expires: P75M + relationshipType: CALLS + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: MEMCACHED + fields: + - field: endpoint + attribute: server.address + - field: port + attribute: 11211 # Default port for memcached \ No newline at end of file