简介
本文档主要介绍 SDK 如何集成日志上报功能。注意: COS Android SDK 版本需要大于等于 v5.9.21。
功能说明
通过日志上报功能可以把 COS SDK 的运行日志上报到 CLS(腾讯云日志服务)上,用于查看分析 COS 各请求的执行次数、成功率、错误码以及国家省份等数据分布。
费用说明
COS SDK 的日志是上报并且存储在 CLS(腾讯云日志服务)上的,因此有一定的成本,大致费用估算为:每天上报一千万条,保留30天,一个月费用大概 180 元左右 CLS定价/价格计算器。停止日志上报的方式有两种:1. App 代码中删掉代码集成中 CosTrackService.initCLs
即可,不再进行 CLS 日志上报初始化。2. 从 CLS 控制台删除对应的日志主题 请注意谨慎操作,删除日志主题会删除历史的日志数据。
准备事项
一、创建日志主题
1. 登录 腾讯云日志服务控制台。若您的账户此前未开通日志服务,该页面将提示您开通,单击开通即可。2. (可选)前往 日志主题 管理页面,点击管理日志集,然后在弹出窗中点击创建日志集,填入日志集名称 qcloud_track,点击确定(仅方便管理,也可以不创建)。

3. 前往 日志主题 管理页面,在页面左上角选择要上报的地域,单击创建日志主题。

4. 在弹出的创建日志主题窗口中,填写相关信息,单击确定。

日志主题名称:例如 qcloud_track_cos_sdk_xxxapp。日志接入:标准存储。保存时间:默认 30 天,可根据业务自行设置。日志沉降:默认关闭,打开后沉降的日志将无法通过仪表盘查看业务数据。匿名写入:关闭。日志集操作:选择现有日志集。日志集:选择 qcloud_track 日志集或其他日志集,建议选择 qcloud_track 日志集。日志主题标签:根据业务需要自行选择,默认不指定标签。日志主题描述:对日志主题进行描述,例如:xxxapp 的 cos sdk 业务日志,默认为空。主题分区:建议保持默认值。
二、配置日志主题索引
1. 前往 日志主题 管理页面,单击步骤一创建的日志主题名称/ID,进入该日志主题管理页面。2. 选择索引配置页签,点击编辑,打开索引状态和键值索引,关闭全文索引。3. 添加如下索引字段:
字段名称 字段类型 分词符 包含中文 开启统计
request_name text 默认 false true
request_result text 默认 false true
region text 默认 false true
bucket text 默认 false true
accelerate text 默认 false true
http_method text 默认 false true
url text 默认 false false
host text 默认 false true
request_path text 默认 true false
user_agent text 默认 true true
network_protocol text 默认 false true
error_type text 默认 false true
error_name text 默认 false true
error_code text 默认 false true
error_message text 默认 true true
error_service_name text 默认 false true
error_http_code long 无 false true
error_http_message text 默认 true true
error_request_id text 默认 false false
error_node text 默认 false true
sdk_version_code long 无 false true
sdk_version_name text 默认 false true
boundle_id text 默认 false true
app_version_code long 无 false true
app_version_name text 默认 false true
os_name text 默认 false true
os_version text 默认 false true
client_local_ip text 默认 false true
client_proxy text 默认 false true
network_type text 默认 false true
platform_name text 默认 false true
platform_version text 默认 false true
http_took_time double 无 false true
http_dns double 无 false true
http_connect double 无 false true
http_secure_connect double 无 false true
http_md5 double 无 false true
http_sign double 无 false true
http_read_header double 无 false true
http_read_body double 无 false true
http_write_header double 无 false true
http_write_body double 无 false true
http_full_time double 无 false true
http_size double 无 false true
http_retry_times long 无 false true
http_domain text 默认 false true
http_connect_ip text 默认 false true
http_dns_ips text 默认 false true
http_speed double 无 false true
4. 点击确定进行保存。

操作步骤
步骤一、安装 CLS SDK
在应用级别(通常是 App 模块下)的 build.gradle
中添加依赖:
dependencies { ... // 增加这两行 implementation 'com.tencentcloudapi.cls:tencentcloud-cls-sdk-android:1.0.5' implementation 'com.google.guava:guava:27.0.1-android'}
步骤二、实现获取 CLS 临时密钥
注意:建议用户 使用临时密钥,通过临时授权的方式进一步提高安全性。申请临时密钥时,请遵循 最小权限指引原则,防止泄露目标之外的资源。如果您一定要使用永久密钥,建议遵循 最小权限指引原则 对永久密钥的权限范围进行限制。实现一个 ClsLifecycleCredentialProvider
的子类,实现请求临时密钥并返回结果的过程。临时密钥的获取可以参考:使用临时密钥访问 CLS、获取联合身份临时访问凭证(授权策略中 action 设置为 name/cls:pushLog)。
ClsLifecycleCredentialProvider clsLifecycleCredentialProvider = new ClsLifecycleCredentialProvider() {
@Override
protected ClsSessionCredentials fetchNewCredentials() throws ClsAuthenticationException {
// 首先从您的临时密钥服务器获取包含了密钥信息的响应
// 然后解析响应,获取临时密钥信息
String tmpSecretId = "SECRETID"; // 临时密钥 SecretId
String tmpSecretKey = "SECRETKEY"; // 临时密钥 SecretKey
String sessionToken = "SESSIONTOKEN"; // 临时密钥 Token
long expiredTime = 1556183496L;//临时密钥有效截止时间戳,单位是秒
// 最后返回临时密钥信息对象
return new ClsSessionCredentials(tmpSecretId, tmpSecretKey,
sessionToken, expiredTime);
}
};
您可以使用腾讯云的固定密钥来进行开发阶段的本地调试。由于该方式存在泄露密钥的风险,请务必在上线前替换为临时密钥的方式。
//用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。//子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140String secretId = "SECRETID"; //用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。//子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140String secretKey = "SECRETKEY";
步骤三、用上述密钥初始化 CLS 上报
1. 前往 日志主题 管理页面,单击步骤一创建的日志主题名称/ID,进入该日志主题管理页面,在基础信息页签中获取到日志主题ID和地域 CLS地域说明,例如:日志主题ID为 c09216e3-ade5-4725-a000-000000000000,地域为 ap-guangzhou。

2. 在COS SDK使用之前进行初始化,一般为 Application 中。
// clsLifecycleCredentialProvider为 步骤1 中获取到的cls临时密钥提供器
CosTrackService
.
initCLs
(
this
,
"c09216e3-ade5-4725-a000-000000000000"
,
"ap-guangzhou.cls.tencentcs.com"
,
clsLifecycleCredentialProvider
)
;
或者您可以使用腾讯云的固定密钥来进行开发阶段的本地调试。由于该方式存在泄露密钥的风险,请务必在上线前替换为临时密钥的方式。
// secretId 和 secretKey为 步骤1 中获取到的固定密钥
CosTrackService
.
initCLs
(
this
,
topicId
,
topicEndpoint
,
secretId
,
secretKey
)
;
如果要停止 COS SDK 日志上报,只需要删掉上述 CosTrackService.initCLs
不进行初始化即可。
步骤四、设置网络权限
CLS 日志上传是基于 http 的,因此需要对 xxx.cls.tencentcs.com 域名进行 http 开放。1. 在 res 文件夹下创建一个 xml 文件夹,然后创建一个 network_security_config.xml 文件,文件内容如下:
cls.tencentcs.com
2. 在 AndroidManifest.xml 文件下的 application 标签增加以下属性:
... android:networkSecurityConfig="@xml/network_security_config" .../>
步骤五、配置自定义字段
1. 在日志主题索引字段中增加自定义字段。2. 代码中设置上述自定义字段和具体的值。
Map
businessParams
=
new
HashMap
(
)
;
businessParams
.
put
(
"businessKey1"
,
"businessValue1"
)
;
businessParams
.
put
(
"businessKey2"
,
"businessValue2"
)
;
businessParams
.
put
(
"businessKey3"
,
"businessValue3"
)
;
QCloudTrackService
.
getInstance
(
)
.
setBusinessParams
(
businessParams
)
;
步骤六、结果验证
1. 运行代码,进行 COS SDK 上传下载等操作,等待 5 分钟。2. 前往 检索分析,选择 近5分钟 筛选项,点击查询按钮查看具体的上报日志是否符合 二、配置日志主题索引 中配置的索引字段。

对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
转转请注明出处:https://www.yunxiaoer.com/145435.html