You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana中向WebSocket API发送数据?本地配置无数据接收求助

问题分析与解决

你的本地WebSocket服务仅实现了简单的echo逻辑,但Golioth WebSocket数据源需要接收符合时序数据规范的JSON格式内容才能在Grafana中解析展示,普通字符串无法被识别。

解决方案步骤

1. 修改WebSocket服务,输出合规的时序数据

将服务端改为定时发送包含时间戳和指标值的JSON数据,示例代码:

# ----------- 修改后的 server.py-----------
import asyncio
import websockets
import json
from datetime import datetime

async def send_metrics(websocket, path):
    # 保持连接,定时发送时序数据
    while True:
        # 构造符合Grafana解析要求的JSON结构
        metric_data = {
            "timestamp": int(datetime.now().timestamp() * 1000),  # 毫秒级时间戳
            "value": 25 + (asyncio.get_event_loop().time() % 10),  # 模拟波动数值
            "metric": "temperature"
        }
        await websocket.send(json.dumps(metric_data))
        await asyncio.sleep(2)  # 每2秒发送一次

asyncio.get_event_loop().run_until_complete(websockets.serve(send_metrics, 'localhost', 8765))
asyncio.get_event_loop().run_forever()

2. 配置Grafana查询规则

在Grafana的查询编辑界面:

  • 选择对应的WebSocket数据源
  • 在查询配置中,指定时间字段为timestamp,数值字段为value,标签字段可设为metric
  • 切换到表格/图表视图,即可看到实时更新的数据

关键说明

Golioth WebSocket数据源默认期望数据是时序结构,必须包含可识别的时间戳和数值字段,普通文本或非结构化JSON无法被自动解析。如果需要自定义数据格式,需在数据源配置中调整字段映射规则。

内容的提问来源于stack exchange,提问作者Parting

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 14:21:02