Skip to content

Commit a119996

Browse files
authored
Merge pull request #368 from qiniu/develop
Develop
2 parents d6b8ba1 + 1a32bf6 commit a119996

File tree

12 files changed

+40
-18
lines changed

12 files changed

+40
-18
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ sudo: true
55
before_install:
66
- rvm install 2.6.4
77
- rvm use 2.6.4
8-
- brew update
8+
# - brew update
99
- gem install cocoapods --pre
1010
- pod --version
1111
- rm -rf ~/.cocoapods

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
#Changelog
2+
## 8.0.3(2020-09-23)
3+
## 修正
4+
- 修复内存峰值问题
5+
- 优化日志上传统计
6+
27
## 8.0.2(2020-09-14)
38
## 修正
49
- 修复日志上传失败问题

Qiniu.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'Qiniu'
3-
s.version = '8.0.2'
3+
s.version = '8.0.3'
44
s.summary = 'Qiniu Resource Storage SDK for iOS and Mac'
55
s.homepage = 'https://github.com/qiniu/objc-sdk'
66
s.social_media_url = 'http://weibo.com/qiniutek'

QiniuSDK/Collect/QNReportItem.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ extern NSString *const QNReportBlockKeyClientTime;
108108
extern NSString *const QNReportQualityKeyLogType;
109109
extern NSString *const QNReportQualityKeyUpTime;
110110
extern NSString *const QNReportQualityKeyResult;
111+
extern NSString *const QNReportQualityKeyTargetBucket;
112+
extern NSString *const QNReportQualityKeyTargetKey;
111113
extern NSString *const QNReportQualityKeyTotalElapsedTime;
112114
extern NSString *const QNReportQualityKeyRequestsCount;
113115
extern NSString *const QNReportQualityKeyRegionsCount;

QiniuSDK/Collect/QNReportItem.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ - (NSString *)requestReportErrorType{
114114
errorType = @"ssl_error";
115115
} else if (self.statusCode == -1015 || self.statusCode == -1016 || self.statusCode == -1017){
116116
errorType = @"parse_error";
117-
} else if (self.statusCode == -1007 || self.statusCode == -1010 || kQNMaliciousResponseError){
117+
} else if (self.statusCode == -1007 || self.statusCode == -1010 || self.statusCode == kQNMaliciousResponseError){
118118
errorType = @"malicious_response";
119119
} else if (self.statusCode == kQNRequestCancelled
120120
|| self.statusCode == NSURLErrorCancelled){
@@ -216,8 +216,10 @@ - (NSString *)qualityResult{
216216

217217
//MARK:-- 上传质量统计
218218
NSString * const QNReportQualityKeyLogType = @"log_type";
219-
NSString *const QNReportQualityKeyUpTime = @"up_time";
219+
NSString * const QNReportQualityKeyUpTime = @"up_time";
220220
NSString * const QNReportQualityKeyResult = @"result";
221+
NSString * const QNReportQualityKeyTargetBucket = @"target_bucket";
222+
NSString * const QNReportQualityKeyTargetKey = @"target_key";
221223
NSString * const QNReportQualityKeyTotalElapsedTime = @"total_elapsed_time";
222224
NSString * const QNReportQualityKeyRequestsCount = @"requests_count";
223225
NSString * const QNReportQualityKeyRegionsCount = @"regions_count";

QiniuSDK/Http/QNResponseInfo.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,9 @@ - (instancetype)initWithResponseInfoHost:(NSString *)host
164164
_statusCode = (int)error.code;
165165
_message = [NSString stringWithFormat:@"%@", error];
166166
_responseDictionary = nil;
167+
} else {
168+
_statusCode = -9;
169+
_message = @"no response";
167170
}
168171
}
169172
return self;

QiniuSDK/Http/QNUploadRequestMetrics.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
1313

1414
@interface QNUploadSingleRequestMetrics : NSObject
1515

16-
@property (copy) NSURLRequest *request;
17-
@property (nullable, copy) NSURLResponse *response;
16+
@property (nonatomic, copy) NSURLRequest *request;
17+
@property (nullable , copy) NSURLResponse *response;
1818

1919
@property (nullable, copy) NSDate *startDate;
2020
@property (nullable, copy) NSDate *endDate;

QiniuSDK/Http/QNUploadRequestMetrics.m

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,18 @@ - (void)initData{
3333
_countOfResponseBodyBytesReceived = 0;
3434
}
3535

36+
- (void)setRequest:(NSURLRequest *)request{
37+
NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:request.URL
38+
cachePolicy:request.cachePolicy
39+
timeoutInterval:request.timeoutInterval];
40+
newRequest.allHTTPHeaderFields = request.allHTTPHeaderFields;
41+
42+
NSInteger headerLength = [NSString stringWithFormat:@"%@", self.request.allHTTPHeaderFields].length;
43+
NSInteger bodyLength = [self.request.qn_getHttpBody length];
44+
_totalBytes = @(headerLength + bodyLength);
45+
_request = [newRequest copy];
46+
}
47+
3648
- (NSNumber *)totalElapsedTime{
3749
return [self timeFromStartDate:self.startDate
3850
toEndDate:self.endDate];
@@ -68,12 +80,6 @@ - (NSNumber *)totalResponseTime{
6880
toEndDate:self.responseEndDate];
6981
}
7082

71-
- (NSNumber *)totalBytes{
72-
NSInteger headerLength = [NSString stringWithFormat:@"%@", self.request.allHTTPHeaderFields].length;
73-
NSInteger bodyLength = [self.request.qn_getHttpBody length];
74-
return @(headerLength + bodyLength);
75-
}
76-
7783
- (NSNumber *)bytesSend{
7884
int64_t totalBytes = [self totalBytes].integerValue;
7985
int64_t senderBytes = self.countOfRequestBodyBytesSent + self.countOfRequestHeaderBytesSent;

QiniuSDK/Http/Request/HttpClient/QNUploadSystemClient.m

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)data
6262
}
6363

6464
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(nullable NSError *)error {
65-
6665
self.requestMetrics.endDate = [NSDate date];
6766
self.requestMetrics.request = task.currentRequest;
6867
self.requestMetrics.response = task.response;

QiniuSDK/Storage/QNUploadManager.m

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ + (void)complete:(NSString *)token
393393
taskMetrics:(QNUploadTaskMetrics *)taskMetrics
394394
complete:(QNUpCompletionHandler)completionHandler {
395395

396-
[QNUploadManager reportQuality:responseInfo taskMetrics:taskMetrics token:token];
396+
[QNUploadManager reportQuality:key responseInfo:responseInfo taskMetrics:taskMetrics token:token];
397397

398398
QNAsyncRunInMain(^{
399399
if (completionHandler) {
@@ -404,16 +404,21 @@ + (void)complete:(NSString *)token
404404

405405

406406
//MARK:-- 统计quality日志
407-
+ (void)reportQuality:(QNResponseInfo *)info
407+
+ (void)reportQuality:(NSString *)key
408+
responseInfo:(QNResponseInfo *)responseInfo
408409
taskMetrics:(QNUploadTaskMetrics *)taskMetrics
409410
token:(NSString *)token{
410411

412+
QNUpToken *upToken = [QNUpToken parse:token];
411413
QNUploadTaskMetrics *taskMetricsP = taskMetrics ?: [QNUploadTaskMetrics emptyMetrics];
412414

413415
QNReportItem *item = [QNReportItem item];
414416
[item setReportValue:QNReportLogTypeQuality forKey:QNReportQualityKeyLogType];
415417
[item setReportValue:@([[NSDate date] timeIntervalSince1970]) forKey:QNReportQualityKeyUpTime];
416-
[item setReportValue:info.qualityResult forKey:QNReportQualityKeyResult];
418+
[item setReportValue:responseInfo.qualityResult forKey:QNReportQualityKeyResult];
419+
[item setReportValue:upToken.bucket forKey:QNReportQualityKeyTargetBucket];
420+
[item setReportValue:key forKey:QNReportQualityKeyTargetKey];
421+
[item setReportValue:taskMetricsP.totalElapsedTime forKey:QNReportQualityKeyTotalElapsedTime];
417422
[item setReportValue:taskMetricsP.totalElapsedTime forKey:QNReportQualityKeyTotalElapsedTime];
418423
[item setReportValue:taskMetricsP.requestCount forKey:QNReportQualityKeyRequestsCount];
419424
[item setReportValue:taskMetricsP.regionCount forKey:QNReportQualityKeyRegionsCount];

0 commit comments

Comments
 (0)