[最佳实践]采集-IoT/嵌入式日志

ops/2024/10/21 3:40:42/

IoT(Internet of Things)正在高速增长,越来越多设备开始逐步走进日常生活,例如智能路由器、各种电视棒、天猫精灵、扫地机器人等,让我们体验到智能领域的便利。传统软件领域的嵌入式开发模式在IoT设备领域的应用遇到了很多挑战,IoT设备数目多、分布广,难以调试且硬件受限,传统的设备日志解决方案无法完美满足需求。

日志服务团队结合IoT设备的特点,为IoT设备量身定制一套日志数据采集方案:C Producer。

嵌入式开发需求

作为IoT/嵌入式工程师,除了需要深厚的开发功底外,面对海量的设备,如何有能力管理、监控、诊断黑盒设备至关重要。嵌入式开发需求主要有以下几点:

数据采集:如何实时采集分散在全球各地的百万/千万级设备上的数据?调试:如何使用一套方案既满足线上数据采集又满足开发时的实时调试?线上诊断:某个线上设备出现错误,如何快速定位设备,查看引起该设备出错的上下文是什么?监控:当前有多少个设备在线?工作状态分布如何?地理位置分布如何?出错设备如何实时告警?数据实时分析:设备产生数据如何与实时计算、大数据仓库对接,构建用户画像?

在这里插入图片描述

IoT领域面临的主要挑战

思考以上问题的解决方案,我们发现在传统软件领域那一套手段面临IoT领域基本全部失效,主要挑战来自于IoT设备这些特点:

设备数目多:在传统运维领域管理1万台服务器属于一家大公司了,但10万在线对于IoT设备而言只是一个小门槛。分布广:硬件一旦部署后,往往会部署在全国、甚至全球各地。黑盒:难以登录并调试,大部分情况属于不可知状态。资源受限:出于成本考虑,IoT设备硬件较为受限(例如总共只有32MB内存),传统PC领域手段往往失效。

C Producer

日志服务量身定制的日志数据采集解决方案。

日志服务客户端Logtail在X86服务器上有百万级部署,可以参见文章:Logtail技术分享:多租户隔离技术+双十一实战效果,Polling+Inotify 组合下的日志保序采集方案。除此之外,日志服务提供多样化的采集方案:

移动端SDK:Android/iOS平台数据采集,一天已有千万级DAU。Web Tracking(JS):类似百度统计,Analytics轻量级采集方式,无需签名。

日志服务团队结合IoT设备的特点,为IoT设备量身定制一套日志数据采集方案:C Producer。

在这里插入图片描述

C Producer特点

C Producer Library继承Logtail稳定、高性能、低资源消耗等特点,可以定位是一个轻量级Logtail,虽没有Logtail实时配置管理机制,但具备除此之外70%功能,包括:

提供多租户概念:可以对多种日志(例如Metric,DebugLog,ErrorLog)进行优先级分级处理,同时配置多个客户端,每个客户端可独立配置采集优先级、目标Project和Logstore等。支持上下文查询:同一个客户端产生的日志在同一上下文中,支持查看某条日志前后相关日志。并发发送,断点续传:支持缓存上限可设置,超过上限后日志写入失败。

此外,C Producer还具备以下IoT设备专享功能,例如:

本地调试:支持将日志内容输出到本地,并支持轮转、日志数、轮转大小设置。细粒度资源控制:支持针对不同类型数据/日志设置不同的缓存上限、聚合方式。日志压缩缓存:支持将未发送成功的数据压缩缓存,减少设备内存占用。

在这里插入图片描述

功能优势

C Producer作为IoT设备的量身定制方案,在以下方面具备明显优势:
在这里插入图片描述

客户端高并发写入:可配置的发送线程池,支持每秒数十万条日志写入,详情参见性能测试。低资源消耗:每秒20万日志写入只消耗70%CPU;同时在低性能硬件(例如树莓派)上,每秒产生100条日志对资源基本无影响。客户端日志不落盘:即数据产生后直接通过网络发往服务端。客户端计算与I/O逻辑分离:日志异步输出,不阻塞工作线程。支持多优先级:不同客户端可配置不同的优先级,保证高优先级日志最先发送。本地调试:支持设置本地调试,便于您在网络不通的情况下本地测试应用程序。

在以上场景中,C Producer Library简化您程序开发的步骤。您无需关心日志采集细节实现、也不用担心日志采集会影响您的业务正常运行,大大降低数据采集门槛。

C Producer方案与其他嵌入式采集方案对比如下:
在这里插入图片描述

C-Producer解决方案

在这里插入图片描述

下载与使用

下载地址: https://github.com/aliyun/aliyun-log-c-sdk?spm=a2c4g.11186623.2.29.2dfc505eazEyHL

一个应用可创建多个Producer,每个Producer可包含多个Client,每个Client可单独配置目的地址、日志级别、是否本地调试、缓存大小、自定义标识、topic等信息。
在这里插入图片描述

测试结果

X86平台结果C Producer可以轻松到达90 MB/s的发送速度,每秒上传日志20万,占用CPU只有70%,内存140 MB。服务器在200条/s,发送数据对于CPU基本无影响(降低到0.01%以内)。客户线程发送一条数据(输出一条日志)的平均耗时为1.2 us。X86平台结果树莓派平台结果在树莓派的测试中,由于CPU的频率只有600 MHz,性能差不多是服务器的1/10左右,每秒可发送最多2万条日志。树莓派在20条/s的时候,发送数据对于CPU基本无影响(降低到0.01%以内)。客户线程发送一条数据(输出一条日志)的平均耗时为:12 us左右(树莓派通过USB连接到PC共享网络)。

在这里插入图片描述


http://www.ppmy.cn/ops/110137.html

相关文章

ubuntu 24.04 : Failed to initialize NVML: Unknown Error

我想在docker 内部使用gpu时,当我执行nvidia官方的测试命令: sudo docker run --rm --runtimenvidia --gpus all ubuntu:22.04 nvidia-smi出现l了如题的错误。 解决方法: 首先执行如下文件: sudo vim /etc/nvidia-container-r…

解锁生活密码,AI答案之书解决复杂难题

本文由 ChatMoney团队出品 介绍说明 “答案之书智能体”是您贴心的智慧伙伴,随时准备为您解答生活中的种种困惑。无论您在工作中遭遇瓶颈,还是在情感世界里迷失方向,亦或是对个人成长感到迷茫,它都能倾听您的心声,并给…

无人机之伯努利定律

无人机的伯努利定律是解释无人机飞行原理的关键理论之一,它主要阐述了流体(如空气)在流动过程中速度与压力之间的关系。以下是对无人机伯努利定律的详细解释: 一、伯努利定律的基本原理 伯努利定律是流体力学中的一个基本原理&am…

相机光学(三十七)——自动对焦原理

1.自动对焦的三种方式 目前在手机上采用的自动对焦系统包括反差对焦、相位对焦和激光对焦三种方案,下面我们来看一下它们的工作原理和相互之间的区别是什么。 1.1反差对焦【CDAF】- Contrast Detection Auto Focus 反差对焦是目前普及率最高、使用最广泛、成本相对…

tabBar设置底部导航栏

如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页,简单来说就是像美团外卖下面的导航栏一样可以任意切换 1.首先创建三个页面,在页面里面可以写一些东西或者放一张图片方便区分。 2.…

跟《经济学人》学英文:2024年09月07日这期 What to read about the British economy

What to read about the British economy Britain used to be the world’s richest country. These six books explain how it came to be, and why it is no longer 原文: IN RECENT YEARS the British economy has tended to be in the news for the wrong re…

观众登记2025中国(深圳)国际智能手机供应链展览会

时间:2024年4月9-11日 地点:深圳会展中心 ◆展会背景background: 近年来,国内手机品牌在全球市场上的影响力不断增强,华为、OPPO、VIVO和小米等…

a-table 定时平滑轮播组件

效果图&#xff1a; 实现代码如下&#xff1a; <template><div class"scroll-container" mouseenter"stopScroll" mouseleave"startScroll"><a-table:columns"columns":data-source"visibleData":paginatio…