标签: statsd

如何配置StatsD和Graphite以在不同的服务器上运行

我一直在寻找这个,但没有找到任何人谈论如何设置和配置StatsD以及Graphite在不同的服务器上进行通信.我目前所有东西都在一个上运行,但我尝试将它们分开是不成功的.

这是我如何设置 StatsD exampleConfig.js

exampleconfig
{
  graphitePort: 2003
, graphiteHost: "(graphite server IP)"
, port: 8125
}
Run Code Online (Sandbox Code Playgroud)

我能想到在另一个盒子上设置的唯一另一件事就是example-client.py.

currently it says this:
CARBON_SERVER = '127.0.0.1'
CARBON_PORT = 2003
Run Code Online (Sandbox Code Playgroud)

我认为它需要留在本地主机与同一服务器上的耳语或石墨进行通信.我有我的防火墙设置来监听2003,并使用数据包转储服务器确实从statsd获取UDP.它似乎没有被碳和石墨消耗掉.

我错过了什么?
还有什么建议用于缩放statsd石墨设置?我现在有自己的statsd和另一台服务器上的石墨+碳+耳语.statsd运行的能力最大还是石墨盒?我想知道这一点,因为我很快就会每天向服务器发送数百万比特的数据进行测试.

amazon-ec2 graphite statsd graphite-carbon

5
推荐指数
1
解决办法
6583
查看次数

汇总来自不同实例的数据

我有一个关于Graphite的问题,我正在使用node.js中的statsD.

我有一台服务器,我将运行几个实例,我想在所有实例中聚合如下的统计信息:

  • 平均响应时间
  • 活动客户端数量

现在每个实例都会获得自己的文件夹,因为它以自己的图形开头,因为代码是:

stats.gauge('requestsPerSecond', reqCounter);
Run Code Online (Sandbox Code Playgroud)

我可以做一些类似的事情stats('/myServ/aggregates', reqCounter);,以便每个实例将其数据发送到石墨中的相同图形,除了使用stats.gauge('requestsPerSecond', reqCounter);?跟踪自己的图形?

graphite statsd

5
推荐指数
1
解决办法
1135
查看次数

登入阈值后,电子邮件提醒,logstash?

我正在使用logstash,elasticsearchkibana分析我的日志.当特定字符串通过emaillogstash中的输出进入日志时,我通过电子邮件发出警报:

email {
        match => [ "Session Detected", "logline,*Session closed*" ]
...........................
}
Run Code Online (Sandbox Code Playgroud)

这很好用.

现在,我想提醒一个字段的计数(超过阈值时):

例如,如果user是字段,我想在独特用户数超过5 时发出警报.

可以通过emaillogstash中的输出完成吗?
请帮忙.

编辑: 正如@Alcanzar告诉我做的那样:

配置文件:

    if [server] == "Server2" and [logtype] == "ABClog" {

        grok{
        match => ["message", "%{TIMESTAMP_ISO8601:timestamp} %{HOSTNAME:server-name} abc\[%{INT:id}\]:
 \(%{USERNAME:user}\) CMD \(%{GREEDYDATA:command}\)"]       
        }   

        metrics {
                meter =>  ["%{user}"]
                add_tag =>  "metric"
            }   

        }
Run Code Online (Sandbox Code Playgroud)

所以根据上面的说法,为了server2abclog我有一个grok模式来解析我的文件和在usergrok解析的字段上我希望应用度量.

我在上面的配置文件中做了这个,但是当我检查logstash控制台时,我得到了奇怪的行为-vv. …

elasticsearch statsd logstash kibana riemann

5
推荐指数
1
解决办法
9089
查看次数

绘制 Graphite 指标中节点随时间变化的唯一计数

给定 StatsD/Graphite 数据点如下所示

stats.counters.post.topic_1.user_1.count
stats.counters.post.topic_1.user_2.count
stats.counters.post.topic_2.user_3.count
stats.counters.post.topic_2.user_4.count
Run Code Online (Sandbox Code Playgroud)

我正在尝试绘制 3 件不同的事情

  • 帖子数量
  • 主题数量
  • 发帖用户数

到目前为止,我已经收到了一些帖子

alias(summarize(sumSeries(stats.counters.post.*.*.count),"1hour"),"Total Posts")
Run Code Online (Sandbox Code Playgroud)

对于主题和用户,我有点卡住了。

我可以通过以下方式获得每个主题的系列/行:

aliasByNode(summarize(groupByNode(stats.counters.post.*.*.count, 3, "sumSeries"), "1hour"), 0)
Run Code Online (Sandbox Code Playgroud)

但是,这给出了每个主题的帖子数,而不是主题数。

我如何获得一段时间内的主题数量?由此,我确信我可以为用户应用同样的方法。

metrics graphite statsd

5
推荐指数
1
解决办法
5051
查看次数

Rails 需要环境配置文件中的语句

在我的config\environments\development.rbconfig\environments\production.rb文件中,我设置了一些全局变量。在下面的示例中,我有Redis一个指向我们的缓存的Statsd实例和一个指向 DataDog 代理的实例。

config.x.cache = Redis.new(url: ENV["CACHE"])  
config.x.statsd = Statsd.new('localhost', 8125)
Run Code Online (Sandbox Code Playgroud)

在 Redis 的情况下,我添加gem 'redis'到我的 gem 文件中,运行bundle install并且一切正常。然而,在 StatsD 的情况下,似乎我还需要require 'statsd'development.rbproduction.rb文件的顶部添加以便能够创建实例。当然,我也添加gem 'dogstatsd-ruby'到我的 gem 文件并运行了bundle install,但这似乎还不够。如果我不在require配置文件的顶部添加该语句,当我尝试运行我的 Rails 应用程序时,我会收到以下错误:

uninitialized constant Statsd (NameError)
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么我必须require只在这种特殊情况下(StatsD)添加语句,或者有更好的方法来做到这一点?谢谢!

ruby ruby-on-rails statsd datadog

5
推荐指数
0
解决办法
239
查看次数

有没有办法从 AWS Lambda 报告自定义 DataDog 指标?

我希望将 Lambda 函数的自定义指标报告给 Datadog。我需要计数器、仪表、直方图等东西。

Datadog文档概述了从 AWS Lambda 报告指标的两个选项:

  • 在日志中打印一行
  • 使用API

上面文档中的细则提到打印方法仅支持计数器和仪表,因此这显然不足以满足我的用例(我还需要直方图)。

现在,第二种方法 - API - 仅支持报告时间序列点,根据 API文档,我假设这些点只是仪表(对吗?) 。

那么,有没有办法从我的 Lambda 函数向 Datadog 报告指标,而不需要在 EC2 中设置 statsd 服务器并使用dogstatsd 调用它?有人能幸运地解决这个问题吗?

lambda amazon-web-services usage-statistics statsd datadog

5
推荐指数
1
解决办法
3050
查看次数

statsd 仪表的用例是什么?

我正在努力理解 statsd 中仪表的概念。请解释它是如何工作的,以及一些何时有用的例子。

文档是不是真的我清楚

设置仪表值。

stat:要设置的仪表的名称。值:仪表的当前值。rate: 一个采样率,一个介于 0 和 1 之间的浮点数。只会在这个百分比的时间内发送数据。statsd 服务器不考虑仪表的采样率。小心使用。delta:是否将其视为 delta 值或绝对值。有关更多详细信息,请参阅仪表类型。

python statsd

5
推荐指数
1
解决办法
5222
查看次数

Envoy 和 statsd 错误:需要节点“id”和“集群”id

我正在尝试配置统计接收器以将统计信息收集到statsd.

我已配置 envoy.yaml 如下:

admin:
  access_log_path: /logs/envoy_access.log
  address:
    socket_address:
      protocol: TCP
      address: 0.0.0.0
      port_value: 8001

stats_sinks:
  name: envoy.statsd
  config:
    tcp_cluster_name: statsd-exporter

static_resources:
  ...


  clusters:

    - name: app
      connect_timeout: 0.25s
      type: strict_dns
      lb_policy: round_robin
      hosts:
        - socket_address:
            address: {{appName}}
            port_value: {{appPort}}

    - name: statsd-exporter
      connect_timeout: 0.25s
      type: strict_dns
      lb_policy: round_robin
      hosts:
        - socket_address:
            address: statsd_exporter
            port_value: 9125
Run Code Online (Sandbox Code Playgroud)

statsd在同一个 docker 网络中构建为容器。

当我使用 Envoy 和 statsd 运行 docker 容器时,Envoy 显示以下错误:

proxy_1            | [2019-05-06 04:50:38.006][27][info][main] [source/server/server.cc:516] exiting
proxy_1            | tcp statsd: …
Run Code Online (Sandbox Code Playgroud)

statsd envoyproxy

5
推荐指数
1
解决办法
2094
查看次数

Airflow 通过 statsd 发送指标,但不是全部

最近我更新了airflow.cfg 以启用Statsd 指标。

我已将此设置注入到airflow.cfg中:

我正在注入这个配置:

AIRFLOW__SCHEDULER__STATSD_ON=True
AIRFLOW__SCHEDULER__STATSD_HOST=HOSTNAME
AIRFLOW__SCHEDULER__STATSD_PORT=9125
AIRFLOW__SCHEDULER__STATSD_PREFIX=airflow
Run Code Online (Sandbox Code Playgroud)

我没有使用标准的 Statsd 服务,而是使用 Statsd 协议的Statsd-exporter,因此据我所知,我可以直接指向 Airflow 将指标发送到 Stats-exporter。默认情况下,它在 9125 端口上工作。

Statsd-exporter 收到指标后,Prometheus 能够定期抓取它们。

一切都好,一切都好。此外,我将映射文件制作到 Statsd-exporter,其中使用了一些正则表达式,但是......我的问题是,当我打开 Statsd-exported(9102 端口)的 WEB UI 时,我看到了部分气流指标,但不是全部!.

文档说明了此处的指标列表

例如,我看到 Airflow 发送:ti_failures、ti_successes、dagbag_size 等。但是完全没有诸如:dag...duration 或 executor.open_slots 等指标。

非常感谢所有玩过 Statsd 和 Airflow 的人,因为我不知道:(

statsd airflow

5
推荐指数
1
解决办法
4681
查看次数

错误:Gunicorn 大师在 120 秒内没有响应。关闭网络服务器。Airflow-Webserver 服务无法启动

我想在 Prometheus 的帮助下监控我的气流工作日志。所以我在互联网上查找,发现 statsd-exporter 可以帮助我。但是,当我在 Airflow.cfg 中添加 statsd-exporter 所需的配置时,服务不会启动。

气流.cfg文件


[scheduler]
statsd_on = True
statsd_host = xxx.xxx.x.xxx
statsd_port = 9125
statsd_prefix = airflow
Run Code Online (Sandbox Code Playgroud)

当我在 Airflow.cfg 中添加这些行后重新启动服务时,它不会重新启动并在日志中抛出上述错误。

当我删除这些行时,它开始完美。

我通过 pip 安装了 statsd 和 statsd-exporter。任何人都可以提出任何更好的方法来做到这一点。

statsd devops prometheus airflow airflow-scheduler

5
推荐指数
0
解决办法
1676
查看次数