Windowsパフォーマンス・カウンターレシーバー
Windows Performance Countersレシーバーを使用すると、Splunk Distribution of OpenTelemetry Collectorで、Windowsレジストリからシステム、アプリケーション、またはカスタムのパフォーマンスカウンターデータを収集できます。
Windows Performance Counters レシーバーを使用すると、Splunk Distribution of OpenTelemetry Collector で、Windows レジストリから設定済みシステム、アプリケーション、またはカスタムのパフォーマンスカウンターデータを収集できます。サポートされているパイプラインのタイプは metrics です。詳細については「パイプラインでデータを処理する」を参照してください。
Windows Performance Counters レシーバーは、Smart Agent モニター Windows Performance Counters(廃止)を置き換えます。これは Telegraf Windows Performance Counters Input プラグインをベースとし、PDH インターフェイス を使用します。
はじめに
以下の手順に従って、コンポーネントの設定とアクティベーションを行ってください:
-
「Install the Collector for Windows with the installer script」の説明に従って、Splunk Distribution of the OpenTelemetry Collector を Windows ホストプラットフォームにデプロイします。
-
次のセクションで説明するように、Windowsパフォーマンス・カウンター・レシーバーを設定します。
-
Collector を再起動します。
サンプル構成
Windows Performance Counters レシーバーを有効にするには、Collector 構成ファイルの receivers セクションに windowsperfcounters エントリを追加します。例:
receivers:
windowsperfcounters:
metrics:
bytes.committed:
description: the number of bytes committed to memory
unit: By
gauge:
collection_interval: 30s
perfcounters:
- object: Memory
counters:
- name: Committed Bytes
metric: bytes.committed
設定を完了するには、設定ファイルの service セクションの metrics パイプラインに、レシーバーを含めます:
service:
pipelines:
metrics:
receivers:
- windowsperfcounters
Windows Performance Counters からメトリクスを収集するには、例のように metrics フィールドを使用してメトリクスを定義する必要があります。その後、counters.metric フィールドから定義したメトリクスを参照できます。
利用可能なパフォーマンス・カウンターを見る
利用可能なパフォーマンス・カウンターのリストを見るには、Windows PowerShellまたはWindowsパフォーマンスモニターを使用します。
- PowerShell
-
PowerShellで以下のコマンドを実行し、すべてのパフォーマンス・カウンターセットをリストします:
POWERSHELLGet-Counter -ListSet *各パフォーマンス・カウンターセットのインスタンスを一覧表示するには、以下のコマンドを実行し、
<perf_object_name>を検索したいインスタンス名に置き換えます:POWERSHELLGet-Counter -List "<perf_object_name>" - Windows Performance Monitor
-
以下のコマンドを実行して、Windowsパフォーマンスモニターを開く:
POWERSHELLperfmon /sysWindowsパフォーマンスモニターで、緑のプラス矢印を選択すると、利用可能なパフォーマンス・カウンターのリストが表示されます。
次のことに注意してください:
-
起動時に特定のパフォーマンスカウンタにアクセスできない場合、レシーバーは警告を発し、実行を続行します。
-
OSの設定が異なるため、システムによってはパフォーマンスカウンターが存在しない場合があります。
高度な設定
収集間隔とカウンターを設定する
収集間隔とスクレイピングするパフォーマンスカウンタを設定できます。例:
windowsperfcounters:
collection_interval: <duration>
initial_delay: <duration>
metrics:
<metric name 1>:
description: <description>
unit: <unit type>
gauge: null
<metric name 2>:
description: <description>
unit: <unit type>
sum: null
aggregation: <cumulative or delta>
monotonic: <true or false>
perfcounters:
- object: <object name>
instances:
- <instance name>
counters:
- name: <counter name>
metric: <metric name>
attributes:
<key>: <value>
異なる収集間隔でスクレイプする
以下の例は、ターゲットによって異なる収集間隔を使用してパフォーマンス・カウンターをスクレイピングする方法を示しています:
receivers:
windowsperfcounters/memory:
metrics:
bytes.committed:
description: Number of bytes committed to memory
unit: By
gauge:
collection_interval: 30s
perfcounters:
- object: Memory
counters:
- name: Committed Bytes
metric: bytes.committed
windowsperfcounters/processor:
collection_interval: 1m
metrics:
processor.time:
description: CPU active and idle time
unit: "%"
gauge:
perfcounters:
- object: "Processor"
instances: "*"
counters:
- name: "% Processor Time"
metric: processor.time
attributes:
state: active
- object: "Processor"
instances: ["0", "1"]
counters:
- name: "% Idle Time"
metric: processor.time
attributes:
state: idle
# ...
service:
pipelines:
metrics:
receivers: [windowsperfcounters/memory, windowsperfcounters/processor]
インスタンスを設定する
インスタンスは、パフォーマンスデータを生成する任意のエンティティです。インスタンスは、1 つ以上のカウンタ値を含むことができます。
レシーバーは instances フィールドを通じて以下の値をサポートします:
|
値 |
解釈 |
|---|---|
|
未指定 |
これは、カウンターにインスタンスがない場合にのみ有効な値です。 |
|
|
|
|
|
他のすべてのインスタンスの値を集約した「合計」インスタンス。詳しくは「Total instance behavior and the aggregation counter」を参照してください。 |
|
|
シングルインスタンス |
|
|
インスタンスのセット |
|
|
総インスタンスを含むインスタンスのセット |
インスタンスの動作と集計カウンターの合計
_Total インスタンスのドロップを避けるには、以下の例のように、レシーバーが独自のメトリックで個別に収集するように設定します:
windowsperfcounters:
metrics:
processor.time.total:
description: Total CPU active and idle time
unit: "%"
gauge:
collection_interval: 30s
perfcounters:
- object: "Processor"
instances:
- "_Total"
counters:
- name: "% Processor Time"
metric: processor.time.total
instance の値 "*" を使用する場合、カウンターが _Total 以外の値を使用する場合は、レシーバーがメトリクスをスクレイピングした後に集約する際に、ダブルカウントを避けるようにしてください。
すべてのスクレイプでクエリを再作成する
Windows の一部のバージョンでは、カウンタが破損し、最初のスクレイピング後に無効なデータが継続的に返されることがあります。その場合は、カウンタ設定 recreate_query を true(デフォルトは false)に設定して、レシーバーがすべてのスクレイピングで PDH クエリを再作成するよう指示してください。これは、パフォーマンスに影響する可能性がありますが、collection_interval が非常に高くない限り、問題ありません。
クエリの再作成に失敗した場合、以前のクエリが再利用され、エラーがログに記録されます。
メトリクス形式を定義する
設定されたメトリクスは、レシーバーによってスクレイピングされた1つまたは複数のパフォーマンスカウンターによって使用される、単位とタイプを含むメトリクスの説明で構成されます。
特定の形式でメトリクスを報告するには、メトリクスを定義し、該当する属性とともに、対応するカウンタでそれを参照します。デフォルトでは、メトリクス名はカウンタの名前に対応します。
メトリクスは sum 型または gauge 型です。Sum メトリクスは aggregation および monotonic フィールドをサポートします。
|
フィールド |
説明 |
値 |
デフォルト |
|---|---|---|---|
|
|
メトリクスのキーまたは名前。空ではない任意の文字列にできます。 |
文字列 |
カウンターの名前 |
|
|
メトリクスまたは測定の説明 |
文字列 |
|
|
|
測定単位 |
文字列 |
|
|
|
合計メトリクスの表現 |
合計設定 |
|
|
|
ゲージメトリクスの表現 |
ゲージ設定 |
合計メトリクス
以下の設定は、合計メトリクスに適用されます:
|
フィールド |
説明 |
値 |
|---|---|---|
|
|
メトリクスの集計の一時性のタイプ |
|
|
|
メトリクス値が減少するかどうか |
|
ゲージメトリクス
gauge 設定は設定を受け入れません。前方互換性のためのオブジェクトとして指定されます。
次の例は、Memory/Committed Bytes カウンターを bytes.committed メトリクスとして出力します:
receivers:
windowsperfcounters:
metrics:
bytes.committed:
description: the number of bytes committed to memory
unit: By
gauge:
collection_interval: 30s
perfcounters:
- object: Memory
counters:
- name: Committed Bytes
metric: bytes.committed
service:
pipelines:
metrics:
receivers: [windowsperfcounters]
既知の制限
-
ネットワーク インターフェイスはコンテナ内部では利用できないため、そのシナリオではオブジェクト
Network Interfaceのメトリクスは生成されません。サブプロセスがある場合は、サブプロセスがNetwork Interfaceメトリクスをキャプチャします。 -
カウンターのカテゴリ
Processは、同じプロセスの複数のインスタンスがあると信頼できません。-
Windows 11以降では、インスタンス名にプロセスIDが含まれるため、代わりに
Process V2を使用します。 -
Windows 11 より前のバージョンでは、インスタンス名に PID を含めるように
Processカウンタカテゴリを設定できます。詳しくは、Microsoft のドキュメント「重複するインスタンス名の処理 」を参照してください。
-
設定
以下の表は、Windows パフォーマンス・カウンター・レシーバーの構成オプションを示します:
同梱
https://raw.githubusercontent.com/splunk/collector-config-tools/main/cfg-metadata/receiver/windowsperfcounters.yaml
トラブルシューティング
If you are a Splunk Observability Cloud customer and are not able to see your data in Splunk Observability Cloud, you can get help in the following ways.
Available to Splunk Observability Cloud customers
-
Submit a case in the Splunk Support Portal.
-
Contact Splunk Support.
Available to prospective customers and free trial users
-
Ask a question and get answers through community support at Splunk Answers.
-
Join the Splunk community #observability Slack channel to communicate with customers, partners, and Splunk employees worldwide.