Instgo adalah alat kompilasi yang disediakan oleh Application Real-Time Monitoring Service (ARMS) untuk aplikasi Golang. Setelah Anda mengompilasi proyek Golang menggunakan instgo, ARMS dapat memantau aplikasi tersebut, sehingga Anda dapat melihat data pemantauan seperti topologi aplikasi, rantai panggilan, dan analisis SQL.
Topik ini hanya berlaku untuk instgo versi 1.3.0 dan yang lebih baru. Anda dapat menjalankan perintah instgo version untuk memeriksa versi instgo. Jika versi Anda lebih lama dari 1.3.0, Anda harus melakukan peningkatan. Untuk informasi selengkapnya, lihat Mulai memantau aplikasi Go.
Prasyarat
Pastikan lingkungan kompilasi Anda dapat terhubung ke internet atau jaringan internal Alibaba Cloud. Security group pada lingkungan kompilasi Anda harus mengizinkan outbound traffic TCP pada Port 80.
Untuk men-deploy artefak yang telah dikompilasi di lingkungan produksi, Anda harus mengonfigurasi parameter kompilasi LicenseKey dan RegionId. Untuk informasi selengkapnya, lihat Mulai memantau aplikasi Go.
Unduh instgo
Gunakan perintah
wgetuntuk mengunduh alat kompilasi. Pilih alamat unduhan berdasarkan lingkungan kompilasi dan wilayah tempat mesin Anda berada.Perhatikan bahwa instgo memicu pembaruan otomatis selama kompilasi. Simpan instgo ke direktori yang memiliki izin modifikasi bagi pengguna kompilasi.
CatatanAlat kompilasi ini sama untuk semua wilayah. Jika lingkungan jaringan publik Anda dapat mengakses alamat Object Storage Service (OSS), Anda dapat menggunakan public endpoint untuk China (Hangzhou) yang sesuai dengan sistem operasi dan arsitektur Anda untuk mendapatkan alat tersebut.
Berikan izin eksekusi kepada alat kompilasi.
Linux/Darwin
# Berikan izin eksekusi chmod +x instgoWindows
Tidak diperlukan izin eksekusi di Windows.
Periksa apakah instgo tersedia.
Jalankan perintah versi untuk melihat versi instgo. Jika muncul pesan serupa
Instgo version 1.3.0_dea8285, berarti pengunduhan berhasil.Linux/Darwin
./instgo versionWindows
.\instgo.exe version(Opsional) Tambahkan alat instgo ke PATH lingkungan kompilasi Anda.
Kompilasi aplikasi Golang menggunakan instgo
Saat mengompilasi aplikasi Golang, pastikan perintah `go` berada dalam PATH lingkungan kompilasi Anda. Anda dapat menjalankan perintah go version untuk memverifikasi hal ini.
Perintah kompilasi asli untuk aplikasi Golang:
go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.goPerintah kompilasi menggunakan instgo dalam mode prefix:
instgo go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.goJika instgo tidak disimpan dalam PATH Anda, ganti prefix dengan jalur relatif atau jalur mutlak menuju instgo:
/path/to/instgo go build -ldflags "-X main.Env=prod -X main.Version=1.0.0" -o app main.goKonfigurasikan parameter kompilasi untuk instgo
Instgo menyediakan serangkaian parameter kompilasi untuk mengontrol perilaku kompilasinya. Anda dapat menjalankan perintah instgo list untuk melihat semua parameter kompilasi yang tersedia beserta nilai saat ini.
Anda dapat menggunakan parameter default untuk mengompilasi dan men-deploy aplikasi Golang Anda. Namun, untuk men-deploy artefak ke lingkungan produksi, Anda harus menentukan LicenseKey dan RegionId sebelum kompilasi.
Flag Key | Env Key | Jenis parameter | Nilai default | Deskripsi |
--agentVersion | INSTGO_AGENT_VERSION | String | Tidak ada | Menentukan versi agen Golang. |
--agentPath | INSTGO_AGENT_PATH | String | Tidak ada | Menentukan jalur lokal untuk agen Golang. |
--cacheDir | INSTGO_CACHE_DIR | String | Tidak ada | Menentukan direktori cache untuk agen Golang. |
--dev | INSTGO_DEV | Bool | true | Menentukan mode kompilasi sebagai mode developer. Mode ini digunakan untuk menguji ketersediaan fitur dasar. Beberapa fitur mungkin terdegradasi. Untuk menggunakan aplikasi secara online, tentukan LicenseKey. |
--disableDefaultRule | INSTGO_DISABLE_DEFAULT_RULE | Bool | false | Menentukan apakah akan menonaktifkan peningkatan kode yang disediakan oleh ARMS. Jika diaktifkan, pengaturan ini akan memblokir semua peningkatan kode otomatis dari ARMS. Gunakan dengan hati-hati. |
--licenseKey | INSTGO_LICENSE_KEY | String | Tidak ada | Menentukan LicenseKey untuk ARMS. Saat parameter ini ditentukan, mode developer dinonaktifkan secara default. Anda dapat memperoleh LicenseKey dengan memanggil operasi OpenAPI. Untuk informasi selengkapnya, lihat DescribeTraceLicenseKey - Daftar LicenseKey. |
--regionId | INSTGO_REGION_ID | String | cn-hangzhou | Menentukan wilayah tempat paket agen diambil dan tempat log kompilasi dilaporkan. Jika lingkungan kompilasi berada dalam VPC, ubah parameter ini menjadi wilayah tempat lingkungan kompilasi Anda berada. |
--rule | INSTGO_RULE | String | Tidak ada | Menambahkan templat peningkatan kode untuk agen Golang. Untuk informasi selengkapnya tentang cara menggunakan parameter ini, lihat Gunakan fitur ekstensi kustom agen Golang. |
--timeout | INSTGO_TIMEOUT | Int | 180 | Menentukan periode timeout untuk mengambil agen Golang, dalam detik. |
--verbose | INSTGO_VERBOSE | Bool | false | Menentukan apakah akan mencetak log kompilasi detail. |
--vpc | INSTGO_VPC | Bool | false | Menentukan apakah akan mengambil agen Golang melalui jaringan internal secara default. |
--vendored | INSTGO_VENDORED | Bool | false | Mengompilasi proyek dalam mode vendor. |
--extra | INSTGO_EXTRA_RULES | String | None | Digunakan untuk menerapkan aturan non-Base yang disediakan oleh Agen ARMS, seperti menyuntikkan agen Python ke Plugin Dify (nilai: dify_python). Saat ini, hanya dify_python yang didukung. |
--disable | INSTGO_DISABLE_RULES | String | None | Digunakan untuk menentukan SDK yang tidak boleh diinstrumentasi selama instrumentasi (seperti gin.json atau fasthttp.json). Jika diatur ke all, tidak ada instrumentasi yang dilakukan. |
--uid | INSTGO_ARMS_UID | String | None | Digunakan untuk mengonfigurasi ID pengguna untuk kompilasi. |
--goCache | INSTGO_GO_CACHE | String | None | Digunakan untuk mengonfigurasi jalur cache Go untuk kompilasi, seperti /tmp/go-cache, guna mempercepat kompilasi. |
Tentukan parameter kompilasi menggunakan perintah set
Anda dapat menggunakan perintah set untuk mengubah parameter kompilasi. Perintah ini menyimpan parameter yang ditentukan ke file $HOME/.instgo.yaml. Perintah kompilasi selanjutnya secara otomatis membaca nilai prasetel ini dari file tersebut.
Sebagai contoh, untuk mengatur parameter kompilasi untuk mode produksi dan menentukan LicenseKey serta RegionId:
instgo set --licenseKey=${ARMS_LICENSEKEY} --regionId=${ARMS_REGIONID} --dev=falseKompilasi selanjutnya akan menggunakan parameter kompilasi prasetel secara default.
instgo go build -aSetel ulang parameter kompilasi
Setelah Anda mengubah parameter kompilasi dengan perintah set, Anda dapat menggunakan perintah reset untuk mengatur ulang semua parameter ke nilai default-nya.
instgo resetTentukan parameter kompilasi menggunakan variabel lingkungan
Untuk menambahkan parameter kompilasi untuk satu kali kompilasi tanpa memengaruhi kompilasi lainnya, Anda dapat menggunakan variabel lingkungan. Variabel lingkungan hanya berlaku untuk sesi command line saat ini.
Sebagai contoh, untuk mengatur parameter kompilasi untuk mode produksi dan menentukan licenseKey serta regionId:
Anda dapat memperoleh LicenseKey dengan memanggil operasi OpenAPI DescribeTraceLicenseKey.
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"Proses kompilasi dalam sesi command line saat ini pertama-tama memeriksa variabel lingkungan yang sesuai. Jika variabel lingkungan tidak diatur, proses tersebut menggunakan parameter kompilasi yang telah diprasetel menggunakan perintah set.
instgo go build -aAnda juga dapat mengonfigurasi variabel lingkungan kompilasi dan perintah kompilasi pada baris yang sama:
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 -aBersihkan file sementara observabilitas Golang
Anda dapat menjalankan perintah clean untuk menghapus file kompilasi dan runtime sementara dari direktori saat ini. Contohnya:
instgo cleanUntuk menghapus agen Golang yang di-cache secara lokal, tambahkan flag --localAgents:
instgo clean --localAgentsPerbarui tool instgo secara manual
Jika Anda memiliki versi instgo yang lama, Anda dapat menjalankan perintah update untuk memperbarui alat instgo dan agen Golang Anda. Perintah ini memperbaruinya ke versi terbaru yang tersedia online. Contohnya:
instgo updateSecara default, instgo secara otomatis memperbarui pada awal setiap kompilasi berdasarkan jadwal rilis ARMS. Dalam beberapa kasus tepi, hal ini dapat menyebabkan kegagalan kompilasi. Mengulangi kompilasi biasanya menyelesaikan masalah tersebut.
Jika versi instgo Anda lebih lama dari 1.3.0, perintah
updatemungkin tidak tersedia. Dalam hal ini, Anda harus menghapus alat instgo yang ada dan mengunduh versi terbaru.
Riwayat rilis Instgo
Versi | Tanggal rilis | Catatan rilis |
1.4.6 | 27 Januari 2026 |
|
1.4.5 | 9 Januari 2026 |
|
1.4.4 | 22 Desember 2025 |
|
1.4.3 | 9 Desember 2025 |
|
1.4.2 | 28 Oktober 2025 |
|
1.4.1 | 14 Oktober 2025 |
|
1.4.0 | 11 September 2025 |
|
1.3.9 | 5 Agustus 2025 |
|
1.3.8 | 29 Mei 2025 |
|
1.3.7 | 19 Mei 2025 |
|
1.3.6 | 28 April 2025 |
|
1.3.5 | 17 April 2025 | instgo kini mendukung kompilasi proyek dalam mode vendor. |
1.3.4 | 31 Maret 2025 | instgo kini mendukung proxy perintah Go native. |
1.3.3 | 28 Februari 2025 | Memperbarui versi Agent default menjadi 1.6.0. |
1.3.2 | 17 Januari 2025 | Memperbaiki masalah di mana pengguna tanpa izin modifikasi untuk instgo akan memicu pembaruan berulang karena kegagalan pembaruan otomatis selama kompilasi. Catatan Jika Anda mengalami masalah ini dengan tool instgo Anda, hapus dan unduh kembali. |
1.3.1 | 10 Januari 2025 | Pada sistem operasi Linux dan Darwin, direktori cache agen default diubah menjadi |
1.3.0 | 5 Desember 2024 |
|