【问题标题】:Sending statsD metrics with tags from python client从 python 客户端发送带有标签的 statsD 指标
【发布时间】:2018-04-16 08:22:14
【问题描述】:

我正在尝试通过 statsD 从我的 python 应用程序将指标发送到石墨, 我正在使用this client(据我所知是最常见的)。

但我不知道如何发送带有标签的指标。

我试过这个语法(来自here):

c.incr('foo.bar,tag1=val')

还有这个(从here得到的想法):

c.incr('foo.bar;tag1=val')

但似乎没有任何效果。

有没有人成功地从 python 发送带有标签的 statsd 指标?

谢谢

【问题讨论】:

  • 也试过c.incr('foo.bar#tag1=val')没有成功

标签: python graphite statsd telegraf


【解决方案1】:

更新:

看来你现在需要做的就是安装:

pip install statsd-telegraf

here

按预期工作


要从 python statsD 发送标签,你需要安装这个 fork:

https://pypi.org/project/statsd-telegraf/

但是,有两个重要的注意事项:

  1. 不要单独从 PyPI 安装,它有一个未修复的错误
 坏:pip install statsd-tags

从 PyPI 安装后,直接从 GitHub 安装,使用正确的用户名(在上面的 PyPI 链接中,显示了错误的链接)

 好:pip install statsd-tags
          pip install -e git+https://github.com/Granitosaurus/statsd-telegraf#egg=statsd-telegraf
  1. PyPI 中关于如何使用标签的文档是错误的。

标签应该是一个字典。例如:

导入统计数据 c = statsd.StatsClient('localhost', 8125, prefix='foo') c.incr('bar', tags = {"key1": "value1", "key2":"value2"})

【讨论】:

  • 您不需要特殊的 StatsD 客户端。 Telegraf 的 StatsD 插件/接口通过用逗号将标签与名称分隔来接受标签,例如:servers.health.cpu,ip_address=111.111.111.111,server_name=pelican
【解决方案2】:

this issue中看到的python客户端似乎没有标签支持

我寻找了一个包含标签支持但没有运气的不同客户端。

我认为最好的选择是从this rejected pull request.获取代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2021-12-05
    相关资源
    最近更新 更多