Instgo は、Application Real-Time Monitoring Service (ARMS) が提供する Go アプリケーションコンパイルツールです。 Instgo で Go プロジェクトをコンパイルすると、ARMS は Go アプリケーションのモニタリングを開始し、アプリケーショントポロジー、トレース、SQL 分析などのさまざまなモニタリングデータを表示できるようになります。
このトピックは、Instgo ツール バージョン 1.3.0 以降にのみ適用されます。instgo version
コマンドを使用して、Instgo ツールのバージョンを確認できます。 Instgo ツールのバージョンが 1.3.0 より前の場合は、1.3.0 にアップグレードしてください。 詳細については、「Go アプリケーションをモニタリングする」をご参照ください。
前提条件
コンパイル環境がパブリックネットワークまたは Alibaba Cloud 内部ネットワークに接続されており、コンパイル環境が存在するセキュリティグループでポート 80 の TCP アウトバウンド権限が開かれていること。
LicenseKey パラメーターと RegionId パラメーターが設定されていること。これは、本番環境にコンパイルアーティファクトをデプロイする場合に必要です。 詳細については、「Go アプリケーションをモニタリングする」をご参照ください。
Instgo をダウンロードする
wget
コマンドを実行して、環境とツールが存在するリージョンに基づいてコンパイルツールをダウンロードします。 その後、書き込み権限を持つディレクトリにツールを保存します。これは、コンパイル中に自動的に更新されるためです。説明インターネット経由で Object Storage Service (OSS) にアクセスできる場合は、中国 (杭州) リージョンのオペレーティングシステムとアーキテクチャのパブリックエンドポイントを直接使用して、コンパイルツールを取得できます。
コンパイルツールに、関連操作を実行するために必要な権限を付与します。
Linux/Darwin
# 権限を付与します。 chmod +x instgo
Windows
Windows では、権限を付与する必要はありません。
Instgo が使用可能かどうかを確認します。
instgo version コマンドを実行して、Instgo のバージョンを確認します。たとえば、出力
Instgo version 1.3.0_dea8285
は、Instgo のバージョンが 1.3.0 であることを示しています。Linux/Darwin
./instgo version
Windows
.\instgo.exe version
オプション。Instgo をコンパイル環境のパスに追加します。
Instgo を使用して Go アプリケーションをコンパイルする
Go アプリケーションをコンパイルする前に、go version
を実行して、Go コンパイラが PATH に含まれていることを確認します。
Go アプリケーションの元のコンパイル コマンド:
go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.go
instgo プレフィックスを使用したコンパイル コマンド:
instgo go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.go
Instgo がコンパイル環境のパスに格納されていない場合は、プレフィックスを Instgo の相対パスまたは絶対パスに置き換えます。例:
/path/to/instgo go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.go
Instgo コンパイル パラメーターを設定する
Instgo は、Instgo コンパイル プロセスの動作を制御するための一連のコンパイル パラメーターを提供します。instgo list
コマンドを使用すると、すべてのコンパイル パラメーターとその現在のプリセット値を表示できます。
デフォルト パラメーターを使用して、Golang アプリケーションのコンパイルとデプロイを完了できます。ただし、アーティファクトを本番環境にデプロイする場合は、コンパイルを進める前に LicenseKey と RegionId を指定することをお勧めします。
フラグ キー | 環境キー | パラメーター データ型 | デフォルト値 | 説明 |
--agentVersion | INSTGO_AGENT_VERSION | String | なし | Go 用 ARMS エージェントのバージョンを指定します。 |
--agentPath | INSTGO_AGENT_PATH | String | なし | エージェントのローカル パスを指定します。 |
--cacheDir | INSTGO_CACHE_DIR | String | なし | エージェントのキャッシュ ディレクトリを指定します。 |
--dev | INSTGO_DEV | Bool | true | コンパイル モードとして開発モードを指定します。このモードは、基本機能の可用性をテストするために使用されます。一部の機能はダウングレードされる場合があります。本番環境での使用の場合は、LicenseKey パラメーターを指定します。 |
--disableDefaultRule | INSTGO_DISABLE_DEFAULT_RULE | Bool | false | ARMS によって提供されるコード拡張を無効にするかどうかを指定します。これを有効にすると、自動コード拡張はブロックされます。注意して無効にしてください。 |
--licenseKey | INSTGO_LICENSE_KEY | String | なし | ARMS の LicenseKey を指定します。このパラメーターを設定すると、開発モードが無効になります。LicenseKey を取得するには、OpenAPI Explorer で DescribeTraceLicenseKey 操作を呼び出すことができます。詳細については、「DescribeTraceLicenseKey」をご参照ください。 |
--mse | INSTGO_MSE | Bool | false | アプリケーションに対して MSE マイクロサービス ガバナンスを有効にするかどうかを指定します。詳細については、「ACK クラスタ内の Go マイクロサービス アプリケーションに対して MSE マイクロサービス ガバナンスを有効にする」をご参照ください。 |
--regionId | INSTGO_REGION_ID | String | cn-hangzhou | エージェント パッケージをプルするか、コンパイル ログをレポートするリージョンを指定します。コンパイル環境が VPC(Virtual Private Cloud)の場合は、コンパイル環境が配置されているリージョンを指定します。 |
--rule | INSTGO_RULE | String | なし | エージェントのコード拡張テンプレートを指定します。詳細については、「Go 用 ARMS エージェントのカスタム拡張機能を使用する」をご参照ください。 |
--timeout | INSTGO_TIMEOUT | Int | 180 | エージェント パッケージをプルするためのタイムアウト期間を指定します。単位:秒。 |
--verbose | INSTGO_VERBOSE | Bool | false | 詳細なコンパイル ログを出力するかどうかを指定します。 |
--vpc | INSTGO_VPC | Bool | false | インターネット経由でエージェント パッケージをプルするかどうかを指定します。 |
--vendored | INSTGO_VENDORED | Bool | false | ベンダー モードで プロジェクト をビルドするかどうかを指定します。 |
set
コマンドを使用してコンパイルパラメータを設定するset
説明:
set
コマンドを使用して、コンパイルパラメータを変更できます。このコマンドは、設定されたコンパイルパラメータを $HOME/.instgo.yaml
ファイルに保存します。後続のコンパイルコマンドは、このファイルにプリセットされている値を自動的に読み取ります。
たとえば、本番モードを選択し、LicenseKey パラメーターと RegionId パラメーターを指定する場合、コマンドは次のとおりです。
instgo set --licenseKey=${YourLicenseKey} --regionId=${YourRegionId} --dev=false
後続のコンパイルプロセスでは、上記のプリセットされたコンパイルパラメーターがデフォルトで使用されます。
instgo go build -a
コンパイル パラメーターをリセットする
set
コマンドを使用してコンパイル パラメーターを変更した後、reset
コマンドを使用してすべてのパラメーターをデフォルト値にリセットできます。
instgo reset
環境変数を使用してコンパイル パラメーターを設定する
他のコンパイルに影響を与えることなく、1 回のビルドに対して一時的なコンパイル パラメーターを適用するには、環境変数を使用して設定します。これらの変数は、現在のセッションにのみ適用されます。
例( LicenseKey
と RegionId
を使用して本番モードを有効にする):
DescribeTraceLicenseKey オペレーションを呼び出して、LicenseKey を取得します。
Linux/Darwin
export INSTGO_LICENSE_KEY=${ARMS_LICENSEKEY}
export INSTGO_REGION_ID=${ARMS_REGIONID}
export INSTGO_DEV="false"
Windows
$env:INSTGO_LICENSE_KEY=${ARMS_LICENSEKEY}
$env:INSTGO_REGION_ID=${ARMS_REGIONID}
$env:INSTGO_DEV="false"
現在のコマンドラインで実行されるコンパイルでは、対応する環境変数が設定されているかどうかがデフォルトで最初に照会されます。設定されていない場合は、set
コマンドによってプリセットされたコンパイル パラメーターがイメージのコンパイルに使用されます。
instgo go build -a
環境変数とコンパイル コマンドを同じ行に記述することもできます。例:
Linux/Darwin
INSTGO_LICENSE_KEY=${ARMS_LICENSEKEY} INSTGO_REGION_ID=${ARMS_REGIONID} INSTGO_DEV="false" instgo go build -a
Windows
$env:INSTGO_LICENSE_KEY=${ARMS_LICENSEKEY}; $env:INSTGO_REGION_ID=${ARMS_REGIONID}; $env:INSTGO_DEV="false"; instgo.exe go build -a
エージェントの一時ファイルをクリアする
clean
コマンドを実行して、カレントディレクトリのコンパイルと実行時の残留物をクリアできます。次に例を示します。
instgo clean
ローカルにキャッシュされたエージェントを削除する必要がある場合は、--localAgents
フラグを追加できます。
instgo clean --localAgents
Instgo を手動でアップグレードする
Instgo のバージョンが古い場合は、update
コマンドを使用して Instgo とエージェントを更新できます。このコマンドは、Instgo とエージェントを本番環境で現在利用可能な最新バージョンにアップグレードします。例:
instgo update
デフォルトでは、Instgo はコンパイル中に ARMS のリリーススケジュールに従って自動的に更新されます。まれに、コンパイルエラーが発生する場合がありますが、通常は再試行することで解決できます。
Instgo のバージョンが 1.3.0 より前の場合、
update
コマンドは使用できない可能性があります。この場合は、現在の Instgo を削除し、最新バージョンの Instgo を直接ダウンロードしてください。
リリースノート
バージョン | リリース日 | 説明 |
1.3.8 | 2025 年 5 月 29 日 |
|
1.3.7 | 2025 年 5 月 19 日 |
|
1.3.6 | 2025 年 4 月 28 日 |
|
1.3.5 | 2025 年 4 月 17 日 | ベンダーモードでプロジェクトをビルドできます。 |
1.3.4 | 2025 年 3 月 31 日 | プレフィックスモードでネイティブ Go コマンドプロキシがサポートされています。 |
1.3.3 | 2025 年 2 月 28 日 | Go V1.6.0 用 ARMS エージェントがデフォルトバージョンとして使用されます。 |
1.3.2 | 2025 年 1 月 17 日 | instgo の書き込み権限がないために発生した、自動更新の失敗による instgo 更新の繰り返し試行の問題が修正されました。 説明 この問題が instgo で発生する場合は、ツールを削除して新しいツールをダウンロードしてください。 |
1.3.1 | 2025 年 1 月 10 日 | Linux および Darwin オペレーティングシステムでは、デフォルトのエージェントキャッシュディレクトリが |
1.3.0 | 2024 年 12 月 5 日 |
|