# SXAnalytics **Repository Path**: KJXY/SXAnalytics ## Basic Information - **Project Name**: SXAnalytics - **Description**: 批量上报数据统计SDK - **Primary Language**: Objective-C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 介绍 MFAnalytics主要用来解决目前各业务线埋点数据单条实时上报的问题。目前版本主要采用的策略为埋点数据先存入客户端本地缓存,根据上报策略触发数据批量上报,上报的数据可采用AES加密和gzip压缩,批量数据上报的数据压缩率平均可达80%-90%,数据上报成功删除本地缓存数据。 ## 使用 MFAnalytics 支持使用cocoapods安装使用,在需要的项目的podfile中添加如下代码: ``` pod 'MFAnalytics' ``` 使用命令行工具执行如下命令: ``` pod install --repo-update ``` 在APP启动后的合适的时机初始化SDK,如在Appdelegate方法中添加初始化方法: ``` - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //根据上报服务器地址初始化配置项 MFAConfigOptions *config = [[MFAConfigOptions alloc] initWithServerURL:@"https://dc-testlog.missfresh.cn/sdk/"]; //通过config配置文件初始化MFAnalytics单例 [MFAnalytics sharedAnalyticsWithConfig:config]; 当然你也可以通过config来配置其他配置选项, 如:配置自动上报的时间间隔,默认15*1000ms,单位ms config.flushInterval = 15*1000; 配置触发自动上报的本地缓存大小,默认100 config.flushBulkSize = 100; 配置每次数据上报的最大条数,默认50条 config.transLimit = 50; 根据各自的需要配置好config后,就可以在原来旧版本埋点的数据组装完后进行批量数据的上报的接入: //当前方法为旧版本埋点数据组装完成后返回的完整的埋点数据 NSDictionary *postParameters = [MFDataStatisticsManager unifiedBuryInterface:parameters ?: @{} withTrackEvent:event withLabel:label]; //调用track方法,SDK内部会根据配置的触发策略判断是否进行上报 [[MFAnalytics sharedAnalytics] track:postParameters]; 如果业务方有些场景的埋点是需要实时上报的,比如一些对实时性要求比较高的点:openAPP等,可以调用实时触发上报的接口: //忽略一些策略配置的限制,直接触发数据上报 [[MFAnalytics sharedAnalytics] track:postParameters realtime:YES]; } ``` 以上就是MFAnalytics的基本接入和用法,其他一些可选的配置和操作可以直接看对应的代码。 ## 异常 为了统计SDK内部的异常情况,在SDK内部包含了一个异常收集上报系统,用来采集SDK的常见异常,具体的数据上报到了前端的监控平台,具体的异常可以在前端监控平台进行查看,项目选择埋点SDK-iOS即可。如果想补充收集SDK内部的其他异常,直接使用SDK内部的MFAExceptionReporter进行收集即可。 ## TODO 由于大数据后端排期原因,目前的配置选项均是客户端来配置的,后续根据大数据后端排期有人力后,会增加config配置选项从大数据后端更新拉取. 埋点公共数据的构造目前是在埋点SDK1.0版本中的,后续需要把埋点公共数据的组装封装到当前SDK内部 ## Author iOSchangyy, changyy01@missfresh.cn ## License SXAnalytics is available under the MIT license. See the LICENSE file for more info.