1

我需要爲我們的應用程序連接監視和跟蹤工具。我們的主要代碼是運行在Google Cloud Functions上的Express 4。來自前端nginx代理服務器的所有請求處理域名和漂亮路由名稱。不幸的是,跟蹤代理跟蹤這些請求,這是nginx前端代理沒有任何額外的信息,這是不夠的,收集有關應用程序的有用信息。我發現堆棧驅動程序自定義API,據我所知,這可能有助於在運行時收集適當的數據,但我不明白如何將其連接到Google Cloud Functions應用程序。所有其他示例都說,我們必須擴展我們的啓動腳本,但Google Cloud Functions完全自動化的東西,這裏沒有這種可能性。帶有跟蹤代理連接的Google雲端函數

回答

1

找到解決辦法。我包括require("@google-cloud/trace-agent");不在index.js的頂部。它應該包括之前所有其他模塊。之後,它開始工作。

1

配售要求(「@ google-cloud/trace-agent」)作爲第一次導入不適用於我。我仍然一直得到:

ERROR:@google-cloud/trace-agent: express tracing might not work as /var/tmp/worker/node_modules/express/index.js was loaded before the trace agent was initialized. 

但是我設法通過手動修補快遞來解決它:

var traceApi = require('@google-cloud/trace-agent').get(); 
require("@google-cloud/trace-agent/src/plugins/plugin-express")[0].patch(
    require(Object.keys(require('module')._cache).find(_ => _.indexOf("express") !== -1)), 
    traceApi 
); 
+0

嗯,我也遇到這個錯誤,當我返回到*跟蹤代理*的另一個項目。我們並不需要如此批評這些項目的追蹤代理,所以我們推遲了整合。我檢查了已經建立* trace-agent *的舊項目,並且沒有出現新錯誤。就目前而言,它在我最初的問題中運作良好。 – QuestionAndAnswer

+0

我有一個補充,這個錯誤,你提到。我認爲,這個錯誤實際上屬於GCF的根級表達應用。我有一個假設,用戶定義的HTTP GCF包裝在快速應用程序中,並且根級表達式(不受我們控制並且由Google的工程師定義)將請求傳遞到我們的導出函數,處理請求。在任何情況下,即使出現此錯誤,按文檔建議的方式連接trace-agent仍然有效。 – QuestionAndAnswer

相關問題