Grafana Agent Monitoring Cpu Utilization

I am trying to monitoring CPU Utilization using Grafana Agent.
I use this query 100 - (avg((irate(node_cpu_seconds_total{mode=“idle”, agent_hostname=“ansible”}[1m]))) * 100) in order to have utilization percent from node_cpu_seconds_total metric.

However I noticed that values seems to be incorrect.
As you can see in image below, same metric from Prometheus and Telegraf has lower values.
I double checked with CloudWatch graphs and Prometheus/Telegraf are quite ok (values similar to CW), while Grafana Agent shows values higher than others.

Senza titolo

So why are there so much differences between Grafana Agent and CW/Prometheus/Telegraf?
What can I do to have similar values?

These are queries I used:

  • Grafana Agent: 100 - (avg((irate(node_cpu_seconds_total{mode=“idle”, agent_hostname=“ansible”}[1m]))) * 100)

  • Prometheus: *100 - (avg(rate(node_cpu_seconds_total{job=“prometheusansible”, mode=“idle”}[1m]))100)

  • Telegraf: 100 - cpu_usage_idle{host=“ansible”, cpu=“cpu-total”}

In my grafana-agent config file I set scrape interval to 30s (otherwise, if I set 1m I can’t use 1m as rate interval, I have to use at least 2m).
I tried to set 15s and values were lower that Prometheus/Telegraf (you can see it in graph, from 10:55 to 11:25).

How can I have similar values for all agents?

Thanks in advance