APMインサイトGoエージェントのインストール

Golangアプリケーションを監視するためにSite24x7 APMインサイトGoエージェントをインストールする方法は以下の通りです。

使用事例

次のポートを実行するGolangベースの小売アプリケーション(go_retail)があるとします。

  • ポート8483:在庫と価格設定用の内部API
  • ポート8484:公開チェックアウトまたは支払いゲートウェイ

このアプリケーションはミッションクリティカルです。これらのポートの速度低下やダウンタイムは、顧客の閲覧、注文、支払いの完了能力に直接影響し、収益の損失につながります。

Site24x7のGoエージェントをインストールし、サーバー応答時間、リクエストスループット、Apdex、SQL/Redisクエリなどのメトリクスを追跡することで、遅いトランザクションの問題を早期に検出し、最適なパフォーマンス、迅速なトラブルシューティング、中断のないユーザーエクスペリエンスを確保可能です。

前提条件

Goアプリケーションの監視を設定する前に、次の点を確認します。

  • Goアプリケーション(例:go_retail)が実行されていることを確認します。
  • 必要なポートが開いており、監視可能なことを確認します。(例:8483と8484)
  • Site24x7ライセンスキーがあるかどうかを確認します。
  • 以下のコマンドを使用して、Site24x7 APM DataExporterをインストールします。
    wget -O InstallDataExporter.sh
    https://staticdownloads.site24x7.com/apminsight/S247DataExporter/linux/InstallDataExporter.sh
    sudo -E sh InstallDataExporter.sh -license.key 
  • 以下のコマンドを使用してapm-insight-go-agent-install.shスクリプトをダウンロードし、スクリプトに実行権限があることを確認します。
    wget https://staticdownloads.site24x7.com/apminsight/agents/golang/linux/amd64/apm-insight-go-agent-install.sh -O apm-insight-go-agent-install.sh
    chmod +x apm-insight-go-agent-install.sh

Step1:実行中のGoアプリケーションとポートを確認する

まず、Goアプリケーションが実行され、目的のポート上でリッスンしていることを確認します。

sudo lsof -i -nP | grep -i go_

出力が次のようになるかどうかを検証します。

go_retail 722628 user-001 7u  IPv4 4619876 0t0  TCP *:50051 (LISTEN)
go_retail 722628 user-001 9u  IPv4 4616579 0t0  TCP *:8483  (LISTEN)
go_retail 722628 user-001 10u IPv4 4616580 0t0  TCP *:8484  (LISTEN)

Step2:インストールコマンドを実行する

コマンドは次のようになります。

sudo ./apm-insight-go-agent-install.sh -i -license_key= -apps="Retail_Application=go_retail:8484,8483;"

Goエージェントをインストールする

エージェントをインストールするには、次のコマンドを実行します。

sudo ./apm-insight-go-agent-install.sh -i -license_key=license_key-apps=app_definitions


パラメーターの詳細

オプション 説明
-h ヘルプメッセージを表示します。
-i エージェントをインストールします(必須)。
-license_key Site24x7 APMインサイトライセンスキーを表示します(必須)。
-apps 監視するGoアプリケーションを定義します(必須)。形式については以下で説明します。

-appsでアプリケーションを定義する

Goエージェントのインストールセクションに示されているインストールコマンドでは、-appsパラメータに監視対象のGoアプリケーションのリストが必要です。以下の形式で、プロセス名とポート番号を使用してリストを定義します。

<app_name>=<process_name>:<port1>[,<port2>];<app_name2>=<process_name2>:<port3>

詳細

  • app_name:Site24x7でのアプリの表示名
  • process_name:正確なプロセス名
  • port:アプリケーションが使用するポート(ポートが複数ある場合はカンマで区切ります)
  • アプリケーションが複数ある場合はセミコロンで区切ります。

例)

-apps="my_go_app=my_process:8087;go_retail_app=go_retail:8088,8089"

サポートされているメトリック

Goエージェントは、アプリケーションの次のメトリックを監視します。

メトリック 説明
Application Server Response Time サーバー応答時間の詳細なコンポーネントレベルの内訳です。
Apdex 応答時間に基づくユーザー満足度スコアです。
Request Throughput 1分あたりに処理されるリクエスト数です。
Top 5 Transactions by Avg. Response Time 平均応答時間が長い順Top5のトランザクションです。
Web Transactions カウント、Apdex、平均応答時間が含まれます。
Service Map コンポーネントレベルの分割によるビジュアルマップです。
MySQL queries MySQLクエリ実行の詳細と応答時間です。
Redis queries Redisクエリ実行の詳細と応答時間です。

基本構成プロファイル

設定オプション 説明
Capture Database SQL Queries 実行されたSQLクエリを収集します。
Obfuscate SQL Parameters 機密性の高いSQLパラメータ値を非表示にします。
Stacktrace Threshold for SQLs in Transaction Trace スタックトレースキャプチャの最小実行時間を設定します。
Display Instance Port Number Site24x7コンソールにインスタンスポートを表示します。
Enable Down Alert インスタンスがダウンした場合にアラートを送信します。
Suppress Instance Alerts 選択したインスタンスのアラートを抑制します。
Normalize DB Operation Names 類似のDB操作をグループ化します。
Logging Level ログの詳細度を調整します。
Skip URL extensions 静的リソースの追跡を除外します。
Skip transactions 特定の取引を監視から除外します。
Exclude grouping in transaction name トランザクション名の集約を防ぎます。

Webトランザクション構成

設定オプション 説明
Apdex threshold Apdex計算のしきい値を定義します。
Sampling factor サンプリングされた取引の割合を制御します。
Enable transaction tracing 詳細な取引のトレースをキャプチャします。
Transaction trace threshold トレースキャプチャの最小応答時間を監視します。
Track HTTP error codes 監視するエラーコードのリストを表示します。
Ignore HTTP error codes スキップするエラーコードのリストを表示します。
Capture HTTP bytes HTTPペイロードサイズのキャプチャを有効/無効化します。

次のステップ

インストール後、GoアプリケーションはSite24x7コンソールの[APM]→[アプリケーション]にパフォーマンスデータを報告し始めます。

関連記事