Monitoring Apigee Microgateway

Instana Node.js Collector 支援從 @instana/collector@1.89.0版開始的 Apigee Microgateway (也稱為 edgemicro)。

當您透過執行 edgemicro startedgemicro forever -a start來啟動 Microgateway 實例時,需要額外的步驟 (在此頁面上說明) ,才能與 Instana Node.js 收集器搭配使用。 此實務範例通常需要透過 npm install -g edgemicroyarn 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 stopedgemicro reloadedgemicro version 等) 時看到來自 @instana/collector 的日誌輸出。 這是預期的,可以放心忽略。

另請參閱