问题标签 [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.
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
它的价值。我错过了什么吗?
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 :
我的请求 :
响应 :
python - -6 的 proc_status 是什么意思?
我正在尝试使用 Python 的 Sybase 模块调用数据库中的存储过程,并且我正在返回这个 proc_status。我不知道这个 proc_status 是什么意思。谁能告诉我?下面附上代码
这是输出:状态= -6
c - 在 C 中分别获取所有可用 CPU 的 CPU 利用率
当我cat /proc/stat
在终端上使用命令时,我得到以下输出:
从上述输出中,我可以注意到我的计算机有 16 个不同的 CPU。我正在尝试编写一个 C 程序来获取所有可用 CPU 内核的 CPU 利用率。但问题是我有以下代码,它只能让我获取整体 CPU 利用率,但只能读取/proc/stat
文件的第一行:
如何读取/proc/stat
文件以单独打印所有可用 CPU 的当前 CPU 利用率,而不是整体打印?
PS 我是 C 编程的新手并且来自 C# 背景,所以我可能会遗漏 C 中一些非常基本的东西。谢谢你在这方面的帮助。
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,它也很好用。
- fread() 从 /proc/stat 获取信息(命令 'nl' 使用 fread() 读取文件中的内容)</li>
- read() 从 /proc/stat 获取信息(命令 'cat' 使用 read() 读取文件中的内容)</li>
用户 read() 和 fread() 检索/proc下的其他文件,看起来很正常
我的带有 read() 的 C 程序
- 我的带有 fread() 的 C 程序
作为 aschepler 的顾问,我跟踪我的 C 程序。:
6、read() /proc/stat 的 strace 信息(部分结果):
7、fread() /proc/stat 的 strace 信息(部分结果)
shell - 在 sh 中捕获 CPU 行的 /proc/stat 的 4 个元素
我无法在 shell 脚本 (/bin/sh) 中将 CPU[3] 捕获到 IDLE 变量
代码片段如下:-
grafana - Telegraf & InfluxDB:如何将 PROCSTAT 的 pid 从字段转换为标记?
摘要:我正在使用 telegraf 将 procstat 导入 InfluxDB。我想将 pid 从整数字段转换为 TAG,以便我可以在 Influx 中对其进行分组。
详细信息:经过大量搜索后,我在某个站点上找到了以下内容,但它似乎正在做相反的事情(将标签转换为字段)。我不确定如何从中推断出相反的转换语法:
我正在使用 Influx 1.7.9
sas - 如何控制 SAS 输出数据集中的小数点?
我是 SAS 编程的新手,我正在尝试处理 proc mean 语句。为了控制输出中的十进制值,我使用了 maxdec 选项,但是当我尝试将新数据集分配给输出并打印它时,我的十进制值不受标准偏差的控制。有人可以帮我弄清楚如何控制输出数据集中的小数点吗?这是我使用的代码: