鴻蒙背景介紹
華為鴻蒙HarmonyOS系統(tǒng)是面向萬物互聯(lián)的全場景分布式操作系統(tǒng),支持手機、平板、智能穿戴、智慧屏等多種終端設(shè)備運行,提供應(yīng)用開發(fā)、設(shè)備開發(fā)的一站式服務(wù)的平臺。2024 年 1 月 18 日正式推出 HarmonyOS NEXT 鴻蒙星河開發(fā)者預(yù)覽,也被稱為“純血”鴻蒙。為了確保這種復(fù)雜系統(tǒng)的穩(wěn)定性和高效運行,日志采集成為了開發(fā)和維護過程中的關(guān)鍵環(huán)節(jié)。
華為云云日志服務(wù)介紹
云日志服務(wù)(Log Tank Service,簡稱LTS)用于收集來自主機和云服務(wù)的日志數(shù)據(jù),通過海量日志數(shù)據(jù)的分析與處理,可以將云服務(wù)和應(yīng)用程序的可用性和性能最大化,為您提供實時、高效、安全的日志處理能力,幫助您快速高效地進行實時決策分析、設(shè)備運維管理、用戶業(yè)務(wù)趨勢分析等。
![華為云云日志服務(wù) HarmonyOS NEXT采集最佳實踐](http://www.dfulqf.cn/uploads/image/2024/1210/135F150V0.jpg)
華為云云云日志業(yè)務(wù)全景圖
為確保各類應(yīng)用程序能夠在鴻蒙操作系統(tǒng)上實現(xiàn)無縫對接并高效利用LTS,LTS SDK進行了HarmonyOS 原生適配,可以提升鴻蒙生態(tài)下應(yīng)用的穩(wěn)定性和可靠性。
LTS Harmony SDK介紹
LTS Harmony SDK基于華為終端日志底座進行擴展,底層適配鴻蒙NDK,核心部分使用ArkTS語言編寫,對性能進行了大量優(yōu)化(包括緩存上報、文件存儲、上報策略等),能夠適用于移動端、服務(wù)端等各種場景,LTS Harmony SDK 提供ArkTS 語言原生調(diào)用API,已通過OpenHarmony三方庫中心托管發(fā)布,當前支持HarmonyOS NEXT API 12 及以上,僅支持Stage模式。
SDK使用最佳實踐
1.使用前提
i. 使用云日志前,您需要注冊華為賬號,并開通云日志服務(wù)。
ii. 確認云日志服務(wù)的區(qū)域,請用戶根據(jù)所在的區(qū)域,選擇region。
iii. 獲取華為賬號AK/SK。
iv. 獲取華為云賬號的項目ID(project ID),步驟參考:請參見“我的憑證>API憑證”。
v. 獲取需要上報到LTS的日志組ID和日志流ID。
2.集成接入SDK
2.1 鴻蒙倉庫集成
· 在終端中運行安裝命令。
ohpm install lts_harmony_sdk
· 在app/oh-package.json5中添加依賴。
dependencies {
...
"lts_harmony_sdk": "0.0.1"
...
}
在終端中運行以下命令安裝SDK
ohpm install
2.2 手動集成
· 下載[日志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';
3.初始化
初始化代碼示例:
// 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 // 是否開啟后臺上報
};
// 獲取ApplicationContext
let applicationContext = this.context.getApplicationContext();
// LTS初始化方法
const ltssdk = new LTSSDK( applicationContext , config)
配置參數(shù)說明
參數(shù)名稱 |
類型 |
是否必填 |
默認值 |
描述 |
projectId |
string |
必填 |
- |
華為云帳號的項目ID。 |
accessKey |
string |
必填 |
- |
華為云帳號的訪問密鑰,簡稱AK。 |
secretKey |
string |
必填 |
- |
華為云帳號的秘密訪問密鑰,簡稱SK。 |
region |
string |
必填 |
- |
LTS的服務(wù)區(qū)域。 |
groupId |
string |
必填 |
- |
LTS的日志組ID。 |
streamId |
string |
必填 |
- |
LTS的日志流ID。 |
url |
string |
選填 |
nil |
要上報的LTS的公網(wǎng)地址域名,如未設(shè)置,將根據(jù)Regio自動生成鏈接,格式如下:https://lts-access.{region}.myhuaweicloud.com |
cacheThreshold |
number |
選填 |
200條 |
當本地數(shù)據(jù)庫日志存儲條數(shù)達到該值會觸發(fā)上報,取值范圍為30-1000條。 |
timeInterval |
number |
選填 |
60秒 |
定時器每隔該值會觸發(fā)上報,取值范圍為1-1800秒。 |
reportWhenEnterBackgroundEnabled |
boolean |
選填 |
YES |
是否開啟APP切后臺上報功能。 |
3.1日志上報
Report(content, labels)
說明:采集日志,緩存到本地,當緩存條數(shù)達到閾值時,自動上報。 content參數(shù):日志內(nèi)容,支持Map和Map數(shù)組;鍵值對最多500個;content轉(zhuǎn)JSON字符串最大支持長度為1024*30,超出則被截斷丟棄。
labels參數(shù):日志標簽,非必填,value支持String、Number類型;key最大長度為64,支持字母、數(shù)字和下劃線組合,首字符須是字母;如果value是String類型,最大長度為256。鍵值對最多50個。