Instgo は、Application Real-Time Monitoring Service (ARMS) が提供する Golang アプリケーション用のコンパイルツールです。Golang プロジェクトを instgo でコンパイルすると、ARMS がアプリケーションを監視できるようになります。これにより、アプリケーショントポロジー、呼び出しチェーン、SQL 分析などのモニタリングデータを表示できます。
この Topic は、instgo バージョン 1.3.0 以降にのみ適用されます。instgo version コマンドを実行して instgo のバージョンを確認できます。お使いのバージョンが 1.3.0 より前の場合は、アップグレードする必要があります。詳細については、「Go アプリケーションのモニタリングを開始する」をご参照ください。
前提条件
ご利用のコンパイル環境がインターネットまたは Alibaba Cloud 内部ネットワークに接続できることを確認してください。コンパイル環境のセキュリティグループで、ポート 80 でのアウトバウンド TCP トラフィックが許可されている必要があります。
コンパイル済みアーティファクトを本番環境にデプロイするには、`LicenseKey` および `RegionId` コンパイルパラメーターを設定する必要があります。詳細については、「Go アプリケーションの監視開始」をご参照ください。
instgo のダウンロード
wgetコマンドを使用してコンパイルツールをダウンロードします。ダウンロードアドレスは、コンパイル環境とマシンのリージョンに基づいて選択してください。instgo はコンパイル中に自動更新をトリガーすることにご注意ください。コンパイルユーザーが変更権限を持つディレクトリに instgo を保存してください。
説明コンパイルツールはすべてのリージョンで同じです。パブリックネットワーク環境が Object Storage Service (OSS) アドレスにアクセスできる場合は、ご利用のオペレーティングシステムとアーキテクチャに対応する中国 (杭州) のパブリックエンドポイントを使用してツールを取得できます。
コンパイルツールに実行権限を付与します。
Linux/Darwin
# 実行権限を付与 chmod +x instgoWindows
Windows では実行権限は必要ありません。
instgo が利用可能か確認します。
`version` コマンドを実行して `instgo` のバージョンを確認します。
Instgo version 1.3.0_dea8285のようなメッセージが表示された場合、ダウンロードは成功です。Linux/Darwin
./instgo versionWindows
.\instgo.exe version(任意) コンパイル環境の PATH に instgo ツールを追加します。
instgo を使用した Golang アプリケーションのコンパイル
Golang アプリケーションをコンパイルする場合、コンパイル環境の PATH に `go` コマンドが含まれていることを確認してください。この確認には、go version コマンドを実行します。
Golang アプリケーションの元のコンパイルコマンド:
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.goinstgo が PATH に保存されていない場合は、プレフィックスを instgo への相対パスまたは絶対パスに置き換えます:
/path/to/instgo go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.goinstgo のコンパイルパラメーターの設定
instgo には、コンパイル動作をコントロールするための一連のコンパイルパラメーターが用意されています。instgo list コマンドを実行すると、利用可能なすべてのコンパイルパラメーターとその現在の値を表示できます。
デフォルトのパラメーターを使用して Golang アプリケーションをコンパイルおよびデプロイできます。ただし、アーティファクトを本番環境にデプロイするには、コンパイル前に LicenseKey と RegionId を指定する必要があります。
フラグキー | 環境キー | パラメータータイプ | デフォルト値 | 説明 |
--agentVersion | INSTGO_AGENT_VERSION | String | なし | Golang エージェントのバージョンを指定します。 |
--agentPath | INSTGO_AGENT_PATH | String | なし | Golang エージェントのローカルパスを指定します。 |
--cacheDir | INSTGO_CACHE_DIR | String | なし | Golang エージェントのキャッシュディレクトリを指定します。 |
--dev | INSTGO_DEV | Bool | true | コンパイルモードを開発者モードとして指定します。このモードは、基本的な機能の可用性をテストするためのものです。一部の機能が低下する可能性があります。アプリケーションをオンラインで使用するには、LicenseKey を指定してください。 |
--disableDefaultRule | INSTGO_DISABLE_DEFAULT_RULE | Bool | false | ARMS が提供するコードエンハンスメントを無効にするかどうかを指定します。有効にすると、この設定は ARMS からのすべての自動コードエンハンスメントをブロックします。注意してご使用ください。 |
--licenseKey | INSTGO_LICENSE_KEY | String | なし | ARMS の LicenseKey を指定します。このパラメーターが指定されると、開発者モードはデフォルトで無効になります。LicenseKey は OpenAPI 操作を呼び出すことで取得できます。詳細については、「DescribeTraceLicenseKey - ライセンスキーのリスト」をご参照ください。 |
--regionId | INSTGO_REGION_ID | String | cn-hangzhou | エージェントパッケージをプルするリージョンと、コンパイルログがレポートされるリージョンを指定します。コンパイル環境が VPC の場合は、ご利用のコンパイル環境が配置されているリージョンに変更してください。 |
--rule | INSTGO_RULE | String | なし | Golang エージェントのコードエンハンスメントテンプレートを追加します。このパラメーターの使用方法の詳細については、「Golang エージェントのカスタム拡張機能の使用」をご参照ください。 |
--timeout | INSTGO_TIMEOUT | Int | 180 | Golang エージェントをプルするタイムアウト期間を秒単位で指定します。 |
--verbose | INSTGO_VERBOSE | Bool | false | 詳細なコンパイルログを出力するかどうかを指定します。 |
--vpc | INSTGO_VPC | Bool | false | デフォルトで内部ネットワーク経由で Golang エージェントをプルするかどうかを指定します。 |
--vendored | INSTGO_VENDORED | Bool | false | プロジェクトをベンダーモードでコンパイルします。 |
--extra | INSTGO_EXTRA_RULES | String | なし | ARMS エージェントが提供する非 Base ルールを適用するために使用されます。たとえば、Dify プラグインに Python エージェントを注入する場合 (値:dify_python) などです。現在、dify_python のみがサポートされています。 |
--disable | INSTGO_DISABLE_RULES | String | なし | インストルメンテーション中にインストルメントすべきでない SDK を指定するために使用されます (例:gin.json や fasthttp.json)。all に設定すると、インストルメンテーションは実行されません。 |
--uid | INSTGO_ARMS_UID | String | なし | コンパイル用のユーザー ID を設定するために使用されます。 |
--goCache | INSTGO_GO_CACHE | String | なし | コンパイルを高速化するために、コンパイル用の Go キャッシュパス (例:/tmp/go-cache) を設定するために使用されます。 |
コンパイルパラメーターを set コマンドで指定する
set コマンドを使用して、コンパイルパラメーターを変更できます。このコマンドは、指定されたパラメーターを $HOME/.instgo.yaml ファイルに保存します。後続のコンパイルコマンドは、このファイルからこれらの事前に設定された値を自動的に読み取ります。
たとえば、本番モードのコンパイルパラメーターを設定し、LicenseKey と RegionId を指定するには、次のようにします:
instgo set --licenseKey=${ARMS_LICENSEKEY} --regionId=${ARMS_REGIONID} --dev=false後続のコンパイルでは、デフォルトでプリセットされたコンパイルパラメーターが使用されます。
instgo go build -aコンパイルパラメーターのリセット
set コマンドでコンパイルパラメーターを変更した後、reset コマンドを使用してすべてのパラメーターをデフォルト値にリセットできます。
instgo reset環境変数を使用したコンパイルパラメーターの指定
他のコンパイルに影響を与えずに、単一のコンパイルにコンパイルパラメーターを追加するには、環境変数を使用できます。環境変数は、現在のコマンドラインセッションにのみ適用されます。
たとえば、本番モードのコンパイルパラメーターを設定し、licenseKey と regionId を指定するには、次のようにします:
LicenseKey は、DescribeTraceLicenseKey OpenAPI 操作を呼び出して取得できます。
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 -aWindows
$env:INSTGO_LICENSE_KEY=${ARMS_LICENSEKEY}; $env:INSTGO_REGION_ID=${ARMS_REGIONID}; $env:INSTGO_DEV="false"; instgo.exe go build -aGolang 可観測性一時ファイルのクリーンアップ
clean コマンドを実行して、現在のディレクトリから一時的なコンパイルファイルとランタイムファイルを削除できます。 例:
instgo cleanローカルにキャッシュされた Golang エージェントを削除するには、--localAgents フラグを追加します:
instgo clean --localAgentsinstgo ツールの手動アップグレード
古いバージョンの instgo をお持ちの場合は、update コマンドを実行して instgo ツールと Golang エージェントを更新できます。 このコマンドを実行すると、オンラインで利用可能な最新バージョンに更新されます。 例:
instgo updateデフォルトでは、instgo は ARMS のリリーススケジュールに基づいて各コンパイルの開始時に自動的に更新されます。一部のエッジケースでは、これによりコンパイルが失敗する可能性があります。通常、コンパイルを再試行すると問題は解決します。
お使いの instgo のバージョンが 1.3.0 より前の場合、
updateコマンドが利用できない場合があります。この場合、既存の instgo ツールを削除し、最新バージョンをダウンロードする必要があります。
Instgo リリース履歴
バージョン | リリース日 | リリースノート |
1.4.6 | 2026年1月27日 |
|
1.4.5 | 2026 年 1 月 9 日 |
|
1.4.4 | 2025年12月22日 |
|
1.4.3 | 2025年12月9日 |
|
1.4.2 | 2025 年 10 月 28 日 |
|
1.4.1 | 2025 年 10 月 14 日 |
|
1.4.0 | 2025 年 9 月 11 日 |
|
1.3.9 | 2025 年 8 月 5 日 |
|
1.3.8 | 2025 年 5 月 29 日 |
|
1.3.7 | 2025 年 5 月 19 日 |
|
1.3.6 | 2025 年 4 月 28 日 |
|
1.3.5 | 2025 年 4 月 17 日 | instgo は、ベンダーモードでのプロジェクトコンパイルをサポートするようになりました。 |
1.3.4 | 2025 年 3 月 31 日 | instgo は、ネイティブの Go コマンドのプロキシをサポートするようになりました。 |
1.3.3 | 2025 年 2 月 28 日 | デフォルトのエージェントバージョンが 1.6.0 に更新されました。 |
1.3.2 | 2025 年 1 月 17 日 | instgo の変更権限を持たないユーザーが、コンパイル中の自動更新の失敗により繰り返し更新をトリガーする問題を修正しました。 説明 ご利用の instgo ツールでこの問題が発生した場合は、削除して再度ダウンロードしてください。 |
1.3.1 | 2025 年 1 月 10 日 | Linux および Darwin オペレーティングシステムでは、デフォルトのエージェントキャッシュディレクトリが |
1.3.0 | 2024 年 12 月 5 日 |
|