問題タブ [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.
sudo - Telegraf - input.procstat procstat プラグイン - README.md doc - exe、pid_file、コマンド ライン パターン ユーザー名
使用: Telegraf 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 "."
を指定してマシン上で実行されているすべてのプロセスを検索します) 。-または、Java/その他のラッパーの背後で実行されるプロセスprocess_name=<processes>
にpid_file = /var/run/jenkins/jenkins.pid
(注: サービスを実行しているユーザーの読み取り権限がある場合) を使用します。Jenkins がユーザーの下で実行されていてtelegraf
、/ var/run/jenkinsフォルダーに pid ファイル自体に対する少なくとも " " アクセス + 読み取り " " アクセス権がない場合、"permission denied" に関するエラーがスローされます。 "。pid_file = /var/run/jenkins/jenkins.pid
jenkins
r-x
r
質問:
モードで Telegraf を実行することは可能SUDO
ですか (可能であれば)? つまりr-x/r
、プロセスの PID ファイルを読み取るアクセス権がなく、そのようなプロセスがたくさんあると仮定した場合 (Java/一部の Wrapper の背後で実行されているため、そのexe=xxxx
ような場合は機能しません)、pid_file = ...
メソッドを使用する必要があります。asなどを取得するために、 Telegrafにこのpid_file
メソッドを使用させています。process_name
jenkins
nexus
PS :chmod -R 775_or_755 /var/run
すべてのホストで実行するのは現実的ではないかもしれません。
/var/ran/jenkins フォルダーに 755 のアクセス許可を与え、jenkins.pid ファイルに 644 のアクセス許可を与えると、アクセス許可エラーはなくなります。この後、私はメトリックを使用しようとしました:procstat.service.process.cpu.usage
プロセスに対してjenkins
(つまりprocess_name="jenkins"
)、それは値として見つかりませんjenkins
。何か見逃しましたか?
linux - /proc/stat ファイルをシステムコール機能 read () 経由で読み取るか、glibc 関数 fread() 経由で読み取るかの違い
read (cat など) または fread (nl など) を介して /proc/stat ファイルを読み取るプログラムは、異なる値を返します。read() /proc/stat は正しい結果を返しますが、fread() は間違った結果を返します。
私は、/proc/stat の読み取りまたは fread だけを行う単純な C プログラムを作成していました。read() は のような正しい値を返しますcat /proc/stat
。fread() は のような間違った値を返しますnl /proc/stat
。
Centos7 システムで「top」コマンドを実行し、「1」を押してすべての CPU の詳細情報を表示します。システムには 8 つの CPU コアがありますが、CPU0 の情報のみが表示されます。さらに、cpu0 の情報が間違っています。
top コマンドのソースコードを読んでみると、/proc/stat から CPU 情報を取得するために fread() を使用していることがわかりました。
/proc/meminfo のように、fread() を使用して /proc 内の他のファイルを取得しますが、これもうまく機能します。
- 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 情報 (結果の一部)
grafana - Telegraf & InfluxDB:PROCSTATのpidをフィールドからタグに変換する方法は?
概要: Telegraf を使用して procstat を InfluxDB に取り込みます。Influx でグループ化できるように、pid を整数フィールドから TAG に変換したいと考えています。
詳細: 多くの検索を行った後、いくつかのサイトで以下を見つけましたが、逆のことをしているようです (タグをフィールドに変換します)。それから反対の変換構文を推測する方法がわかりません:
Influx 1.7.9 を使用しています