Monitoring Apigee Microgateway
Instana Node.js Collector 支援從 @instana/collector@1.89.0版開始的 Apigee Microgateway (也稱為 edgemicro)。
當您透過執行 edgemicro start 或 edgemicro forever -a start來啟動 Microgateway 實例時,需要額外的步驟 (在此頁面上說明) ,才能與 Instana Node.js 收集器搭配使用。 此實務範例通常需要透過 npm install -g edgemicro 或 yarn global add edgemicro 來廣域安裝 edgemicro 套件 (而不是將它安裝為應用程式的相依關係)。 另一方面,如果您在自己的自訂應用程式中使用 microgateway-core 作為相依關係,則不需要此頁面上的指示。 請改用 @instana/collector的 預設安裝方法 。
搭配使用 edgemicro 與 @instana/collector
若要在一般 Node.js 應用程式中使用 Instana Node.js 收集器,您可以新增類似下列的行:
require('@instana/collector')();
程式碼庫的主要項目檔案。 但當您廣域安裝 edgemicro 並使用 edgemicro 指令行介面來啟動 Apigee Microgateway 時,沒有自訂程式碼可新增此行。
在此實務範例中, Instana 收集器套件提供一個執行檔,將靜態檢測現有的 edgemicro 安裝,並使該安裝 Instana 備妥。
檢測需要在執行您要監視之 edgemicro 實例的機器上進行。 如果您在容器中執行 edgemicro ,則需要在該容器中執行這些步驟。 它只需要在該機器/儲存器上安裝 edgemicro 套件之後執行一次,而不是每次您想要啟動 edgemicro時執行。 以下是準備 edgemicro 安裝以進行 Instana 監視和追蹤的必要步驟:
- 透過執行
npm install -g @instana/collector,將套件@instana/collector廣域安裝在與edgemicro安裝架構相同的機器上/在與安裝架構相同的容器中 (或更精確地,在可從edgemicro安裝架構存取的檔案系統上)。 - 在已安裝
@instana/collector的情況下,您已準備好為 Instana 準備edgemicro安裝。 執行下列指令:instana-instrument-edgemicro-cli - 此執行檔由
@instana/collector提供,當您廣域安裝套件時,應該位於您的路徑中。 如果您的 Shell 未設定為從廣域安裝的 npm 套件中尋找執行檔,則您也可以撤回以執行$(npm root -g)/../../bin/instana-instrument-edgemicro-cli。 - 完成時應該會列印此指令。
Done: The edgemicro module has been statically instrumented for Instana tracing and metrics collection.
附註: 當 edgemicro 重新安裝或更新至較新版本時,需要重複此程序 (特別是呼叫 instana-instrument-edgemicro-cli)。 針對相同的 edgemicro 安裝多次執行它並不有害。 執行檔夠聰明,足以辨識安裝已檢測,必要的話,它會更新現有的檢測。 如果套件 @instana/collector 的位置變更,也需要重複此程序,但當該套件更新至適當的較新版本時,則不需要重複此程序。
進階使用情形
執行檔通常不需要任何引數,因為它能夠找到廣域安裝的 edgemicro 安裝。 不過,您可以選擇性地提供 edgegateway (以及 @instana/collector) 的位置作為引數:
instana-instrument-edgemicro-cli [edgemicro_path [instana-collector-path]]
範例:
# let Instana figure out the paths
instana-instrument-edgemicro-cli
# specify the edgemicro path
instana-instrument-edgemicro-cli /path/to/edgemicro
# also specify the @instana/collector path`
instana-instrument-edgemicro-cli /path/to/edgemicro /path/to/@instana/collector
若要找出 edgemicro 套件的安裝位置,請執行下列動作:
- 執行指令
npm root -g,以找出廣域node_modules資料夾所在的位置。 假設此列印/usr/local/lib/node_modules。 如果已廣域安裝edgemicro套件,它應該位於/usr/local/lib/node_modules/edgemicro目錄中,這是我們要尋找的安裝位置。 - 此外,執行指令
ls -l $(which edgemicro),以找出在指令行上使用edgemicro指令時實際使用的執行檔。 輸出可能類似於:ls -l $(which edgemicro)lrwxrwxrwx 1 user group 01 Jan 19 01:23 /usr/local/bin/edgemicro -> ../lib/node_modules/edgemicro/cli/edgemicro - 這會驗證安裝在
/usr/local/lib/node_modules/edgemicro中的edgemicro套件是否為使用edgemicro指令時所使用的套件。
我看到非預期的 Instana 日誌輸出,這是怎麼回事?
作為此檢測的負面影響,您也可能會在執行其他 edgemicro 指令 (例如 edgemicro stop、 edgemicro reload、 edgemicro version 等) 時看到來自 @instana/collector 的日誌輸出。 這是預期的,可以放心忽略。