Skip to content

Commit a7a276f

Browse files
author
jordanqin
committed
update qcloud sdk to 5.9.27
1 parent 89862d5 commit a7a276f

File tree

8 files changed

+133
-48
lines changed

8 files changed

+133
-48
lines changed

QCloudCosXml/cos-android-base/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ android {
66
minSdkVersion 15
77
targetSdkVersion 28
88

9-
versionCode 50924
10-
versionName '5.9.24'
9+
versionCode 50925
10+
versionName '5.9.25'
1111

1212
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
1313

QCloudCosXml/cos-android-base/src/main/java/com/tencent/cos/xml/CosTrackService.java

Lines changed: 80 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@
3232
import com.tencent.cos.xml.exception.CosXmlClientException;
3333
import com.tencent.cos.xml.exception.CosXmlServiceException;
3434
import com.tencent.cos.xml.model.CosXmlRequest;
35+
import com.tencent.cos.xml.model.object.BasePutObjectRequest;
36+
import com.tencent.cos.xml.model.object.GetObjectBytesRequest;
37+
import com.tencent.cos.xml.model.object.GetObjectRequest;
3538
import com.tencent.cos.xml.model.object.ObjectRequest;
3639
import com.tencent.cos.xml.transfer.TransferTaskMetrics;
3740
import com.tencent.cos.xml.utils.ThrowableUtils;
@@ -231,21 +234,54 @@ public void reportError(String source, Exception e) {
231234
* @param request request
232235
*/
233236
public void reportRequestSuccess(CosXmlRequest request) {
234-
reportRequestSuccess(request, null);
237+
reportRequestSuccess(request, false);
238+
}
239+
public void reportRequestSuccess(CosXmlRequest request, boolean internal) {
240+
Map<String, String> extra = null;
241+
if(request instanceof BasePutObjectRequest){
242+
extra = Collections.singletonMap("request_name", "UploadTask");
243+
} else if(request instanceof GetObjectRequest || request instanceof GetObjectBytesRequest){
244+
extra = Collections.singletonMap("request_name", "DownloadTask");
245+
} else if("CopyObjectRequest".equalsIgnoreCase(request.getClass().getSimpleName())){
246+
extra = Collections.singletonMap("request_name", "CopyTask");
247+
}
248+
reportRequestSuccess(request, extra, internal);
235249
}
236250

237251
/**
238252
* 上报base_service事件 ClientException
239253
*/
240254
public CosXmlClientException reportRequestClientException(CosXmlRequest request, QCloudClientException clientException) {
241-
return reportClientException(request, clientException, null);
255+
return reportRequestClientException(request, clientException, false);
256+
}
257+
public CosXmlClientException reportRequestClientException(CosXmlRequest request, QCloudClientException clientException, boolean internal) {
258+
Map<String, String> extra = null;
259+
if(request instanceof BasePutObjectRequest){
260+
extra = Collections.singletonMap("request_name", "UploadTask");
261+
} else if(request instanceof GetObjectRequest || request instanceof GetObjectBytesRequest){
262+
extra = Collections.singletonMap("request_name", "DownloadTask");
263+
} else if("CopyObjectRequest".equalsIgnoreCase(request.getClass().getSimpleName())){
264+
extra = Collections.singletonMap("request_name", "CopyTask");
265+
}
266+
return reportClientException(request, clientException, extra, internal);
242267
}
243268

244269
/**
245270
* 上报base_service事件 ServiceException
246271
*/
247272
public CosXmlServiceException reportRequestServiceException(CosXmlRequest request, QCloudServiceException serviceException) {
248-
return reportServiceException(request, serviceException, null);
273+
return reportRequestServiceException(request, serviceException, false);
274+
}
275+
public CosXmlServiceException reportRequestServiceException(CosXmlRequest request, QCloudServiceException serviceException, boolean internal) {
276+
Map<String, String> extra = null;
277+
if(request instanceof BasePutObjectRequest){
278+
extra = Collections.singletonMap("request_name", "UploadTask");
279+
} else if(request instanceof GetObjectRequest || request instanceof GetObjectBytesRequest){
280+
extra = Collections.singletonMap("request_name", "DownloadTask");
281+
} else if("CopyObjectRequest".equalsIgnoreCase(request.getClass().getSimpleName())){
282+
extra = Collections.singletonMap("request_name", "CopyTask");
283+
}
284+
return reportServiceException(request, serviceException, extra, internal);
249285
}
250286

251287
/**
@@ -256,23 +292,23 @@ public CosXmlServiceException reportRequestServiceException(CosXmlRequest reques
256292
public void reportUploadTaskSuccess(CosXmlRequest request) {
257293
// 只需要一个 PutObjectRequest 壳,带上 HttpTaskMetrics 信息
258294
reportRequestSuccess(request,
259-
Collections.singletonMap("request_name", "UploadTask"));
295+
Collections.singletonMap("request_name", "UploadTask"), false);
260296
}
261297

262298
/**
263299
* 上报cos_upload事件 ClientException
264300
*/
265301
public void reportUploadTaskClientException(CosXmlRequest request, QCloudClientException clientException) {
266302
reportClientException(request, clientException,
267-
createTransferExtra("UploadTask", request));
303+
createTransferExtra("UploadTask", request), false);
268304
}
269305

270306
/**
271307
* 上报cos_upload事件 ServiceException
272308
*/
273309
public void reportUploadTaskServiceException(CosXmlRequest request, QCloudServiceException serviceException) {
274310
reportServiceException(request, serviceException,
275-
createTransferExtra("UploadTask", request));
311+
createTransferExtra("UploadTask", request), false);
276312
}
277313

278314
/**
@@ -283,23 +319,23 @@ public void reportUploadTaskServiceException(CosXmlRequest request, QCloudServic
283319
public void reportDownloadTaskSuccess(CosXmlRequest request) {
284320
// 只需要一个 GetObjectRequest 壳,带上 HttpTaskMetrics 信息
285321
reportRequestSuccess(request,
286-
Collections.singletonMap("request_name", "DownloadTask"));
322+
Collections.singletonMap("request_name", "DownloadTask"), false);
287323
}
288324

289325
/**
290326
* 上报cos_download事件 ClientException
291327
*/
292328
public void reportDownloadTaskClientException(CosXmlRequest request, QCloudClientException clientException) {
293329
reportClientException(request, clientException,
294-
createTransferExtra("DownloadTask", request));
330+
createTransferExtra("DownloadTask", request), false);
295331
}
296332

297333
/**
298334
* 上报cos_download事件 ServiceException
299335
*/
300336
public void reportDownloadTaskServiceException(CosXmlRequest request, QCloudServiceException serviceException) {
301337
reportServiceException(request, serviceException,
302-
createTransferExtra("DownloadTask", request));
338+
createTransferExtra("DownloadTask", request), false);
303339
}
304340

305341
/**
@@ -310,38 +346,36 @@ public void reportDownloadTaskServiceException(CosXmlRequest request, QCloudServ
310346
public void reportCopyTaskSuccess(CosXmlRequest request) {
311347
// 只需要一个 CopyObjectRequest 壳,带上 HttpTaskMetrics 信息
312348
reportRequestSuccess(request,
313-
Collections.singletonMap("request_name", "CopyTask"));
349+
Collections.singletonMap("request_name", "CopyTask"), false);
314350
}
315351

316352
/**
317353
* 上报cos_copy事件 ClientException
318354
*/
319355
public void reportCopyTaskClientException(CosXmlRequest request, CosXmlClientException clientException) {
320356
reportClientException(request, clientException,
321-
createTransferExtra("CopyTask", request));
357+
createTransferExtra("CopyTask", request), false);
322358
}
323359

324360
/**
325361
* 上报cos_copy事件 ServiceException
326362
*/
327363
public void reportCopyTaskServiceException(CosXmlRequest request, CosXmlServiceException serviceException) {
328364
reportServiceException(request, serviceException,
329-
createTransferExtra("CopyTask", request));
365+
createTransferExtra("CopyTask", request), false);
330366
}
331367

332368
/**
333369
* 单个请求,整体任务 成功
334370
*/
335-
private void reportRequestSuccess(CosXmlRequest request, @Nullable Map<String, String> extra) {
371+
private void reportRequestSuccess(CosXmlRequest request, @Nullable Map<String, String> extra, boolean internal) {
336372
try {
337373
HttpTaskMetrics taskMetrics = request.getMetrics();
338374

339375
// 添加 Request 参数
340376
Map<String, String> params = parseCosXmlRequestParams(request);
341377
// 添加基础参数
342378
params.putAll(getCommonParams());
343-
// 添加性能参数
344-
params.putAll(parseHttpTaskMetricsParams(taskMetrics));
345379
// 添加服务名称
346380
if (extra == null || !extra.containsKey("request_name")) {
347381
params.put("request_name", request.getClass().getSimpleName());
@@ -352,7 +386,11 @@ private void reportRequestSuccess(CosXmlRequest request, @Nullable Map<String, S
352386
if (extra != null) {
353387
params.putAll(extra);
354388
}
355-
QCloudTrackService.getInstance().report(EVENT_CODE_QCLOUD_TRACK_COS_SDK, params);
389+
// 添加性能参数
390+
params.putAll(parseHttpTaskMetricsParams(taskMetrics, params.get("request_name")));
391+
if(!internal) {
392+
QCloudTrackService.getInstance().report(EVENT_CODE_QCLOUD_TRACK_COS_SDK, params);
393+
}
356394
} catch (Exception e) {
357395
e.printStackTrace();
358396
}
@@ -361,7 +399,7 @@ private void reportRequestSuccess(CosXmlRequest request, @Nullable Map<String, S
361399
/**
362400
* 上报客户端异常 单个请求,整体任务
363401
*/
364-
private CosXmlClientException reportClientException(CosXmlRequest request, QCloudClientException clientException, @Nullable Map<String, String> extra) {
402+
private CosXmlClientException reportClientException(CosXmlRequest request, QCloudClientException clientException, @Nullable Map<String, String> extra, boolean internal) {
365403
ReturnClientException returnClientException = getClientExceptionParams(clientException);
366404
try {
367405
if (isReport(returnClientException.exception)) {
@@ -373,8 +411,6 @@ private CosXmlClientException reportClientException(CosXmlRequest request, QClou
373411
params.putAll(getCommonParams());
374412
// 添加错误信息
375413
params.putAll(returnClientException.params);
376-
// 添加性能参数
377-
params.putAll(parseHttpTaskMetricsParams(taskMetrics));
378414
// 添加服务名称
379415
if (extra == null || !extra.containsKey("request_name")) {
380416
params.put("request_name", request.getClass().getSimpleName());
@@ -386,7 +422,11 @@ private CosXmlClientException reportClientException(CosXmlRequest request, QClou
386422
if (extra != null) {
387423
params.putAll(extra);
388424
}
389-
QCloudTrackService.getInstance().report(EVENT_CODE_QCLOUD_TRACK_COS_SDK, params);
425+
// 添加性能参数
426+
params.putAll(parseHttpTaskMetricsParams(taskMetrics, params.get("request_name")));
427+
if(!internal) {
428+
QCloudTrackService.getInstance().report(EVENT_CODE_QCLOUD_TRACK_COS_SDK, params);
429+
}
390430
}
391431
} catch (Exception e) {
392432
e.printStackTrace();
@@ -397,7 +437,7 @@ private CosXmlClientException reportClientException(CosXmlRequest request, QClou
397437
/**
398438
* 上报服务端异常 单个请求,整体任务
399439
*/
400-
private CosXmlServiceException reportServiceException(CosXmlRequest request, QCloudServiceException serviceException, @Nullable Map<String, String> extra) {
440+
private CosXmlServiceException reportServiceException(CosXmlRequest request, QCloudServiceException serviceException, @Nullable Map<String, String> extra, boolean internal) {
401441
ReturnServiceException returnServiceException = getServiceExceptionParams(serviceException);
402442
try {
403443
if (isReport(returnServiceException.exception)) {
@@ -407,8 +447,6 @@ private CosXmlServiceException reportServiceException(CosXmlRequest request, QCl
407447
params.putAll(getCommonParams());
408448
// 添加错误信息
409449
params.putAll(returnServiceException.params);
410-
// 添加性能参数
411-
params.putAll(parseHttpTaskMetricsParams(request.getMetrics()));
412450
// 添加服务名称
413451
if (extra == null || !extra.containsKey("request_name")) {
414452
params.put("request_name", request.getClass().getSimpleName());
@@ -420,7 +458,11 @@ private CosXmlServiceException reportServiceException(CosXmlRequest request, QCl
420458
if (extra != null) {
421459
params.putAll(extra);
422460
}
423-
QCloudTrackService.getInstance().report(EVENT_CODE_QCLOUD_TRACK_COS_SDK, params);
461+
// 添加性能参数
462+
params.putAll(parseHttpTaskMetricsParams(request.getMetrics(), params.get("request_name")));
463+
if(!internal) {
464+
QCloudTrackService.getInstance().report(EVENT_CODE_QCLOUD_TRACK_COS_SDK, params);
465+
}
424466
}
425467
} catch (Exception e){
426468
e.printStackTrace();
@@ -431,7 +473,7 @@ private CosXmlServiceException reportServiceException(CosXmlRequest request, QCl
431473
/**
432474
* 获取http性能数据字段
433475
*/
434-
private Map<String, String> parseHttpTaskMetricsParams(@Nullable HttpTaskMetrics taskMetrics) {
476+
private Map<String, String> parseHttpTaskMetricsParams(@Nullable HttpTaskMetrics taskMetrics, String requestName) {
435477
Map<String, String> params = new HashMap<>();
436478

437479
if (taskMetrics == null) {
@@ -449,13 +491,23 @@ private Map<String, String> parseHttpTaskMetricsParams(@Nullable HttpTaskMetrics
449491
params.put("http_write_header", String.valueOf(taskMetrics.writeRequestHeaderTookTime()));
450492
params.put("http_write_body", String.valueOf(taskMetrics.writeRequestBodyTookTime()));
451493
params.put("http_full_time", String.valueOf(taskMetrics.fullTaskTookTime()));
452-
params.put("http_size", String.valueOf(taskMetrics.requestBodyByteCount() + taskMetrics.responseBodyByteCount()));
494+
if("UploadTask".equalsIgnoreCase(requestName) || "CopyTask".equalsIgnoreCase(requestName)){
495+
params.put("http_size", String.valueOf(taskMetrics.requestBodyByteCount()));
496+
// 速度 每秒传输的数据大小 kb为单位
497+
params.put("http_speed", String.valueOf((taskMetrics.requestBodyByteCount()/1024d) / taskMetrics.httpTaskFullTime()));
498+
} else if("DownloadTask".equalsIgnoreCase(requestName)){
499+
params.put("http_size", String.valueOf(taskMetrics.responseBodyByteCount()));
500+
// 速度 每秒传输的数据大小 kb为单位
501+
params.put("http_speed", String.valueOf((taskMetrics.responseBodyByteCount()/1024d) / taskMetrics.httpTaskFullTime()));
502+
} else {
503+
params.put("http_size", String.valueOf(taskMetrics.requestBodyByteCount() + taskMetrics.responseBodyByteCount()));
504+
// 速度 每秒传输的数据大小 kb为单位
505+
params.put("http_speed", String.valueOf(((taskMetrics.requestBodyByteCount() + taskMetrics.responseBodyByteCount())/1024d) / taskMetrics.httpTaskFullTime()));
506+
}
453507
params.put("http_retry_times", String.valueOf(taskMetrics.getRetryCount()));
454508
params.put("http_domain", taskMetrics.getDomainName() != null ? taskMetrics.getDomainName() : "null");
455509
params.put("http_connect_ip", taskMetrics.getConnectAddress() != null ? taskMetrics.getConnectAddress().getHostAddress() : "null");
456510
params.put("http_dns_ips", taskMetrics.getRemoteAddress() != null ? taskMetrics.getRemoteAddress().toString() : "null");
457-
// 速度 每秒传输的数据大小 kb为单位
458-
params.put("http_speed", String.valueOf(((taskMetrics.requestBodyByteCount() + taskMetrics.responseBodyByteCount())/1024d) / taskMetrics.httpTaskFullTime()));
459511
return params;
460512
}
461513

0 commit comments

Comments
 (0)