【摘要】為確保各類應用程序能夠在鴻蒙操作系統(tǒng)上實現(xiàn)無縫對接并高效利用 LTS,LTS SDK 進行了 HarmonyOS 原生適配,可以提升鴻蒙生態(tài)下應用的穩(wěn)定性和可靠性。
鴻蒙背景介紹
華為鴻蒙 HarmonyOS 系統(tǒng)是面向萬物互聯(lián)的全場景分布式操作系統(tǒng),支持手機、平板、智能穿戴、智慧屏等多種終端設備運行,提供應用開發(fā)、設備開發(fā)的一站式服務的平臺。2024年1月18日正式推出HarmonyOS NEXT鴻蒙星河開發(fā)者預覽,也被稱為“純血”鴻蒙。為了確保這種復雜系統(tǒng)的穩(wěn)定性和高效運行,日志采集成為了開發(fā)和維護過程中的關鍵環(huán)節(jié)。
華為云云日志服務介紹
云日志服務(Log Tank Service,簡稱 LTS)用于收集來自主機和云服務的日志數(shù)據,通過海量日志數(shù)據的分析與處理,可以將云服務和應用程序的可用性和性能最大化,為您提供實時、高效、安全的日志處理能力,幫助您快速高效地進行實時決策分析、設備運維管理、用戶業(yè)務趨勢分析等。
華為云云云日志業(yè)務全景圖
為確保各類應用程序能夠在鴻蒙操作系統(tǒng)上實現(xiàn)無縫對接并高效利用 LTS,LTS SDK 進行了 HarmonyOS原生適配,可以提升鴻蒙生態(tài)下應用的穩(wěn)定性和可靠性。
LTS Harmony SDK 介紹
LTS Harmony SDK 基于華為終端日志底座進行擴展,底層適配鴻蒙 NDK,核心部分使用 ArkTS 語言編寫,對性能進行了大量優(yōu)化(包括緩存上報、文件存儲、上報策略等),能夠適用于移動端、服務端等各種場景,LTS Harmony SDK提供 ArkTS語言原生調用 API,已通過 OpenHarmony 三方庫中心托管發(fā)布,當前支持 HarmonyOS NEXT API 12及以上,僅支持 Stage 模式。
SDK 使用最佳實踐
使用前提
使用云日志前,您需要注冊華為賬號,并開通云日志服務。
確認云日志服務的區(qū)域,請用戶根據所在的區(qū)域,選擇 region。
獲取華為賬號 AK/SK。
獲取華為云賬號的項目 ID(project ID),步驟參考:請參見“我的憑證>API 憑證”。
獲取需要上報到 LTS 的日志組 ID 和日志流 ID。
集成接入 SDK
鴻蒙倉庫集成
在終端中運行安裝命令。
ohpm install lts_harmony_sdk
在 app/oh-package.json5 中添加依賴。
dependencies { ... "lts_harmony_sdk": "0.0.1" ...}在終端中運行以下命令安裝 SDKohpm install
手動集成
下載[日志 SDK 包]。
下載后解壓到指定目錄。注:直接解壓即可,不需要額外操作。
將解壓后的 har 靜態(tài)庫文件添加到您的項目工程中。
在 app/oh-package.json5 中添加依賴。
dependencies { ... "lts_harmony_sdk": "file:../plugin/LTS_SDK/default/lts_harmony_sdk.har" // HAR 包存放地址 ...}
在終端中運行以下命令使能 SDK。
ohpm install
注意事項:SDK 包使用語言為 ArkTS,只能在 ArkTS 文件中引入。僅支持 SDK11 以上版本。
引入依賴模塊
import { LTSSDK, ConfigParam } from 'lts_harmony_sdk';
初始化
初始化代碼示例:
// ArkTS 代碼示例// LTS 參數(shù)配置 const config:ConfigParam = { //必填參數(shù) region: string, //上報 region projectId: string, //華為云項目 ID groupId: string, // LTS 日志組 ID streamId: string, // LTS 日志流 ID //選填參數(shù) url: string, //上報地址 cacheThreshold: number, //上報條數(shù)閾值 timeInterval: number, //上報時間閾值 isReportBackground: boolean //是否開啟后臺上報};//獲取 ApplicationContextlet applicationContext = this.context.getApplicationContext();// LTS 初始化方法 const ltssdk = new LTSSDK( applicationContext , config)
配置參數(shù)說明
日志上報
Report(content, labels)
說明:采集日志,緩存到本地,當緩存條數(shù)達到閾值時,自動上報。content 參數(shù):日志內容,支持 Map 和 Map 數(shù)組;鍵值對最多 500 個;content 轉 JSON 字符串最大支持長度為 1024*30,超出則被截斷丟棄。
labels 參數(shù):日志標簽,非必填,value 支持 String、Number 類型;key 最大長度為 64,支持字母、數(shù)字和下劃線組合,首字符須是字母;如果 value 是 String 類型,最大長度為 256。鍵值對最多 50 個。
代碼示例:
const ltssdk = new LTSSDK(applicationContext, config)let fruit = { "fruit_1": "apple", "fruit_2": "pear", "fruit_3": "banana"};let food = { "food_1": "rice" };let labels = { "date": "2023-10-01"};let contents = [food, fruit];ltssdk.report(food); //緩存上報單條不帶標簽 ltssdk.report(food, labels); //緩存上報單條帶標簽 ltssdk.report(contents); //緩存上報多條不帶標簽 ltssdk.report(contents, labels); //緩存上報多條帶標簽
ReportImmediately(content, labels)
說明:采集日志,立即上報。content 參數(shù):日志內容,支持 Map 和 Map 數(shù)組;鍵值對最多 500 個;Content 轉 JSON 字符串最大支持長度為 1024*30,超出則被截斷丟棄。
labels 參數(shù):日志標簽,非必填,value 支持 String、Number、Map;key 最大長度為 64,支持字母、數(shù)字和下劃線組合,首字符須是字母;如果 value 是 String 類型,最大長度為 256。鍵值對最多 50 個。
代碼示例:
const ltssdk = new LTSSDK(applicationContext , config)let fruit = { "fruit_1": "apple", "fruit_2": "pear", "fruit_3": "banana"};let food = { "food_1": "rice" };let labels = { "date":"2023-10-01"};let contents = [food, fruit];ltssdk.reportImmediately(food); //立即上報單條不帶標簽 ltssdk.reportImmediately(food, labels); //立即上報單條帶標簽 ltssdk.reportImmediately(contents); //立即上報多條不帶標簽 ltssdk.reportImmediately(contents, labels); //立即上報多條帶標簽
日志使用場景
應用場景 1:應用運維
企業(yè)在日常業(yè)務運維、審計或等保時,需要收集各種類型的日志,常遇到如下痛點:
企業(yè)部門多且日志繁雜,日志量大。
云服務資源種類數(shù)量多,不熟悉監(jiān)控指標和運維日志,運維難度大。
安全合規(guī)要求高,等保合規(guī)要求日志長期存儲,人力不足,維護成本高。
基于云日志服務 LTS 可以實現(xiàn):
提供全場景日志接入,全面覆蓋業(yè)務、應用、中間件和基礎設施,實現(xiàn)快速收集日志。
支持秒級日志查詢和分鐘級日志監(jiān)控,通過配置告警規(guī)則和告警通知,實現(xiàn)分鐘級問題定位和分析。
支持將日志轉儲至 OBS 實現(xiàn)長期保存,滿足網絡安全要求。
LTS 提供解決方案參考如下圖1,可以實現(xiàn)統(tǒng)一收集生產環(huán)境應用日志,開發(fā)人員檢索分析日志,運維人員基于日志配置告警,實時感知現(xiàn)網業(yè)務,及時發(fā)現(xiàn)并解決故障問題。
圖 1 應用運維解決方案
應用場景 2:安全合規(guī)
大型企業(yè)的每個業(yè)務部門都有獨立的云賬戶實現(xiàn)資源隔離,每個業(yè)務部門的運維人員需要依賴日志監(jiān)控告警實現(xiàn)故障定位分析,同時集團安全部門需要統(tǒng)一監(jiān)控日志,因此多賬號的統(tǒng)一日志管理成為企業(yè)痛點:
分業(yè)務獨立運維:客戶每個業(yè)務模塊都有一個獨立的賬號做資源隔離,依賴日志服務配置監(jiān)控告警,快速分析發(fā)現(xiàn)故障并定位根因。
安全部門統(tǒng)一監(jiān)控日志:客戶使用多賬號管理體系,每個業(yè)務部門有一個獨立的賬號,安全部門需要匯聚所有日志到一個賬號,并存儲 180 天以上來滿足法規(guī)要求。
基于云日志服務 LTS 可以實現(xiàn):
多賬號獨立管理:每個賬號獨立采集各自業(yè)務的應用日志、云服務日志,資源互相隔離、權限劃分清晰;借助日志告警配置,90%問題定位控制在 10 分鐘。
日志數(shù)據跨賬號集中匯聚:使用 LTS 的多賬號日志匯聚功能,將各個子賬號的日志復制一份到統(tǒng)一監(jiān)控賬號,長期存儲 180 天,便于安全部門集中審計,滿足網絡安全法規(guī)要求。
LTS 提供解決方案參考如下圖2,可以實現(xiàn)統(tǒng)一收集云服務、應用程序日志,支持保存 180 天以上,滿足《網絡安全法》、《GDPR》等法律法規(guī)要求。
圖 2 安全合規(guī)解決方案
應用場景 3:運營分析
企業(yè)在日常經營中,可以上報各種業(yè)務日志(例如移動端日志、服務端日志),經過規(guī)整、過濾、脫敏、富化等加工處理后,可以融合大數(shù)據平臺、BI 工具進行業(yè)務分析,例如獲取頁面的 PV、UV、用戶停留時間、交易金額等,用于了解業(yè)務運營狀況、分析用戶行為特征,基于實時的數(shù)據分析反饋調整業(yè)務決策,提升用戶體驗,提升經營效率,實現(xiàn)企業(yè)的數(shù)字化轉型。
在業(yè)務分析過程中經常遇到如下痛點:
移動端數(shù)據難采集:難以快速采集多種移動端設備,例如 Web 瀏覽器、iOS、安卓、鴻蒙、百度小程序、微信小程序、釘釘小程序、快應用等多類端側日志無法快速采集。
數(shù)據傳輸不可靠:移動端日志數(shù)據量多且頻繁,傳輸速度慢,也極易出現(xiàn)丟失,對業(yè)務分析造成一定影響。
數(shù)據處理不方便:原始數(shù)據不方便處理,不方便快速與大數(shù)據平臺實現(xiàn)對接。
云日志服務 LTS 支持采集多種移動端日志,融合大數(shù)據完成業(yè)務運營分析,基于 LTS 可以實現(xiàn):
端側日志全面采集接入:集成 LTS 提供的多種移動端 SDK,實現(xiàn)了緩存發(fā)送、異常重試、批量發(fā)送等穩(wěn)定功能,用戶快速集成即可全面采集移動端日志到 LTS。
秒級上報,高可靠:端側采集日志后,經傳輸鏈路秒級完成上報,數(shù)據無丟失,支撐業(yè)務做完整性分析。
DLI 和 DWS 快速對接 LTS:DLI-Flink 簡易集成 Connector,定點從 LTS 實時消費日志;LTS 日志可快速配置轉儲到 OBS,供 DLI 快速從 OBS 讀取日志;LTS 支持直接將結構化日志轉儲到 DWS。
LTS 提供解決方案參考如下圖3,可以對日志結構化解析,基于 SQL 語法分析日志,生成可視化圖表,并結合大數(shù)據平臺幫助企業(yè)進一步挖掘數(shù)據價值,助力企業(yè)數(shù)字化轉型。
審核編輯 黃宇
-
華為云
+關注
關注
3文章
2491瀏覽量
17425 -
HarmonyOS
+關注
關注
79文章
1975瀏覽量
30182 -
鴻蒙操作系統(tǒng)
+關注
關注
0文章
44瀏覽量
2925
發(fā)布評論請先 登錄
相關推薦
評論