问题标签 [telegraf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
475 浏览

tags - 在 StatsD/InfluxDB 中使用标签:无法获取显示跨标签总价值的查询

我是 Grafana/InfluxDB/Telegraf/StatsD 的新手。我已经成功集成了发送到 Telegraf/InfluxDB 的 StatsD 库,并且可以在 Grafana 中绘制这些数据。

到目前为止,一切都很好。

但是,当我在 StatsD 调用中启用标签时,我遇到了一个奇怪的问题。通过省略 WHERE 子句,我无法让图表正确显示所有标签的总请求数/分钟。我希望在 WHERE 子句中不选择标签会返回该统计数据的所有数据。但图表显示情况并非如此。我希望“所有”图的值总是高于“tag1”图。

我在这里想念什么?

添加标签之前和之后 查询

0 投票
1 回答
4042 浏览

influxdb - 如何在 Grafana 表(或 singlestat)中显示 InfluxDB 测量的最新时间戳?

我正在使用 Telegraf/InfluxDB/Grafana 注册和查看我的服务器的指标。有时,这些组件之一会崩溃,并且指标会停止流入 InfluxDB。

为了能够注意到这种情况何时发生(在使用 Monit 重新启动服务的基础上),我想创建一个 Grafana 仪表板,在该仪表板中,我为每个主机提供了一个单统计面板,显示最新的时间戳(或者更好的是,有多少时间已通过),因为收到最后一个指标。我还想根据它的存在时间为单态的背景着色。我希望能够对任何 InfluxDB 指标执行此操作,因为不同的指标可能有不同的滞后原因。

现在,我在 InfluxQL 中尝试过类似的操作,但我得到一个错误,即查询中必须存在至少一个非时间字段:

SELECT last(time) FROM "system" WHERE "load1" > -1 GROUP BY "host"

如果我尝试将其更改为此,我会收到“多系列错误”:

SELECT last(time), last("load1") FROM "system" GROUP BY "host"

我想要做的事情是不容易做到的,还是我错过了一些明显的东西?

0 投票
2 回答
26341 浏览

plugins - Telegraf:如何添加“输入插件”?

我是 Telegraf 的初学者,我想安装一个“输入插件”。我有配置和 .go 文件,但我不知道如何处理它,即使在 Google 上搜索后也是如此。

先感谢您 !

0 投票
1 回答
322 浏览

logstash-grok - Grok,不同值的日志处理

我有一个日志文件,我正在解析它,telegraf.logparser然后将它发送到 influxdb。问题是,我的日志文件在一个完整的字符串中有不同的字段:

我可以将其中一条线与

但是我怎么做才能同时获得 .. 这样如果没有设置 lrmsid ,它会得到lrmsid=null, and failure="Timeout".. 如果 lrmsid 设置了它lrmsid=12345 and failure=null

0 投票
0 回答
1279 浏览

docker - 是否可以在 Docker 中运行 Telegraf(并获得准确的指标)?

我希望通过主机上的 docker 运行telegraf - influxdb 指标收集器,以收集它们的主机级指标。这实际上很简单:官方的 docker 镜像可以在dockerhub 获得

在一个理想的世界里,一个 dockerized telegraf 将公开与非 dockerized 版本完全相同的指标——但我猜这不太可能。所以我想知道有什么区别(例如,文件描述符的数量)以及如何最小化它们(例如,使用 --priviliged 标志运行 docker 容器会有帮助吗?)

0 投票
1 回答
465 浏览

influxdb - 将日志导入 influxdb 时删除机器人的自定义模式

我使用 Telegraf 和 logparser 插件将 apache 日志导入到 influxdb

我想过滤掉来自机器人的所有日志,所以我使用正则表达式设置了一个自定义模式,该模式只匹配不包含单词“bot”和“crawl”的用户代理:

但它不起作用,零指标被导入到 influxdb

正则表达式似乎没问题,当我在这里测试时它工作正常:http: //grokconstructor.appspot.com/do/match

只是为了确保我尝试了一个更简单的正则表达式:

它有效,telegraf 只从机器人导入日志,但我想要相反,我看不出有什么问题((?!bot|crawl).)*

0 投票
1 回答
839 浏览

javascript - Try/Catch 不能防止崩溃

我正在使用电报机器人框架编写一个非常简单的电报机器人。到目前为止,它使用.hears.on方法回复了一些简单的命令,到目前为止一切正常。

现在我实现了另一个.hears等待字符串的方法Miez。一旦它“听到”这个字符串,它就应该.replyWithDocument包含一个cat-api url。根据 cat-api 的 URL 在每次调用时都会提供一个随机的 cat-gif。到目前为止我的代码:

如您所见,我将其包装.replyWithDocument在 try/catch 块中。我这样做是因为给定的url并不总是提供 gif。有时你只是收到一条Server not found消息。我在 Heroku 上托管机器人,这里是相应错误的日志:

抛出此问题后,机器人会在 Heroku 上停止工作一段时间,然后在 15 分钟左右后再次恢复,我猜它会在一段时间不活动后重新启动。

好吧,归根结底,我不介意 url-call 有时会失败。我不明白为什么我的 try/catch-block 没有捕捉到这种行为。如果我对日志的解释是正确的。

编辑:我想到了一个可能的原因,也许.replyWithDocument是异步调用。所以 HTTP-request 成功了,try 也成功了。但是一旦响应是Server not found方法调用仍然失败。如果这可能是原因,人们将如何处理它?

0 投票
1 回答
3390 浏览

grep - Telegraf - inputs.procstat pgrep 插件问题

电报 v1.0.1

启用[[inputs.procstat]]插件后,我无法再看到telegraf[._](树)指标。

Telegraf 安装成功。进程正在运行。我几乎使用输入插件和输出插件的正常设置。

这就是我得到的:

为什么,当jenkins进程正在运行并pgrep -f jenkins返回有效结果时,日志文件显示错误。

PS: [[inputs.procstat]]插件pgrep -f <exe_value_pattern>用于它的逻辑,如果pattern =使用方法,pgrep <executable>如果exe =使用方法。

完整的/etc/telegraf/telegraf.d/telegraf-custom-host-services-processes.conf文件是:

0 投票
1 回答
3866 浏览

sudo - Telegraf - inputs.procstat procstat Plugin - README.md doc - exe、pid_file、命令行模式用户名

使用:电报 v1.0.1

Telegraf procstat 插件的文档: https ://github.com/influxdata/telegraf/tree/master/plugins/inputs/procstat

我的自定义配置文件:
/etc/telegraf/telegraf.d/my_custom_process_service-telegraf.conf包含:

上面的配置按照语法可以正常工作。这将为我提供以度量名称开头的度量:(procstat.service.process.xx.xx取决于您是否_使用.字符进行转换)-或简单的procstat.service_process.x.x度量。

捕获机器上运行的任何进程exe = "."(它将执行pgrep "."操作并)通过给出process_name=<processes>值来查找机器上运行的所有进程;- 或使用,pid_file = /var/run/jenkins/jenkins.pid(注意:如果您对正在运行服务的用户具有读取权限telegraf)在 Java/其他包装器后面运行的进程;如果您提供pid_file = /var/run/jenkins/jenkins.pid并且 Jenkins 在用户下运行jenkins并且/var/run/jenkins文件夹对 pid 文件本身没有至少“r-x访问 + 读取”r访问权限,那么它将抛出有关“权限被拒绝”的错误”。

问题:

Telegraf 是否可以在SUDO模式下运行(如果可能)?即,如果我无权r-x/r读取进程的 PID 文件并假设有很多这样的进程(在 Java/某些 Wrapper 之后运行,因此exe=xxxx在这种情况下不起作用),那么我必须使用pid_file = ...方法,那么如何我让 Telegraf 使用这种pid_file方法来获取process_nameasjenkinsnexusetc。

PSchmod -R 775_or_755 /var/run在每台主机上都做可能不可行。

如果我确实在 /var/ran/jenkins 文件夹中授予 755 权限并将 644 授予 jenkins.pid 文件,则权限错误将消失。在此之后,我尝试使用 metric:procstat.service.process.cpu.usage针对进程jenkins(即process_name="jenkins"),但它没有找到jenkins它的价值。我错过了什么吗?

0 投票
1 回答
4580 浏览

pattern-matching - Telegraf - inputs.procstat procstat 插件 - 使用命令行模式或用户名

使用:Telegraf v1.0.1或更高版本

Telegraf procstat 插件的文档: https ://github.com/influxdata/telegraf/tree/master/plugins/inputs/procstat

Documentation下,它说:

procstat 插件可用于监控单个进程使用其 /proc 数据的系统资源使用情况。

该插件将通过它们的 PID 和它们的进程名称来标记进程。

进程可以通过 pid 文件、可执行文件名、命令行模式匹配或用户名(按此顺序或优先级)指定。Procstat 插件将在提供可执行文件名来获取 pid 时使用 pgrep。

我的自定义配置文件:
/etc/telegraf/telegraf.d/my_custom_process_service-telegraf.conf包含:

上面的配置按照语法可以正常工作。

问题:

文档说明了使用exe, pid_file,但没有给出如何使用command line pattern matchingOR by的示例username。如果您知道如何使用它,我可以举一些例子吗?