12 Dec 2023 11:16 PM
I recently watched "A Practitioners Guide to "Dynatrace AppEngine: Everything thinkable is now possible" https://www.youtube.com/watch?v=D5SDmLx6Aj4. where Stefan Wassebauer did a technical demo of fetching dt.entity.service and getting the called and calling services. I thought I would replicate his work to cement my knowledge. Without the code and some of the DQL being off screen. I started with Notebooks in my environment to make sure I knew where to start.
This is the DQL that I ended up with:
fetch dt.entity.service
| fieldsAdd num_callers = arraySize(called_by[dt.entity.service]), num_called = arraySize(calls[dt.entity.service])
| filter num_callers > 1
| filter num_called > 1
| limit 20
when I added this to my code for app Engine
Solved! Go to Solution.
13 Dec 2023 06:58 AM
@DeeJay ,
Could it be that it's just because you don't have services with both number of callers and called services are greater than 1 in the whort time period?
I would suggest first display the values without increasing the timerange to make sure its correct.
13 Dec 2023 01:58 PM
Thanks for your comment, the issue I am having is caused by an assumption on my part. I was testing my DQL in Notebooks and I assumed the time range was the same as the default in my appEngine app. By default a new Notebook Query Grail on my system is Last 7 days, and clearly in the queryExecutionClient.queryExecute the time range is less.
The other assumption I was making is that a dt.entity.service didn't have a time range but when I did a
describe dt.entity.service in my notebook, I found the lifetime field which is a TIMEFRAME which makes sense now that I think about it.