Monitoring Ruby
instana gem 提供 支援的技術的自動化程式碼檢測、Ruby 實例的零配置性能監視,以及所有系統中要求的端對端追蹤。
支援的執行時期、架構及程式庫
如需相關資訊,請參閱專用的 Ruby 支援版本文件。
執行時期度量
- Ruby 版本
- 執行時期引數
- 架構
- Gem 軟體組
- 在 GC 中耗費的時間
- 記憶體用量
- 資料堆插槽
- 執行緒
安裝
gem 可在 Rubygems上取得。 若要安裝,請將這一行新增至應用程式 Gemfile 的 結尾 :
gem 'instana'
然後執行:
bundle
或自行安裝為:
gem install instana
追蹤器日誌
在需要時,檔案庫將輸出:
Stan is on the scene. Starting Instana instrumentation version X.X.X.
代理程式建立與主機代理程式的連線之後,它會輸出:
Host agent available. We're in business.
可能會出現其他日誌訊息,並指出錯誤狀態。 如需詳細資料,請參閱 疑難排解 一節。
平台
Kubernetes
Instana AutoTrace WebHook 是 Kubernetes 轉換 WebHook Admission Controller 的實作,它會在整個 Kubernetes 叢集中自動設定使用 Instana 監視 Ruby 應用程式所需的一切。
如果您選擇在 Kubernetes 叢集上安裝 Instana AutoTrace WebHook ,則不需要執行任何手動步驟來追蹤在那些叢集裡執行的任何 Ruby 應用程式。
若為 Kubernetes (及其他容器型部署) , Instana Ruby gem 需要可用的 ip 二進位檔 (例如從 iproute2 OS 套件)。 此需求將在未來版本中移除。
Cloud Foundry
標準安裝方法方法 也可以在 Cloud Foundry 上使用 Cloud Foundry Ruby 建置套件。 此外,從 Tile 1.177.0版開始, instana_buildpack 會自動設定 Cloud Foundry上的 Ruby 應用程式。 如需相關資訊,請參閱 Instana 建置套件 說明文件。
配置
雖然 gem 沒有現成度量及分散式追蹤所需的配置,但可以視需要配置個別元件。 如需相關資訊,請參閱 Ruby 配置 頁面。
軟體開發套件
Instana gem 支援原生軟體開發套件及 OpenTracing sdk。
Instana 原生 SDK
OpenTracing
疑難排解
未安裝 Ruby 感應器
監視問題類型: ruby_sensor_not_installed
未安裝 Instana AutoTrace WebHook ,且 Ruby 程序不包含 instana Ruby gem ,或者 Ruby 感應器無法與 Instana 主機代理程式通訊。
若要啟動 Instana Monitoring for Ruby ,請參閱 安裝 一節。 如果您確定已正確安裝 Instana AutoTrace WebHook 或 Ruby gem ,請遵循 Instana Ruby 感應器的 Ruby 處理程序未顯示在儀表板中 中的步驟來疑難排解此問題。
驗證程序已檢測
如果您使用 Instana AutoTrace WebHook ,且 Ruby 感應器在作用中,您可以在應用程式日誌中看到下列行:
AutoTracing for Ruby is starting on version #<version>
如果您在應用程式的日誌中沒有看到這一行,則表示設定不正確。 如需正確設定的相關資訊,請參閱 Instana AutoTrace WebHook。
如果您正在執行手動檢測,請確定 instana gem 已安裝在應用程式中且在作用中。 如果 Ruby 感應器在作用中,您會在應用程式的日誌中看到下列項目:
Stan is on the scene. Starting Instana instrumentation version #<version>
如果您 沒有 看到這個日誌,表示設定不正確。 請參閱 安裝 文件。
如果您 確實 看到上述日誌訊息,則很可能是主機代理程式的網路連線功能問題,請參閱下一節。
驗證追蹤程式可以連接至主機代理程式
如果已安裝 Ruby 追蹤程式 (請參閱前一節) ,請驗證 Ruby 處理程序可以連接至埠 42699 上 相同主機上 的主機代理程式。 如需所需網路可見性的相關資訊,請參閱 Instana 主機代理程式的 網路需求 文件。
我們越來越常看到的是,在儲存器化平台中,具有要追蹤之應用程式的儲存器與 Instana 主機代理程式的儲存器之間有網路可見性問題; 另一個相同類型的問題,由於某個套版網路設定,要追蹤之應用程式的儲存器未連接 相同主機上的 Instana 代理程式儲存器。
問題通常是 Ruby 追蹤器使用 錯誤 的 IP 位址或 DNS 名稱來與 Instana 代理程式交談。 您可以透過 INSTANA_AGENT_HOST 環境變數,指示 Ruby 追蹤程式使用特定的網址。
在極少數情況下,我們看到客戶已設定其網路,因此問題不是網址,而是追蹤程式所使用的 埠 。 如果您需要埠重新對映,因為主機代理程式不會在埠 42699 上接聽,但會進行其他作業,您可以透過 INSTANA_AGENT_PORT 環境變數指示追蹤程式使用不同的埠。
如果上述都無法協助您對問題進行疑難排解,請開立 支援問題單。
與其他檢測及監視程式庫的互動
從 194 版開始, instana gem 使用 prepend 而非別名鏈結,以容許它在檢測及監視程式庫的一端運作。 這表示如果多個程式庫將其檢測附加在目標方法的前面,則檢測將會發動序列。
如果您需要明確地將 instana gem 所檢測的方法別名鏈結,或您正在使用為您執行別名鏈結的程式庫,則在載入 instana gem 之後,需要執行明確別名鏈結或載入執行別名鏈結的程式庫。 否則, instana 檢測無法運作。
其他問題
看到非預期的事物,或嘗試配置某個項目時遇到問題? 如需說明,請參閱「 Ruby 疑難排解 」頁面。