09 Oct 2023 11:12 AM - last edited on 24 Jan 2024 11:44 AM by Michal_Gebacki
Hi everyone,
is that possible to recreate the chart made in the data explorer session by means of the new dashboard in grail?
The querry that i'm using is this:
calc:service.autorizzatorerequestcount:splitBy("Dimension"):sort(value(auto,descending)):limit(20)
where autorizzatorerequestcount is a custom metric splitter by the dimension Dimension...
Obtaining this graph:
I can't find any DQL that fetch those data, is there any way to achive such result?
Thanks,
Andrea
Solved! Go to Solution.
13 Dec 2023 12:22 PM
Hello @andreaCaria ,
Have you already found the answer to your questions? Let me know; if not, I'll look for someone to help. And if yes - maybe you would like to share the solution with the Community? 😉
04 Jan 2024 01:51 PM
Hi @andreaCaria.
Calculated Service metrics are not available in Grail as of yet but will be in the future.
These are the current metrics, but you can get these from our API if required - https://docs.dynatrace.com/docs/observe-and-explore/metrics/built-in-metrics-on-grail
SDK - https://developer.dynatrace.com/reference/sdks/client-classic-environment-v2/#query
This JavaScript snippet below will give you the sum of your Calculated Service Metric in a single value. You can tweak the JavaScript to your needs as required:
import { metricsClient } from '@dynatrace-sdk/client-classic-environment-v2'; // Function to calculate the sum of numbers within values, replacing nulls with 0 function calculateSumOfValues(data) { let totalSum = 0; data.forEach(service => { service.values.forEach(value => { totalSum += value !== null ? value : 0; }); }); return totalSum; } export default async function fetchMetrics() { // Assuming dt_timeframe_from holds the timeframe from your site const queryParameters = { acceptType: "application/json; charset=utf-8", metricSelector: "**********", //Amend to your Advanced Data Explorer Query from: $dt_timeframe_from, // Using template literal to interpolate the variable resolution: "10m" // Add other parameters as needed: entitySelector, to, etc. }; try { const data = await metricsClient.query(queryParameters); // Calculate the sum of numbers within values, replacing nulls with 0 const totalSum = calculateSumOfValues(data.result[0].data); console.log("Total sum of values:", totalSum); // Output the total sum // Returning the fetched data and the totalSum with the name "totalSum" return { data, totalSum }; } catch (error) { // Handle the error gracefully console.error("Error fetching metrics:", error); throw error; } }
Thanks,
Lawrence