SDK主要功能
不同語言的SDK實現邏輯在具體細節上會存在細微差異,但都是對云日志服務API的進一步包裝,實現的功能基本一致,SDK的主要功能包括:
- 跨語言封裝 :云日志服務為各種編程語言提供了統一的API封裝庫,讓您無需關注底層API的調用細節,即可實現高效、安全的日志服務交互。
- 數字簽名自動化 :封裝庫內置了數字簽名功能,您無需手動處理復雜的簽名邏輯,只需提供必要的認證信息,SDK將自動完成簽名過程。
- ProtoBuffer透明封裝 :在上傳日志時,SDK會自動將您的日志數據轉換為符合ProtoBuffer格式的二進制數據,讓您無需關心具體的ProtoBuffer編碼細節。
- 壓縮支持 :SDK支持日志數據的壓縮傳輸,以提升傳輸效率和存儲效率。默認情況下,SDK會啟用壓縮模式,默認使用lz4壓縮。
- 統一錯誤處理 :云日志服務提供了統一的錯誤處理機制,讓您可以按照您所熟悉的語言習慣來處理API請求中可能出現的異常。
- 異步請求 :目前,云日志服務提供的SDK全部具備同步請求方式,確保請求的完整性和順序性。部分SDK提供異步請求、批量上傳等更強大的功能。
這些特性旨在降低使用云日志服務API的復雜性,提高開發效率。更多詳細信息,請參考下文提供的接口規范、請求簽名、ProtoBuffer格式、錯誤處理機制等文檔。
SDK列表
使用前準備
- 已在對應區域(資源池)開通云日志服務,詳情參考開通云日志服務。
- 目標端云主機所在的vpc需要創建vpc終端節點,以打通與日志服務的網絡連接,操作詳情參考接入概述。
- 使用SDK接入云日志服務,需要設置正確的 AccessKey、SecretKey 和服務端 Endpoint。在調用前SDK,你需要已知以下參數:
- 云日志服務訪問地址。詳情請查看訪問地址(Endpoint)。
- key憑證:accessKey和secretKey 。詳情請查看如何獲取訪問密鑰(AK/SK)。
- 日志項目編碼:logProject,在使用SDK前,需要確保您有至少一個已經存在的日志項目。
- 日志單元編碼:logUnit,在使用SDK前,需要確保日志項目中有至少一個已經存在的日志單元。
- 待上傳的日志:logItem,在使用SDK前,需要確保日志已按照特定格式組織。
參數說明
| 參數 | 類型 | 描述 | 是否必須 |
|---|---|---|---|
| endpoint | string | 訪問地址,詳情請查看訪問地址(Endpoint) | 是 |
| accessKey | string | AccessKey,簡稱AK | 是 |
| secretKey | string | SecretKey ,簡稱SK | 是 |
| logProject | string | 日志項目編碼 | 是 |
| logUnit | string | 日志單元編碼 | 是 |
| logItem | LogItem | 待上傳的日志 | 是 |
日志格式
日志格式根據SDK的語言類型有細微的差異,以Java SDK 為例,LogItem 有四個參數。
content 和 labels 是一個List 類型,其中的 LogContent和 Labels是一個<K,V>類型,K 是String 類型,V是一個泛型,可以為String、int、double等類型。
注意:其中content和labels的key的長度不超過64字符,僅支持數字、字母、下劃線、連字符(-)、點(.),且必須以字母開頭。value類型最好使用字符串(String)和數字類型(int,double),其他類型建議先轉為字符串類型,并且value值不能為空或空字符串。
| 參數 | 類型 | 描述 | 是否必須 |
|---|---|---|---|
| log_timestamp | long | 時間戳,單位納秒,一般是當前時間 | 是 |
| origin_msg | string | 原始日志內容 | 是 |
| content | ArrayList |
對日志進行分詞后的內容,可用于索引 | 否 |
| labels | ArrayList |
自定義標簽 | 否 |
參數(Endpoint) 獲取方式
各資源池地址請查看訪問地址(Endpoint)。
參數(AccessKey、SecretKey)獲取方式
天翼云賬號的AK和SK,硬編碼到代碼中或者明文存儲都有很大的安全風險,建議密文存放,使用時解密,確保安全,或者設置在環境變量中,從環境變量中獲取。
AK、SK可以通過登錄天翼云官網,在用戶的賬號中心中查看。詳情請查看如何獲取訪問密鑰(AK/SK)。
參數(logProject、logUnit)獲取方式
logProject、logUnit代表了日志上傳的目標日志項目與目標日志單元。要獲取這兩個參數的前提是您已經成功開通了云日志服務,并創建了日志項目和日志單元,詳情參考創建日志項目與日志單元。
創建完成后,您可在云日志服務控制臺-日志管理-日志項目與日志單元列表中獲取。
注意日志項目和日志單元編碼所屬區域要和訪問地址endpoint相對應,例如日志項目和日志單元開通在華東1區域內,則也需要使用華東1的endpoint。
接入限制
目前API 和 SDK日志上傳都進行了頻控限流措施,目前的傳輸的限制如下:
- 在1個日志項目下,寫入流量最大限制:200MB/s
- 在1個日志項目下,寫入次數最大限制:1000次/s
- 在1個日志單元下,寫入流量最大限制:100MB/s
- 在1個日志單元下,寫入次數最大限制:500次/s
如果日志上傳頻率很高,寫入次數的被限流,可以在每次寫入時上傳多條日志,或者使用異步批量上傳功能(部分SDK支持)。