我在 Heroku 上有一个 Rails 应用程序,其中包含将 UDP 数据包(在某些用户操作上)发送到 HostedGraphite 的代码(我只是在试用免费版本)。
我已经将“socket.send”调用指向了我自己托管在其他地方的 UDP 服务器,所以我知道 UDP 数据包是从 Heroku 发送的。
我知道 HostedGraphite 的 API 密钥是正确的(检查了无数次)。
我还修改了发送数据的格式——包括和不包括行尾的“\n”(文档指定包含“\n”)。
我也尝试从我的开发环境发送数据包。
最后我尝试了这个:
echo "YOUR-API-KEY.test 1" | nc carbon.hostedgraphite.com 2003
我发送数据包的红宝石代码是:
sock.send(data, 0, 'carbon.hostedgraphite.com', 2003)
从文档中可以清楚地看出,Ruby 的 UDPSocket 可以处理主机名而不是 IP 地址,所以这肯定不是问题。
好的,可能没有任何 UDP 数据包真正到达……不过似乎不太可能。
除此之外,我处于死胡同,我不知道还能尝试什么。有没有其他人成功使用过这项服务(尤其是在 Heroku 上托管的 Rails 应用程序)?我开始怀疑也许我需要付钱给他们...
接下来我将把它重写为 POST to HostedGraphite(但我仍然提出这个问题,因为它是 UDP 特定的)。
我还尝试使用 curl 请求进行 POST(无法添加更多链接,因此您必须自己找到该文档),再一次,HostedGraphite 方面没有出现任何内容(您可以在其中搜索您的指标)。