diff --git a/relationships/synthesis/EXT-SERVICE-to-INFRA-AZUREREDISCACHE.yml b/relationships/synthesis/EXT-SERVICE-to-INFRA-AZUREREDISCACHE.yml new file mode 100644 index 000000000..d167e8ea1 --- /dev/null +++ b/relationships/synthesis/EXT-SERVICE-to-INFRA-AZUREREDISCACHE.yml @@ -0,0 +1,38 @@ +relationships: + - name: extServiceCallsAzureRedisCache + version: "1" + entitlements: + matching: anyOf + values: + - auto_discovery_entities_ccu + - auto_discovery_entities_ccu_discount_usage + - azure_auto_discovery + - azure_auto_discovery_discount_usage + origins: + - Distributed Tracing + - OpenTelemetry + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: db.system.name + anyOf: [ "redis" ] + - attribute: server.address + regex: '^[a-z0-9\-]+\.redis\.cache\.windows\.net$' + - attribute: server.port + present: true + relationship: + expires: PT75M + relationshipType: CALLS + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: AZUREREDISCACHE + fields: + - field: endpoint + attribute: server.address + - field: port + attribute: server.port \ No newline at end of file diff --git a/relationships/synthesis/EXT-SERVICE-to-INFRA-AZUREREDISENTERPRISECACHE.yml b/relationships/synthesis/EXT-SERVICE-to-INFRA-AZUREREDISENTERPRISECACHE.yml new file mode 100644 index 000000000..175598abc --- /dev/null +++ b/relationships/synthesis/EXT-SERVICE-to-INFRA-AZUREREDISENTERPRISECACHE.yml @@ -0,0 +1,34 @@ +relationships: + - name: extServiceCallsAzureRedisEnterpriseCache + version: "1" + entitlements: + matching: anyOf + values: + - auto_discovery_entities_ccu + - auto_discovery_entities_ccu_discount_usage + - azure_auto_discovery + - azure_auto_discovery_discount_usage + origins: + - Distributed Tracing + - OpenTelemetry + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: db.system.name + anyOf: [ "redis" ] + - attribute: server.address + regex: '^[a-z0-9\-]+\.[a-z0-9\-]+\.redisenterprise\.cache\.azure\.net$' + relationship: + expires: PT75M + relationshipType: CALLS + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: AZUREREDISENTERPRISECACHE + fields: + - field: endpoint + attribute: server.address \ No newline at end of file diff --git a/relationships/synthesis/EXT-SERVICE-to-INFRA-AZURESERVICEBUSNAMESPACE.yml b/relationships/synthesis/EXT-SERVICE-to-INFRA-AZURESERVICEBUSNAMESPACE.yml new file mode 100644 index 000000000..babd27f01 --- /dev/null +++ b/relationships/synthesis/EXT-SERVICE-to-INFRA-AZURESERVICEBUSNAMESPACE.yml @@ -0,0 +1,77 @@ +relationships: + # OTel (EXT-SERVICE) -> Azure Service Bus namespace. NR-573289. + # Namespace-level only: Azure autodiscovery creates one AZURESERVICEBUSNAMESPACE entity per namespace; + # there are no per-queue/per-topic entities. Both queue and topic spans carry the same server.address + # (the namespace FQDN), so both resolve to the namespace entity. messaging.destination.name (queue/topic) + # is not used. Mirrors the APM PRODUCES/CONSUMES split via span.kind, using OTel messaging conventions. + - name: extServiceProducesToAzureServiceBusNamespace + version: "1" + entitlements: + matching: anyOf + values: + - auto_discovery_entities_ccu + - auto_discovery_entities_ccu_discount_usage + - azure_auto_discovery + - azure_auto_discovery_discount_usage + origins: + - Distributed Tracing + - OpenTelemetry + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: messaging.system + anyOf: [ "servicebus" ] + - attribute: server.address + regex: '^[a-z0-9\-]+\.servicebus\.windows\.net$' + - attribute: span.kind + anyOf: [ "producer" ] + relationship: + expires: PT75M + relationshipType: PRODUCES + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: AZURESERVICEBUSNAMESPACE + fields: + - field: endpoint + attribute: server.address + + - name: extServiceConsumesFromAzureServiceBusNamespace + version: "1" + entitlements: + matching: anyOf + values: + - auto_discovery_entities_ccu + - auto_discovery_entities_ccu_discount_usage + - azure_auto_discovery + - azure_auto_discovery_discount_usage + origins: + - Distributed Tracing + - OpenTelemetry + conditions: + - attribute: eventType + anyOf: [ "Span" ] + - attribute: entity.type + anyOf: [ "SERVICE" ] + - attribute: messaging.system + anyOf: [ "servicebus" ] + - attribute: server.address + regex: '^[a-z0-9\-]+\.servicebus\.windows\.net$' + - attribute: span.kind + anyOf: [ "consumer" ] + relationship: + expires: PT75M + relationshipType: CONSUMES + source: + extractGuid: + attribute: entity.guid + target: + lookupGuid: + candidateCategory: AZURESERVICEBUSNAMESPACE + fields: + - field: endpoint + attribute: server.address \ No newline at end of file