如果您的目标是高频更新发送,那么您可能需要使用 Telegraf 的 WebSocket 输出插件(在 Telegraf v1.19.0 中引入)而不是使用 HTTP 输出插件。WebSocket 避免在来自 Telegraf 的每个请求上运行所有 Grafana HTTP 中间件,从而显着降低 Grafana 后端 CPU 使用率。
在grafana中生成 api key(使用admin role)
eyJrIjoiS3UyOEhVcW1oUmFPVlNkYktkT2swTWJHUEhJUnhDSWUiLCJuIjoibGl2ZSIsImlkIjoxfQ==
macOs安装telegraf
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
brew update
brew install telegraf
使用http方式
配置telegraf_http.conf文件
[agent]
interval = "1s"
flush_interval = "1s"
[[inputs.cpu]]
percpu = false
totalcpu = true
[[outputs.http]]
url = "http://localhost:3000/api/live/push/custom_stream_id"
data_format = "influx"
[outputs.http.headers]
Authorization = "Bearer eyJrIjoiS3UyOEhVcW1oUmFPVlNkYktkT2swTWJHUEhJUnhDSWUiLCJuIjoibGl2ZSIsImlkIjoxfQ=="
启动
telegraf -config telegraf_http.conf
展示结果
效果是从左到右移动的数据展示

使用WebSocket方式
配置telegraf_websocket.conf文件
[agent]
interval = "500ms"
flush_interval = "500ms"
[[inputs.cpu]]
percpu = false
totalcpu = true
[[outputs.websocket]]
url = "ws://localhost:3000/api/live/push/custom_stream_id222"
data_format = "influx"
[outputs.websocket.headers]
Authorization = "Bearer eyJrIjoiS3UyOEhVcW1oUmFPVlNkYktkT2swTWJHUEhJUnhDSWUiLCJuIjoibGl2ZSIsImlkIjoxfQ=="
启动
telegraf -config telegraf_websocket.conf
展示结果与http一致。
其他
Grafana live 可以通过redis实现HA。
参考
Stream metrics from Telegraf to Grafana
https://grafana.com/blog/2021/08/12/streaming-real-time-sensor-data-to-grafana-using-mqtt-and-grafana-live/
Grafana Live 是 Grafana v8.0 中引入的实时消息传递引擎。
使用 Grafana Live,您可以在事件发生后立即将事件数据推送到前端。
这可能是有关仪表板更改、呈现数据的新框架等的通知。 实时功能可以帮助消除许多地方的页面重新加载或轮询,它可以将物联网 (IOT) 传感器或任何其他实时数据流式传输到面板。
本文介绍了如何利用Telegraf的WebSocket输出插件替代HTTP输出插件,以降低Grafana后端CPU使用率。通过在macOS上安装Telegraf,并配置WebSocket输出,可以实现高频更新数据推送。此外,还提到了GrafanaLive的实时消息传递引擎功能,以及通过Redis实现高可用性的可能性。

3010

被折叠的 条评论
为什么被折叠?



