使用Python实现StatsD / Graphite

时间:2014-06-06 22:23:08

标签: python statsd

所以我得到了Etsy的StatsD和Graphite在OS X 10.9.3上工作。

我现在正尝试使用Python实现它们,而我不想使用python-statsd,因为我想在诉诸之前了解如何自行使用该技术到库(如果我以后需要使用Ruby / PHP,那么我就不会理解基本的机制了。)

即。我尝试使用Python将应用程序数据发送到StatsD,然后将在Graphite中显示。

在我的应用程序中,我使用了Steve Ivy python_example.py的精确副本。

在我的代码中,我将增量函数调用如下:

from statsd import StatsdClient
client = StatsdClient()
client.increment('somename.someval')

以下是引发的错误:

File "/Users/bengrunfeld/Desktop/Work/code/wf-ghconsole/console/statsd.py", line 163, in send
udp_sock.sendto(":".join(item).encode('utf-8'), addr)
....
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 234, in _MakeRealSyncCall
raise pickle.loads(response_pb.exception())
RuntimeError: error('illegal IP address string passed to inet_pton',)

以下是udp_sock.sendto发送内容的价值: ('somename.someval:1|c', ('localhost', 8125))

链接到我的代码:https://github.com/bengrunfeld-wf/gae-github-console/blob/statsd/console/statsd.py

1 个答案:

答案 0 :(得分:1)

您的代码看起来不错,但首先要做的是尝试在app引擎之外运行代码。如果他的工作,然后确认应用程序引擎是否会执行UDP - 如果我没记错的话 - 我上次用app引擎实现这个时必须创建一个http代理。