How to display CloudWatch data and Azure monitor data in different rows of same table

My requirement likes below table, a few of applications runs on AWS or Azure, I hope to let each row shows single application’s KPIs such as average responetime sourced from CloudWatch datasource or Azure monitor. I already realized the KPI name has different metrics name in original data source, such as responetime is called ‘Target Response Time’ in CloudWatch while it’s called Application Gateway Total Time in Azure monitor.
The table sample should be likes below:
|AppName | Cloud | ResponseTime | CPU Utilization|
|MyApp1 | AWS | 54ms | 67%|
|MyApp2 | Azure | 121ms | 72%|

Each application has its own data source.

The challenges I have so far:

  1. How to hide ‘Time’ column - this column automatically shows in table and there is no option to hide it.
  2. How to add constant string as AppName and Cloud in table for each kind of data source? And the table data should be group by them.
  3. How to rename the fields in query result.

you can specify two datasources and use a concatenate transformation to join the data

  1. try an organize fields transformations to hide fields you don’t want to see
  2. you can try use a variable
  3. you can use the same organize fields transformation to rename
1 Like

thanks for quick support, 1 and 3 are resolved per your feedback. I will learn more about 2 then have a try. New challenge comes that how to merge two query result into one table. What I need likes:
Row1
Row2
Row3

Row1 and Row2 come from Cloud Watch, Row three comes from Azure monitor.

you need to play with join / merge / concatenate transformations to see which one will work for you

I tried all of them, none works for this purpose.

can you share a table view of your two sets of query data?

‘series to rows’ transformation works for two mysql queries like:
select ‘adc’ as AAA;
select ‘bcd’ as AAA;
then the result will be:
AAA
AAA

The reason that doesn’t works in this requirement probably are the original field names in two data sources are not same, hopefully Grafana can support this kind of ‘Merge’ by field alias.

After several days trying, I don’t think technical feasible for this requirement. What I have tried:

  1. Set several metrics such as Target ResponseTime,CPU Utilization, ActiveConnection using same datasource, for exmaple App1’s dataousrce.
  2. Use concatenate transformation to show all metrics as different columns in same table.
  3. Use reduce transformation to calculate average value of each metrics.
  4. Use a calculation transformation to get a constant value such 1 or 0, then set filed mapping property to map it to App1 Name string.
  5. Use organize transformation to rename fields and hide fields by demand.
    Then I get a row with showing different metrics of App1, it seems good but the only remaining challenge is how should I show others’ application metrics in rows of this table?