问题标签 [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.
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"
我想要做的事情是不容易做到的,还是我错过了一些明显的东西?
plugins - Telegraf:如何添加“输入插件”?
我是 Telegraf 的初学者,我想安装一个“输入插件”。我有配置和 .go 文件,但我不知道如何处理它,即使在 Google 上搜索后也是如此。
先感谢您 !
logstash-grok - Grok,不同值的日志处理
我有一个日志文件,我正在解析它,telegraf.logparser
然后将它发送到 influxdb。问题是,我的日志文件在一个完整的字符串中有不同的字段:
我可以将其中一条线与
但是我怎么做才能同时获得 .. 这样如果没有设置 lrmsid ,它会得到lrmsid=null, and failure="Timeout"
.. 如果 lrmsid 设置了它lrmsid=12345 and failure=null
docker - 是否可以在 Docker 中运行 Telegraf(并获得准确的指标)?
我希望通过主机上的 docker 运行telegraf - influxdb 指标收集器,以收集它们的主机级指标。这实际上很简单:官方的 docker 镜像可以在dockerhub 获得。
在一个理想的世界里,一个 dockerized telegraf 将公开与非 dockerized 版本完全相同的指标——但我猜这不太可能。所以我想知道有什么区别(例如,文件描述符的数量)以及如何最小化它们(例如,使用 --priviliged 标志运行 docker 容器会有帮助吗?)
influxdb - 将日志导入 influxdb 时删除机器人的自定义模式
我使用 Telegraf 和 logparser 插件将 apache 日志导入到 influxdb
我想过滤掉来自机器人的所有日志,所以我使用正则表达式设置了一个自定义模式,该模式只匹配不包含单词“bot”和“crawl”的用户代理:
但它不起作用,零指标被导入到 influxdb
正则表达式似乎没问题,当我在这里测试时它工作正常:http: //grokconstructor.appspot.com/do/match
只是为了确保我尝试了一个更简单的正则表达式:
它有效,telegraf 只从机器人导入日志,但我想要相反,我看不出有什么问题((?!bot|crawl).)*
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
方法调用仍然失败。如果这可能是原因,人们将如何处理它?
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文件是:
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_name
asjenkins
或nexus
etc。
PS:chmod -R 775_or_755 /var/run
在每台主机上都做可能不可行。
如果我确实在 /var/ran/jenkins 文件夹中授予 755 权限并将 644 授予 jenkins.pid 文件,则权限错误将消失。在此之后,我尝试使用 metric:procstat.service.process.cpu.usage
针对进程jenkins
(即process_name="jenkins"
),但它没有找到jenkins
它的价值。我错过了什么吗?
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 matching
OR by的示例username
。如果您知道如何使用它,我可以举一些例子吗?