16 Jun 2025 05:57 PM
Hi,
I work as a developer for a enterprise-level organization on the SRE team. My team builds a large/mature internal web application that our company developments teams use to track required resiliency tasks such as implement connection pooling, circuit breakers, caching etc.
We use the Dynatrace API to construct entity relationships between our microservices but right now we only have it mapped at a single level. The relationships we are trying to get to is displayed in Dynatrace through Service Flow and SmartScape. However since these two capabilities are not accessible via API (I think?) our desired state is not easily obtainable.
Using the entities API we know the direct upstream and downstream entity relationships which we use to correlate dependencies for our application. I need help understanding how we can determine these relationships at multiple levels using the Dynatrace API.
Right now all I can think of is querying spans through grail and use the trace/span ids to correlate entities. But this can be an expensive and complex ETL process and I thought it would be good to ask this question in this forum
Here is an example with services A, B, and Database C:
Scenario: A (Root Calling Service ) -> B (Downstream Calling Service) -> C (Database)
Our Current Relationships: A (Root Calling Service) - > B (Downstream Calling Service) and B (Downstream Calling Service) -> C (Database)
Need to implement: A (Service) -> C (Database)
Current Understand using Entities API: This only tells me the direct relationships for a specific entity. It does not tell me that Service A calls Service C indirectly through a downstream service
Service A
Service B
Database/Host C
Final Question:
How can I programmatically find the relationship from DynatraceMetricsController (Root Calling Service A) to the indirect entity (C)