PHP エージェントの名前付け

DX APM
環境で動作しているいずれの PHP エージェントにも名前が割り当てられています。明示的に名前を割り当てたり、PHP エージェントが起動する際に名前のないエージェントに名前を与えたりすることができます。この名前は、対象となるアプリケーションと監視ロジックを関連付けるプロセスにおいて重要な役割を果たします。
apmsaas
DX APM
環境で動作しているいずれの PHP エージェントにも名前が割り当てられています。明示的に名前を割り当てたり、PHP エージェントが起動する際に名前のないエージェントに名前を与えたりすることができます。この名前は、対象となるアプリケーションと監視ロジックを関連付けるプロセスにおいて重要な役割を果たします。
PHP エージェントは論理的には、別のインフラストラクチャ エージェントと 1 つ以上のプローブから構成されます。プローブは、特定の PHP プロセス(Apache サーバなど)をインスツルメンツします。この分散アーキテクチャのため、PHP エージェントはメトリック ブラウザに、実質的に少なくとも 2 つのノードを作成します。1 つのノードは、PHP メトリックおよびトランザクション データに結び付けられた監視対象の PHP プロセスに対するものです。もう 1 つのノードは、PHP エージェント自身の稼働状況およびステータスに関するメトリックを提供するインフラストラクチャ エージェント自体に対するものです。
インフラストラクチャ エージェント名の指定
インフラストラクチャ エージェントは、以下の順に名前を決定します。
  • インフラストラクチャ エージェントは、
    introscope.agent.agentName
    プロパティを使用してエージェント名を決定します。
  • インフラストラクチャ エージェントは、
    introscope.agent.defaultProcessName
    プロパティで指定された名前を使用してプロセス名を決定します。プロセス名ノードは、メトリック ブラウザでエージェント名の真上にあります。デフォルトではインフラストラクチャ エージェント自体が host|Common|Agent という名前になります。
  • どの方法を使用しても名前が見つけられなかった場合は、そのインフラストラクチャ エージェントに
    UnnamedAgent
    という名前が付けられます。
エージェントの名前付けの競合の解決
エージェントの完全修飾名は通常、
DX APM
環境内の各エージェントで一意です。その名前はホスト名、プロセス名、およびエージェント名から構成されます。複数のエージェントが同じエージェント名を持つ場合は、一意の「完全修飾」エージェント名が付けられます。ほとんどの場合、ホスト名とプロセス名は異なるため、エージェントは区別されます。複数のエージェントが同じ完全修飾エージェント名を持つのは、それらが同じホスト上にあり、同じプロセスのモニタを行い、同じエージェント名を持っている場合のみです。この状況は、現在サポートされている PHP エージェント設定ではほとんど発生しません。ただし、これが発生した場合、Enterprise Manager は状況を以下のように処理します。
  • エージェントは、同じ完全修飾エージェント名を持つ別のエージェントがすでに接続されている Enterprise Manager に対して接続を試行することができます。この場合、Enterprise Manager は新しく接続するエージェントの名前の最後に一意の識別子を追加します。識別子は、パーセント(%)文字と数字で構成されます。この識別子により、同じ完全修飾名を使用する複数のエージェントを、接続中に一意に識別できるようにします。Enterprise Manager は、接続しているエージェントのうち、重複する 1 つ目のエージェントの名前を、その末尾に
    %1
    を追加して変更します(
    PodAgent%1
    PodAgent%2
    など)。
  • 名前が変更されたエージェントが切断されると、割り当てられていた末尾の文字列を再使用できます。たとえば、
    PodAgent
    の接続中に
    PodAgent%1
    が切断された場合、次に接続される、完全修飾名
    hostPA|processNIM|PodAgent
    のエージェントの名前は、
    PodAgent%1
    に変更されます。
Enterprise Manager は、サフィックス識別子を再利用し、接続のたびに特定のエージェント名の末尾に同じ文字列を追加することが可能です。しかし、後続の接続では、特定のエージェントの名前が異なっている可能性があります。エージェント名が接続のたびに変わるのは、履歴データをクエリする際に問題になります。Enterprise Manager がエージェントの名前を変える必要がないような名前付けの方針を設定することをお勧めします。
PHP エージェント名の指定
デフォルトでは、プローブに関連付けられているエージェント ノードの名前は、
host|php|<
process name
>
です。たとえば、/usr/local/bin/httpd から Apache サーバが稼働している場合は、プローブ ノードの名前は以下のようになります。
host|php-probes|PHPAgent(/usr/bin/httpd)
プローブに関連付けられた別のエージェント名を指定することができます。このメソッドは、その他のエージェントの名前付けメソッドよりも優先されます。
インフラストラクチャ エージェントへのプローブ インスタンスの接続はそれぞれ、Enterprise Manager で仮想エージェントにマップされます。
以下の 3 つの置換変数が、設定された名前で許可されています。
{type}
- プローブ タイプ。現在サポートされているタイプは php だけです。
{program}
- プローブが接続されているプログラムの名前(/usr/bin/httpd など)
{collector}
- インフラストラクチャ エージェントの名前。エージェントの名前付けプロパティは以下です。
これらのプロパティは、ホットではなく、有効にするにはインフラストラクチャ エージェントを再起動する必要があります。
  • プローブのプロセス名のデフォルト値は
    {type}
    です
    introscope.remoteagent.probe.process.name = {type}
  • PHP エージェント名のデフォルト値は
    {program}
    です。
    introscope.remoteagent.probe.agent.name = {program}
たとえば、インフラストラクチャ エージェントの名前付けプロパティが以下のように設定されており、
introscope.agent.agentName = PHPAgent
PHP エージェントの名前付けプロパティが以下のように設定されている場合、
introscope.remoteagent.probe.process.name = {type}-probes introscope.remoteagent.probe.agent.name = {collector}({program}
/usr/bin/httpd から Apache サーバで稼働しているプローブは、以下にのように名付けられます。
host|php-probes|PHPAgent(/usr/bin/httpd)