Dashboarding
Dynatrace dashboards, notebooks, and data explorer explained.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

New Dashboards - Widget Data based on various Widgets

Joao1
Contributor

Hello,

Let's say i have 30 widgets on a Dashboard. I then create a new one that is going to be the summary of the 30 widgets.

 

These 30 widgets will give a state, be it healthy or unhealthy. Is it possible for this summary widget to represent the Healthy on Unhealthy states of these 30 widgets?

 

Or do i have to do this by creating a custom metric representing the state of each widget dql executions with dimensions to then represent that metric in the summary widget?

 

Thanks in advance,

Joao

9 REPLIES 9

You can't get the result of all those widgets, you should build a DQL query summarizing it in 1 query (which i think would be a very big query 😉 )

#Performance matter!

Joao1
Contributor

Hi @michiel_otten , you can only imagine having 30 widgets with 100+ lines of DQL Code can be too much for one single DQL Query right? A different issue is that the amount of widgets can/will increase in time.

Do you still recommend using a single DQL query summarizing according to the previous phrase, or another solution?

 

maybe have a workflow validate each DQL Widget and then  based on all the widgets, create a custom metric that will have the values of Healthy/Unhealthy of each DQL Widget with custom dimensions (Of course same dimensions for each Widget)?

 

Thanks in advance!

Workflow (or some other automation integration of course) seems like a valid way 🙂 Fromout the workflow you can just capture each DQL result and ingest other metrics or events. I'm not sure what the exact use case is, but depending on it you can choose to ingest metrics (timeseries) or just plain events (HEALTHY / UNHEALTHY).

KR.
Michiel

#Performance matter!

Joao1
Contributor

@michiel_otten how do you capture each DQL result in a workflow?

You would be able to execute a DQL statement per widget DQL. I would imagine you could than manipulate this statement a bit to say Healthy or Unhealthy depending on the result. The DQL result would then be usage from out a workflow action result. See this.

As an alternative (and maybe a better way) you can use the custom Javascript part to manually execute a DQL statement, capture the DQL result and post a metric or event back. Documentation for this is in the Dynatrace Developer docs which can be found here f.e.

#Performance matter!

Joao1
Contributor

I understand what you said. But i have a question. When you say able to execute a DQL statement, is to execute each widget DQL or do i need to extract the DQL of each widget and put it in the workflow or the javascript?

 

Does the custom Javascript part grab the Dashboard Widgets DQL do execute or?

Not completely sure what the difference of "Each Widget DQL" and "the DQL of each widget" is but if you use a workflow to get information of DQL you'll need the exact DQL statement (for the normal DQL action and the Javascript).

So f.e. if you have a widget in your dashboard displaying the hosts from a  average CPU perspective and you want to capture this in a workflow, you'll need to execute:

timeseries avg = avg( dt.host.cpu.load), by: { dt.entity.host } 

 

I can image you're queries are more intense and bigger, but hopefully you'll understand what I'm trying to say.

Best regards,
Michiel

#Performance matter!

Joao1
Contributor

Hey @michiel_otten but that's the thing, i mean:

 

If i have two widgets with DQL (be it whatever DQL), and if i want to grab the values of it's execution, i thought i could grab the execution of the widget itself instead of having to manually insert the DQL in a workflow action and executing it.

 

I was trying to centralize the information in one place, in this case in the dashboard widgets, so that i could have like metric that would be able to be used in different dashboards. (and this metric would have only 1 origin) instead of having to configure the widgets DQL every time in every dashboard.

Hi there,

The workflow and it's actions is solely used to create another new metric for a certain query storing it's result by dimension. This newly cresated metric is then free to be used in every dashboard, notebook, workflow and api call you can do in the platform.

In a Dynatrace dashboard you insert "Tiles". These tiles do stuff, f.e. execute DQL Statements but their main target is to visualize data. The result of the tile is the DQL query itself. The centralized place of information is Grail where the data actually resides. If you use a workflow to create a metric you have to load the information, which is the DQL query itself and not the visualization layer (e.g. tile in dashboard).

 

So you have:

1. A dashboard with 20 tiles visualizing the result of 20 different DQL queries in a certain tile.
2. A tile displaying the summary of the metric you pushed into grail via a workflow or another API.

These tiles can be copied over to different dahsboards an used again. The problem / challenge is more with getting the right data in Grail thus in your Tiles.

Another alternative is building an own Dynatrace APP where you can basically do whatever you like with the data you pull out of Grail. That's more work, but a lot more flexible and I don't this it serves the purpose the best since you would like people to be able to copy paste.

Hope this makes sense,

Michiel

#Performance matter!

Featured Posts