问题标签 [procstat]

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 投票
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 投票
2 回答
2533 浏览

monitoring - 使用 Telegraf 计算正在运行的进程数

我正在使用 telegraf、influxdb 和 grafana 为分布式应用程序制作监控系统。我要做的第一件事是计算机器上运行的 java 进程的数量。

但是当我提出请求时,进程的数量几乎是随机的(总是在 1 到 8 之间,而不是总是有 8 个)。

我认为我的电报配置有错误,但我看不到在哪里.. 我试图改变interval但没有什么不同:似乎 influxdb 没有所有数据。

我正在运行 centos 7 和 Telegraf v1.5.0 (git: release-1.5 a1668bbf)

我要计算的所有 Java 进程:

我的电报.conf:

我的 input.conf :

我的请求 :

要求

响应 :

回复

0 投票
0 回答
100 浏览

python - -6 的 proc_status 是什么意思?

我正在尝试使用 Python 的 Sybase 模块调用数据库中的存储过程,并且我正在返回这个 proc_status。我不知道这个 proc_status 是什么意思。谁能告诉我?下面附上代码

这是输出:状态= -6

0 投票
2 回答
242 浏览

c - 在 C 中分别获取所有可用 CPU 的 CPU 利用率

当我cat /proc/stat在终端上使用命令时,我得到以下输出:

从上述输出中,我可以注意到我的计算机有 16 个不同的 CPU。我正在尝试编写一个 C 程序来获取所有可用 CPU 内核的 CPU 利用率。但问题是我有以下代码,它只能让我获取整体 CPU 利用率,但只能读取/proc/stat文件的第一行:

如何读取/proc/stat文件以单独打印所有可用 CPU 的当前 CPU 利用率,而不是整体打印?

PS 我是 C 编程的新手并且来自 C# 背景,所以我可能会遗漏 C 中一些非常基本的东西。谢谢你在这方面的帮助。

0 投票
0 回答
151 浏览

linux - 通过系统调用函数 read () 或通过 glibc 函数 fread() 读取 /proc/stat 文件的区别

通过 read(如 cat)或 fread(如 nl)读取 /proc/stat 文件的程序返回不同的值。read() /proc/stat 返回正确的结果,而 fread() 返回错误的结果。

我编写了简单的 C 程序,它们只读取或读取 /proc/stat。read() 返回正确的值,例如cat /proc/stat. fread() 返回错误的值,例如nl /proc/stat.

我在我的Centos7系统中执行“top”命令,然后按“1”显示每个cpu的详细信息,它只显示cpu0的信息,而我的系统有8个cpu核心。此外,cpu0的信息是错误的。

于是我阅读了top命令的源代码,发现它使用fread()从/proc/stat获取cpu信息。我将文件读取接口从glibc fread()函数更改为read(),它运行良好。

我使用 fread() 来检索 /proc 中的其他文件,例如 /proc/meminfo,它也很好用。

  1. fread() 从 /proc/stat 获取信息(命令 'nl' 使用 fread() 读取文件中的内容)</li>
  1. read() 从 /proc/stat 获取信息(命令 'cat' 使用 read() 读取文件中的内容)</li>
  1. 用户 read() 和 fread() 检索/proc下的其他文件,看起来很正常

  2. 我的带有 read() 的 C 程序

  1. 我的带有 fread() 的 C 程序

作为 aschepler 的顾问,我跟踪我的 C 程序。:

6、read() /proc/stat 的 strace 信息(部分结果):

7、fread() /proc/stat 的 strace 信息(部分结果)

0 投票
1 回答
51 浏览

shell - 在 sh 中捕获 CPU 行的 /proc/stat 的 4 个元素

我无法在 shell 脚本 (/bin/sh) 中将 CPU[3] 捕获到 IDLE 变量

代码片段如下:-

0 投票
1 回答
994 浏览

grafana - Telegraf & InfluxDB:如何将 PROCSTAT 的 pid 从字段转换为标记?

摘要:我正在使用 telegraf 将 procstat 导入 InfluxDB。我想将 pid 从整数字段转换为 TAG,以便我可以在 Influx 中对其进行分组。

详细信息:经过大量搜索后,我在某个站点上找到了以下内容,但它似乎正在做相反的事情(将标签转换为字段)。我不确定如何从中推断出相反的转换语法:

我正在使用 Influx 1.7.9

0 投票
1 回答
41 浏览

sas - 如何控制 SAS 输出数据集中的小数点?

我是 SAS 编程的新手,我正在尝试处理 proc mean 语句。为了控制输出中的十进制值,我使用了 maxdec 选项,但是当我尝试将新数据集分配给输出并打印它时,我的十进制值不受标准偏差的控制。有人可以帮我弄清楚如何控制输出数据集中的小数点吗?这是我使用的代码: