本文介紹使用C Producer SDK的基本操作。
Log ServiceC Producer是用純C編寫的日誌採集用戶端,提供更加精簡的環境依賴以及更低的資源佔用,適用於各類嵌入式/智慧型裝置的日誌採集。
功能特性
非同步
非同步寫入,用戶端線程無阻塞。
彙總&壓縮上傳
支援按逾時時間、日誌數、日誌size彙總資料發送。
支援lz4壓縮。
支援上下文查詢
同一個用戶端產生的日誌在同一上下文中,支援查看某條日誌前後相關日誌。
並發發送
支援可配置的線程池發送。
緩衝
可設定緩衝上限,超過緩衝上限的日誌會寫入失敗。
自訂標識
日誌上傳時預設會帶上ip。
支援設定自訂tag、topic。
功能優勢
用戶端高並發寫入:可配置的發送線程池,支援每秒數十萬條日誌寫入,詳情參見效能測試。
低資源消耗:每秒20W日誌寫入只消耗30% CPU;同時在低效能硬體(例如樹莓派)上,每秒產生100條日誌對資源基本無影響。詳情參見效能測試。
用戶端日誌不落盤:資料產生後直接通過網路發往服務端。
用戶端計算與 I/O 邏輯分離:日誌非同步輸出,不阻塞背景工作執行緒。
可靠退出:程式退出時,會調用介面將日誌持久化,待下次應用啟動時將資料發送,保證資料可靠性。詳情參見程式可靠退出方案。
分支選擇
C Producer根據不同的裝置類型和使用情境做了非常多的定製工作,因此分為幾個分支來支援不同的情境,請根據實際需求選擇。
分支 | 狀態 | 功能優勢 | 建議使用情境 |
master | 可用 | 原lite分支,相比v1(1.0f)版本依賴、資源佔用、效能等有大幅度提升,是目前SLS效能最強的Producer,推薦使用。 | Linux伺服器、嵌入式Linux |
live | 可用 | 主要功能和master版本一致,增加最多平台的編譯支援,包括Windows、Mac、Android、IOS等 | 非master支援的環境 |
bricks | 可用 | 極致精簡版本,binary和記憶體佔用極低,但是功能非常弱,建議在資源非常受限的情境中使用 | 資源佔用在10KB以內的情境,例如RTOS |
persistent | 可用 | 相比master增加本機快取功能,目前用於Android、IOS移動端版本的Native實現,本機快取功能開啟後只能單線程發送,不建議服務端使用 | 建議直接使用Android、IOS官方SDK |
下載與安裝
源碼及詳細安裝方法請參考Github文檔: