龙岩一中网站,唐山地区网站开发公司,国内哪家网站做的系统纯净,店商网站设计作者#xff1a;高玉龙#xff08;元泊#xff09;
背景信息
随着数字化新时代的全面展开以及 5G 与物联网#xff08;IoT#xff09;技术的迅速普及#xff0c;操作系统正面临前所未有的变革需求。在这个背景下#xff0c;华为公司自主研发的鸿蒙操作系统#xff08…作者高玉龙元泊
背景信息
随着数字化新时代的全面展开以及 5G 与物联网IoT技术的迅速普及操作系统正面临前所未有的变革需求。在这个背景下华为公司自主研发的鸿蒙操作系统HarmonyOS应运而生旨在满足万物互联时代的多元化设备接入、高效协同和安全可靠运行的需求。
HarmonyOS 不仅着眼于智能手机市场更是全球首个面向全场景智能生态的操作系统支持从手机、平板电脑到智能家居、穿戴设备乃至工业控制等多种终端形态。2024 年 1 月 18 日正式推出 HarmonyOS NEXT 鸿蒙星河开发者预览深圳市于 2024 年 3 月 3 日也发布了支持开源鸿蒙原生应用发展的 2024 年行动计划。 日志服务SLS介绍
日志服务SLS后文简称 SLS是云原生观测与分析平台为 Log、Metric、Trace 等数据提供大规模、低成本、实时的平台化服务。SLS 一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能全面提升您在研发、运维、运营、安全等场景的数字化能力。 在构建复杂而庞大的应用和智能生态系统过程中SLS 作为开发调试、性能优化、运维监控和故障排查的重要基础设施。为确保各类应用程序能够在鸿蒙操作系统上实现无缝对接并高效利用 SLS对 SLS SDK 进行 HarmonyOS 原生适配成为必然之举。
此举不仅可以提升鸿蒙生态下应用的稳定性和可靠性也有助于开发者更好地遵循统一的标准和最佳实践进一步促进鸿蒙操作系统生态的繁荣与发展。在这种情况下基于 SLS 的移动应用日志管理和分析将成为不可或缺的工具基于对 SLS 移动应用日志可以帮助开发人员快速定位和解决问题优化应用性能。
SDK 特性介绍
HarmonyOS 下的 SLS SDK 基于共同的基座 C Core SDK 适配底层适配鸿蒙NDK。C Core 部分使用纯 C 语言编写对性能进行了极端优化包括缓存管理、文件管理、PB 序列化等能够适用于 IoT、移动端、服务端等各种场景。SDK 提供 ArkTS 语言原生调用 API。SDK 具备以下特性
异步 客户端线程写入无阻塞日志队列异步发送 聚合压缩上传 日志聚合发送支持按超时时间、日志数、日志大小聚合支持 lz4、zstd 压缩 多实例 支持创建多个实例分别发送到不同的目标可以实例配置独立互不影响 缓存 支持设置可允许占用的缓存内存上限超过内存缓存上限时日志写入会失败 自定义标识 支持设置自定义 Tag 和 Topic 断点续传 支持日志缓存到本地文件只有发送成功才会删除确保日志上传 At Least Once 日志上下文 支持查看某条日志的上下文可以更好的定位问题 HarmonyOS SDK 通过 OpenHarmony 三方库中心托管发布当前支持 HarmonyOS NEXT API 9.0 及以上仅支持 stage 模式。
SDK 使用最佳实践
准备工作
在使用 HarmonyOS SDK 进行日志采集之前您需要做一些准备工作。
已开通日志服务SLS请参见开通日志服务 [ 1] 。已创建好对应的 Project 和 Logstore请参见管理 Project [ 2] 和管理 Logstore [ 3] 。已创建并获取 AccessKey请参见访问密钥 [ 4] 。阿里云账号 AccessKey 拥有所有 API 的访问权限风险很高。强烈建议您创建并使用 RAM 用户进行 API 访问或日常运维。RAM 用户需具备操作日志服务SLS资源的权限。具体操作请参见为 RAM 用户授权 [ 5] 。[可选]搭建 HarmonyOS 开发环境。开发鸿蒙应用需要使用 HarmonyOS 的 IDE 进行开发具体内容请参考 HarmonyOS 官网开发文档 [ 6] 。
日志采集
安装 SDK
在项目的 entry 或 library 目录下执行如下命令。
ohpm install aliyunsls/producer --registryhttps://ohpm.openharmony.cn/ohpm以上命令执行完成后在 entry 或 library 目录下的 oh-package.json5 文件中会自动增加以下信息。
dependencies: {aliyunsls/producer: ^0.1.0
}你可以通过以上信息来确定 SDK 是否安装成功。
集成 SDK
SDK 安装成功后您可以按照实际业务需要在指定的 ets 文件中导入 SLS 模块。
import { AliyunLog } from aliyunsls/producer您还需要完成 SDK 的初始化工作。
let aliyunLog: AliyunLog new AliyunLog(https://cn-qingdao.log.aliyuncs.com, // 需要根据实际业务需要替换为您Project所在Regiontest-project-yuanbo, // 需要根据实际业务需要替换为您的Projectapplog, // 需要根据实际业务需要替换为您的Logstoreaccesskey id,accesskey secret,accesskey token // 仅当AccessKey是通过STS方式获取时才需要
);参数说明
参数名称说明endpointSLS 所在地域的访问域名请参见服务入口 [ 7] 。projectSLS 的资源管理单元请参见项目Project [ 8] 。logstoreSLS 中日志数据的采集、存储和查询单元请参见日志库Logstore [ 9] 。accesskey调用 API 访问云资源的安全口令请参见访问密钥 [ 10] 。
日志采集
完成 SDK 的初始化之后可以通过以下方式完成日志的采集。
aliyunLog.addLog(new Map([// 根据实际业务需要调整您需要上报的业务字段[from, Home],[page, HomePage],]
));更多 SDK 使用相关的信息建议您参考 SLS 官网文档 HarmonyOS SDK [1****1] 。
日志使用
场景一查询和可视化分析
数据通过 SDK 采集上来之后我们可以通过 SLS 控制台进行日志的查询和分析。
首先在 SLS 控制台 Project 列表中找到您的 Project并进入到 Project 页面。如下 接着在左侧日志库菜单中找到您的 Logstore。如下 如果 Logstore 没有开启索引在您打开 Logstore 页面之后会收到一个“未开启日志库索引”的提示框。您可以通过 Logstore 页面右上角的开启索引按钮来配置相关字段的索引。配置索引的具体方式可以参考创建索引 [ 12] 这篇文档。本文示例的 Logstore 已经对以下字段进行了索引配置 索引开启后即可在 Logstore 页面看到我们上报的日志信息如下 注意 如果您的日志是在开启索引之前写入的您需要重建索引后才能看到历史写入的数据。如何重建索引您可以参考文档重建索引 [ 13] 。
可视化分析示例一分析 CartPage 的访问趋势
基于示例数据我们可以通过 SQL 查询出 page 字段的访问趋势如下
* and page: CartPage | select date_trunc(minute, __time__) as minute, count(*) as cnt group by minute order by minute asc以上查询分析语句的含义是
“|”之前的部分是通过查询语句 page: CartPage 过滤出 page 为 CartPage 的页面数据。请参考更多关于查询语法 [ 14] 的信息。“|”之后的部分是通过 SQL 语句对过滤出来的数据进行分析即通过 date_trunc 语句把时间对齐到分钟级别然后使用 count(*) 计算出每分钟页面的访问次数。请参考更多关于分析语法 [ 15] 的信息。
通过 SLS 可视化能力可以对查询分析的结果使用丰富的图表展示如下图是通过“线图 Pro”类型的图表按照时间升序展示每分钟的页面访问次数。 可视化分析示例二分析 CartPage 页面的访问来源
基于示例数据可以使用如下查询分析语句查询 Cart 页面的来源分布
* and page: CartPage | select from as from, count(*) as cnt group by from备注 因为 from 是 SQL 的保留字段因此示例中使用了双引号对 from 进行包装。
下图是通过饼图 Pro 类型的图表绘制的来源页面分布。 SLS 拥有非常强大的可视化分析能力以上仅是非常简单的示例。实际使用中可能会涉及到多种指标的同比/环比漏斗转化实时分析等等。SLS 对此提供了非常灵活和丰富的能力进行支持。更多信息可以参考查询与分析 [ 16] 以及可视化 [ 17] 。
场景二日志加工处理
如果从鸿蒙设备上采集到的原始数据格式没有事先约定好或者数据格式较为复杂或者需要对个别字段做富化/脱敏等您可以使用 SLS 数据加工能力对原始数据做富化和清洗。您可以参考以下步骤。
[可选]新增一个 Logstore 用于存储加工处理后的数据如下 可根据实际业务的需要提前对该 Logstore 进行索引等配置。
进入到数据加工配置页面 您可以通过 Logstore 名称右侧的“数据加工”超链接进入到数据加工配置页面。
配置数据加工任务 如上图您可以参考以下步骤配置数据加工任务。
a. 把目标数据加入到测试数据用于验证数据加工脚本是否符合预期。
b. 在脚本编辑区域根据实际业务需要输入数据加工脚本规则示例如下
# 富化__tag__:__client_ip__字段提取出省、市、经纬度等信息
e_set(x, geo_parse(v(__tag__:__client_ip__)))
e_json(x, prefixgeo_) # 平铺x节点并增加geo_前缀e_drop_fields(x)# 平铺content节点
e_json(content)
e_drop_fields(content)关于数据加工脚本支持的语法您可以参考数据加工语法 [ 18] 。
c. 脚本编写完成后您可以通过右上角“预览数据”按钮验证数据加工的结果。
如下图是以上数据加工脚本的预览结果 数据加工预览结果符合预期后您就可以保存当前数据加工任务了后续的具体操作请参考创建数据加工任务 [ 19] 。
其他场景
除了上文中提到的查询与可视化分析、日志加工处理之外SLS 还支持基于业务日志创建自定义告警监控业务通过流处理、批处理定时SQL功能对数据进一步加工、聚合处理通过消费与投递功能投递业务数据到 OSS、MaxCompute 等。您可以通过访问日志服务SLS [ 20] 官网文档等方式进一步了解 SLS 各种功能助力您的业务发展。
总结
SLS SDK 通过适配 HarmonyOS NDK并提供原生 ArkTS 语言原生 API 的方式使开发者能够确保应用程序在 HarmonyOS 操作系统上实现无缝对接和高效利用 SLS 功能可以有效提升应用的稳定性和性能。SDK 提供的异步日志写入、日志聚合压缩上传、缓存控制、自定义标识、断点续传、日志上下文查看等丰富特性可以简化日志管理流程提升故障排查、性能优化、资源利用监控、安全防范等方面的能力。
此外借助 SLS 的强大平台功能如实时查询、可视化分析、数据加工处理等等能力不仅能够快速定位问题优化应用性能还能够在满足数据合规性要求的同时基于业务日志构建全面的运维监控体系为数字化运营决策提供有效支持。
除了以上能力外SLS 还提供基于 OTelOpenTelemetry协议的多平台数据采集插件您可以借助这些插件实现端到端的 Trace 数据采集和分析能力。
通过 OpenTelemetry 接入 Android Trace 数据
https://help.aliyun.com/zh/sls/user-guide/import-trace-data-from-android-apps-to-log-service-1
通过 OpenTelemetry 接入 iOS Trace 数据
https://help.aliyun.com/zh/sls/user-guide/import-trace-data-from-ios-apps-to-log-service-46
通过 OpenTelemetry 接入 Flutter/Dart Trace 数据
https://help.aliyun.com/zh/sls/user-guide/import-trace-data-from-flutter-and-dart-applications-by-using-opentelemetry-sdk-for-flutter
通过 OpenTelemetry 接入 C Trace 数据
https://help.aliyun.com/zh/sls/user-guide/import-trace-data-from-cpp-applications-to-log-service
接入 Web Trace 数据
https://help.aliyun.com/zh/sls/user-guide/import-data-from-web-pages-to-log-service
接入小程序 Trace 数据
https://help.aliyun.com/zh/sls/user-guide/import-data-from-mini-programs-to-log-service
更多关于 Trace 数据采集和使用相关的内容你可以参考 SLS Trace [2****1] 服务。欢迎您试用
相关链接
[1] 开通日志服务
https://www.aliyun.com/product/sls
[2] 管理 Project
https://help.aliyun.com/zh/sls/user-guide/manage-a-project
[3] 管理 Logstore
https://help.aliyun.com/zh/sls/user-guide/manage-a-logstore
[4] 访问密钥
https://help.aliyun.com/zh/sls/developer-reference/accesskey-pair#reference-rh5-tfy-zdb
[5] 为 RAM 用户授权
https://help.aliyun.com/zh/sls/create-a-ram-user-and-authorize-the-ram-user-to-access-log-service#section-kxp-1ok-zj4
[6] HarmonyOS 官网开发文档
https://developer.huawei.com/consumer/cn/doc/
[7] 服务入口
https://help.aliyun.com/zh/sls/user-guide/manage-a-project#section-mb8-vvq-67c
[8] 项目Project
https://help.aliyun.com/zh/sls/product-overview/project
[9] 日志库Logstore
https://help.aliyun.com/zh/sls/product-overview/logstore
[10] 访问密钥
https://help.aliyun.com/zh/sls/developer-reference/accesskey-pair
[11] HarmonyOS SDK
https://help.aliyun.com/zh/sls/developer-reference/harmonyos-sdk/
[12] 创建索引
https://help.aliyun.com/zh/sls/user-guide/create-indexes
[13] 重建索引
https://help.aliyun.com/zh/sls/user-guide/reindex-logs-for-a-logstore
[14] 查询语法
https://help.aliyun.com/zh/sls/user-guide/search-syntax
[15] 分析语法
https://help.aliyun.com/zh/sls/user-guide/sql-syntax-and-functions/
[16] 查询与分析
https://help.aliyun.com/zh/sls/user-guide/index-and-query/
[17] 可视化
https://help.aliyun.com/zh/sls/user-guide/visualization-2/
[18] 数据加工语法
https://help.aliyun.com/zh/sls/user-guide/data-processing-syntax/
[19] 创建数据加工任务
https://help.aliyun.com/zh/sls/user-guide/create-a-data-transformation-job
[20] 日志服务SLS
https://help.aliyun.com/zh/sls/product-overview/
[21] SLS Trace
https://help.aliyun.com/zh/sls/user-guide/usage-notes-39