AntLogSampleCenter.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //
  2. // APLogSampleControl.h
  3. // APBusinessCommon
  4. //
  5. // Created by 卡迩 on 2017/5/19.
  6. // Copyright © 2017年 Alipay. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "AntLogLevel.h"
  10. #import "ISampleControl.h"
  11. @class DelayControl;
  12. NS_ASSUME_NONNULL_BEGIN
  13. extern NSString *const kAntLogSampleRateKey;
  14. extern NSString *const kAntLogLevelRate1Key;
  15. extern NSString *const kAntLogLevelRate2Key;
  16. extern NSString *const kAntLogLevelRate3Key;
  17. extern NSString *const kMaxSampleRateString;
  18. /**
  19. 日志抽样策略控制中心.
  20. */
  21. @interface AntLogSampleCenter : NSObject
  22. /**
  23. 获取日志抽样策略控制单例.
  24. @return 日志抽样策略控制单例
  25. */
  26. + (AntLogSampleCenter *)defaultCenter;
  27. /**
  28. 输入抽样比例,当前设备、当天、某个抽样比例下是否命中抽样群体.
  29. @param rate 抽样比例,正整数,范围为0~1000,即抽样精度为千分之一.
  30. @return 命中抽样群体时返回 \c YES, 否则返回 \c NO.
  31. */
  32. - (BOOL)shouldSampleForRate:(unsigned long long)rate;
  33. /**
  34. 输入抽样比例,查询该比例下当前的抽样控制信息.
  35. @param rate 抽样比例,正整数,范围为0~1000,即抽样精度为千分之一.
  36. @return 指定抽样比例下的抽样控制信息对象.
  37. */
  38. - (nullable ISampleControl *)controlForSampleRate:(unsigned long long)rate;
  39. /**
  40. 输入抽样控制参数,查询该参数下的抽样控制信息
  41. @param params 抽样控制参数,至少包含整体抽样率、level1抽样率、level2抽样率、level3抽样率中一个
  42. @return 指定抽样控制参数下的抽样控制信息对象. 当控制参数不符合要求时返回 \c nil.
  43. */
  44. - (nullable ISampleControl *)controlForParams:(NSDictionary *)params;
  45. /**
  46. 输入削峰比例,查询改比例下当前的削峰命中情况
  47. @param params rate 削峰比例,正整数,范围为0~1000,即削峰精度为千分之一.
  48. @return 指定削峰比例下的削峰控制信息对象.
  49. */
  50. -(nullable DelayControl *)controlForDelayRate:(NSDictionary *)params;
  51. @end
  52. ////////////////////////////////////////////////////////////////////////////////
  53. NS_ASSUME_NONNULL_END