バイナリグループ化
現代のアプリケーションは、背景サービスやブラウザなどの組み込みコンポーネントのような、いくつかの相互接続されたバイナリで構成されることが多い。 このデザインはパフォーマンスを改善しますが、どのプロセスがどのアプリケーションの一部なのかを理解するのが難しくなります。
これを解決するために、Nexthink は実行および接続イベントにおけるバイナリデータを追跡する特定の方法を実装しており、2つの明確なフィールドを使用します。
binary
は監視、帰属、およびレポート作成のためのアプリケーションレベルのコンテキストを示します。real_binary
はイベントやプロセス中に実際に実行された実行可能ファイルを示します。
このアプローチはランタイム中のみ適用されます。Nexthink インスタンスのバイナリテーブルには反映されません。 各イベントが発生するたびに binary
と real_binary
のリンクが計算されます。
アプリケーションのコンテキストをプロセスの実行から分離することにより、Nexthink はより明確で正確な洞察を提供します。 これにより、IT チームはリソースの利用状況をよりよく追跡し、問題を診断し、正しいアプリケーションコンテキスト内でのネットワーク挙動を理解できます。
実際のバイナリグループ化
バイナリのグループ化がどのように機能するかを示すために、このセクションでは Microsoft Teams を例に使用します。 このアプリケーションには、バックグラウンド サービスや、組み込みブラウザである WebView などの共有コンポーネントといった複数のバイナリが含まれています。
Microsoft Teams が msedgewebview2.exe
のようなヘルパー プロセスを起動すると、実行データには次のように表示されます。
binary.name = ms-teams.exe
は、アプリケーションのメインまたは親バイナリです。real_binary.name = msedgewebview2.exe
は、実際に実行されたバイナリです。
以下の図は、macOS と Windows のオペレーティング システムにおけるこのバイナリの階層を示しています。


NQL データ モデル フィールド
バイナリのグループ化は、以下のNQLデータモデルフィールドを使用します:
binary
この指標は、イベントに責任のあるアプリケーションのコンテキストを指します。 これは、もはや実行された本当のバイナリである必要はありません。
memory
このメトリックは、同一実行ツリー内のすべてのプロセス(メインプロセスおよびすべてのサブプロセス)が、時間バケット内の実行期間で重み付けされた平均メモリ使用量を示します。
この値は、メインプロセスにのみ利用可能であり、サブプロセスにはNULL
です。
従来のデータはreal_binary
の平均メモリ使用量を報告します。
real_binary
このメトリックは、イベントをトリガーしたプロセスで実行された実際のバイナリを識別します。
process_hierarchy
このメトリックは、プロセスの実行時の役割を示します。 可能な値:
main_process
sub_process
NULL
for legacy data.
real_memory
このメトリックは、timeバケットの間に同じreal_binary
を実行するすべてのプロセスによって使用される平均メモリを報告します。 値は各プロセスの実行期間に応じて重み付けされます。
プロセスの階層を理解する
システムはランタイム中にメインプロセスを識別して、正しいアプリケーションコンテキストを決定します。 このロジックは、関連するすべての実行および接続イベントに対するbinary
フィールドの値を設定します。 イベントの原因となった実際の実行ファイルは、real_binary
フィールドに記録されます。
Windowsでは、プロセスが以下の条件のいずれかを満たす場合、メインプロセスとして認定されます。
プロセスが他のプロセスによって起動されてから30秒以内に可視の前景ウィンドウを開く。
バイナリが、事前定義された既知のアプリケーション実行ファイルリストに一致する場合:
``` ms-teams.exe, msteams.exe, outlook.exe, olk.exe, widgets.exe, widgetboard.exe, onedrive.exe, powerpnt.exe, excel.exe, onenote.exe, winword.exe, msedge.exe, pad.console.host.exe, searchapp.exe, pbidesktop.exe, bingwallpaper.exe, zoom.exe, acrobat.exe, firefox.exe, chrome.exe ```
プロセスがシステムランチャー、例えば
explorer.exe
,svchost.exe
, またはwininit.exe
によって開始された場合、あるいは有効な親プロセスが特定できない場合。
起動から3秒後に検出が始まり、可視化データを収集するために最大30秒間続行されます。 これらの条件がどれも適用されない場合、プロセスは独自のメインプロセスとして扱われます。
macOSでは、ユーザーとの対話と権限の処理に責任を持つプロセスをシステムが指定します。 Nexthinkは、この責任を持つプロセスを帰属のためのメインプロセスとして使用し、イベントがどのサブプロセスによって生成されたかにかかわらず使用します。
バイナリ実行メトリクスの使用方法
各execution
およびconnection
イベントには、2つの関連付けがあります:
binary
、アプリケーションのコンテキストを表し、例:teams.exe
real_binary
、実際に実行された実行可能ファイル、例:msedgewebview2.exe
バイナリ関連のメトリクス、例えばcpu_time
, number_of_crashes
, number_of_freezes
, incoming_traffic
、またはoutgoing_traffic
はreal_binary
レベルで記録され、必要な範囲によって標準的な関数を使用しbinary
または real_binary
で集計できます。
メモリメトリクスは、その複雑さ故に異なる方法で扱われます。 プロセスごとに合計されたり、平均されたりする代わりに、メモリ使用量は各時間バケット内の加重平均として計算されます。 各バケットは、同じバイナリを実行しているすべてのプロセスをグループ化し、各プロセスの実行時間を重みとしてメモリ値を平均化します。
プロセスレベルとアプリケーションレベルの両方の可視性を提供するために、2つの異なるフィールドが用意されています:
**
real_memory
**は、同じreal_binary
の下で、時間バケット内で各プロセスによって使用されたメモリを反映します。 正確なプロセスレベルでのリソース使用状況を提供します。**
memory
**は、実行ツリー全体のメモリの総フットプリントをキャプチャし、process_hierarchy == main_process
の場合にのみ利用できます。 同じ実行ツリー内のすべての関連プロセスを対象に、加重平均として計算されます。
新しいモデルでのデータの解釈 - Microsoft Teams
このセクションでは、Microsoft Teamsの実行、接続、リソース使用データを調査するための即使用可能なNQLクエリを提供します。
Last updated
Was this helpful?