本文介紹使用C Producer SDK的基本操作。
日志服務C 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文檔: