114 lines
3.7 KiB
Objective-C
114 lines
3.7 KiB
Objective-C
//
|
|
// AntLogConfigManager.h
|
|
// APRemoteLogging
|
|
//
|
|
// Created by 卡迩 on 2017/12/13.
|
|
// Copyright © 2017年 Alipay. All rights reserved.
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import "AntLogLevel.h"
|
|
#import "ISampleControl.h"
|
|
|
|
extern NSUInteger const kDefaultMaxLogCount;
|
|
|
|
@class ATConfig;
|
|
|
|
#ifdef SDK_IS4_ALIPAY
|
|
@class ATRealtimeLogConfig;
|
|
@class ATDelayUploadConfig;
|
|
|
|
#endif
|
|
|
|
/**
|
|
* 埋点配置管理器
|
|
*/
|
|
@interface ATConfigMgr : NSObject
|
|
|
|
#ifdef SDK_IS4_ALIPAY
|
|
@property (nonatomic, strong) ATRealtimeLogConfig *realtimeConfig;
|
|
@property (nonatomic, strong) ATDelayUploadConfig *delayUploadConfig;
|
|
|
|
#endif
|
|
|
|
- (NSDictionary<NSString *,ATConfig *> *)allBizConfigs;
|
|
|
|
- (ATConfig *)configForBiz:(NSString *)bizType;
|
|
|
|
- (void)refreshConfig:(BOOL)force extInfo:(NSDictionary *)info;
|
|
|
|
- (void)setExtConfigValue:(NSString *)value
|
|
forKey:(NSString *)key;
|
|
|
|
-(void)setExtConfigDict:(NSDictionary *)configDict;
|
|
|
|
- (NSString *)extConfigValueForKey:(NSString *)key;
|
|
|
|
- (void)recalculateSampleControl;
|
|
|
|
- (void)notifyDidFinishLaunching:(__unused NSDictionary *)info;
|
|
|
|
-(BOOL)inDelayTime;
|
|
|
|
@end
|
|
|
|
@interface ATConfigMgr ()
|
|
|
|
@property (atomic, assign) BOOL httpsDisabled;
|
|
@property (atomic, assign) BOOL lengthLimitDisabled;
|
|
@property (atomic, assign) BOOL delayUpload;/**< 蓄洪功能开关*/
|
|
@property (atomic, assign) BOOL fullLink;/**< 全链路监控功能开关*/
|
|
@property (atomic, assign) BOOL customLog;/**< 自定义日志功能开关*/
|
|
@property (atomic, assign) BOOL verifySwitch;/**< 验证功能开关*/
|
|
@property (atomic, assign) BOOL floodRate;/**< 削峰率开关*/
|
|
@property (atomic, assign) BOOL periodUpload;/**< 间隔上传开关*/
|
|
@property (atomic, assign) NSInteger periodInterval;/**< 轮询间隔*/
|
|
@property (atomic, assign) BOOL failDelay;/**< 失败后上传间隔开关*/
|
|
@property (atomic, assign) BOOL emptyTask;/**< 空任务修复开关*/
|
|
@end
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
@interface ATConfig : NSObject
|
|
|
|
@property (nonatomic, assign) NSUInteger maxLogCount; /**< 条数上报阈值*/
|
|
@property (nonatomic, strong) NSArray *sendNetEnvs; /**< 可上报的网络类型集合*/
|
|
@property (nonatomic, strong) NSArray *events; /**< 可上报的原因集合*/
|
|
@property (nonatomic, assign) AntLogLevel level; /**< 最低可写入的日志等级*/
|
|
@property (nonatomic, assign) BOOL write; /**< 是否写入*/
|
|
@property (nonatomic, assign) BOOL encrypt; /**< 是否加密*/
|
|
@property (nonatomic, assign) BOOL realtime; /**< 是否实时通道上报*/
|
|
@property (nonatomic, assign) BOOL usemetds; /**< 是否走metds域名上报*/
|
|
@property (nonatomic, assign) NSInteger periodInterval; /**< 上传时间间隔*/
|
|
@property (nonatomic, strong) ISampleControl *sampleControl;/**< 抽样控制策略*/
|
|
@property (nonatomic, strong) DelayControl *delayControl; /**< 削峰控制策略*/
|
|
|
|
+ (ATConfig *)defaultConfig;
|
|
|
|
+ (ATConfig *)configWithDictionary:(NSDictionary *)dict;
|
|
|
|
- (BOOL)netEnvValid;
|
|
|
|
@end
|
|
|
|
|
|
#ifdef SDK_IS4_ALIPAY
|
|
@interface ATRealtimeLogConfig : NSObject
|
|
|
|
@property (nonatomic, assign) BOOL enabled;
|
|
@property (nonatomic, assign) NSTimeInterval timerInterval;
|
|
|
|
@end
|
|
|
|
@interface ATDelayUploadConfig : NSObject
|
|
|
|
@property(nonatomic,strong) NSMutableDictionary* floodTime;/**< 蓄洪开启时间为key 泄洪时间为value 可以配置多个 泄洪时间 单位 100ms*/
|
|
@property(nonatomic,assign) uint64_t minDelay;/**< 蓄洪最小持续时间 单位秒*/
|
|
@property(nonatomic,assign) uint64_t maxDelay;/**< 蓄洪最大持续时间 单位秒*/
|
|
@property(nonatomic,strong) NSString* currDesc;/**< 削峰配置当前描述*/
|
|
@property(nonatomic,strong) NSString* lastDesc;/**< 削峰上次配置的描述*/
|
|
@end
|
|
|
|
#endif
|
|
|