1. 適用場景

為了更加方便使用者除錯程式碼和調整數據格式,我們為各個語言的 SDK 以及 LogAgent、BatchImporter 等匯入工具,增加了除錯模式的選項,主要用於:

  1. 在開發人員除錯程式碼和數據時使用;
  2. 以同步、阻塞的方式,向後端發送數據;部分語言由於語言特性,這一機制可能略有不同;
  3. 即時地展示伺服器端的校驗結果,當校驗失敗時,不僅僅會展示具體的錯誤原因,並且會以拋出異常等形式(具體實現取決於具體語言),顯示地提醒使用者;
  4. 對於校驗成功的數據,在匯入輔助工具中,可以即時看到最終入庫的的各條數據的各個欄位的值與型別。 

請注意:Debug 模式是為方便開發者除錯而設定的模式,該模式會逐條校驗數據並在校驗失敗時拋出異常,性能遠低於正常模式。線上環境使用 Debug 模式會嚴重影響性能並存在崩潰風險,產品上線前請務必替換掉/關閉 Debug 模式。

2. 後端 SDK 的除錯模式

2.1. Python SDK

在 Python SDK 中,使用除錯模式,需要初始化一個專門的 DebugConsumer 物件,然後用這個 DebugConsumer 物件來初始化對應的 SensorsAnalytics 物件。

DebugConsumer 的建構函數的定義如下:

def __init__(self, url_prefix, write_data=True, request_timeout=None):
        """
        初始化Consumer
        :param url_prefix: 神策分析用於數據接收的 URL
        :param write_data: 發送過去的數據是真正寫入,還是僅僅進行檢查
        :param request_timeout:請求的超時時間,單位毫秒
        :return:
        """
PY

各個參數含義在註釋上已經寫明了。特別需要強調幾點:

  1. url_prefix:該參數與其他 Consumer 一樣,為神策分析用於數據接收的 URL
  2. write_data:這個參數預設為 True,也即發送過去的數據會真正地寫入後端;如果這個參數設定為 False,則說明數據只發送過去進行校驗,不會真正地寫入。

2.2. PHP SDK

PHP SDK 的除錯模式的使用方式和 Python SDK 類似,也是建構一個 DebugConsumer 的物件,然後用它來初始化 SensorsAnalytics 物件。

DebugConsumer 的建構函數如下:

    /**
     * DebugConsumer constructor,用於除錯模式.
     * 具體說明可以參照: http://www.sensorsdata.cn/manual/debug_mode.html
     * 
     * @param string $url_prefix 神策分析用於數據接收的 URL
     * @param bool $write_data 是否把發送的數據真正寫入
     * @param int $request_timeout 請求伺服器的超時時間,單位毫秒.
     * @throws SensorsAnalyticsDebugException
     */
    public function __construct($url_prefix, $write_data = True, $request_timeout = 1000)
PHP

各個參數的含義與 Python SDK 基本一致,不再贅述。

2.3. Java SDK

在 Java SDK 中使用除錯模式,需要初始化一個專門的 DebugConsumer 物件,然後用這個 DebugConsumer 物件來初始化對應的 SensorsAnalytics 物件。DebugConsumer 的建構函數的定義如下:

    /**
     * DebugConsumer,用於除錯模式
     *
     * @param serverUrl 神策分析採集數據的 URL
     * @param writeData 是否把發送的數據真正寫入神策分析
     */
    public DebugConsumer(final String serverUrl, final boolean writeData)
JAVA

各個參數的含義與 Python SDK 基本一致,不再贅述。

3. App SDK的除錯模式

為了防止客戶上線時忘記關閉 Debug 模式,Android、iOS SDK 預設為 DebugOff,如果需要開啟,可以參考除錯模式動態設定

4. 匯入工具的除錯模式

LogAgent 和 BatchImporter 的除錯模式主要是對數據正確性的校驗,詳情請參考: