转载

通过curl命令上传符号表文件以及调试报表api接口数据

版权声明:此文章如需转载请联系听云College团队成员阮小乙,邮箱:ruanqy#tingyun.com

Windows curl 工具安装包: http://curl.haxx.se/download/

常用的参数说明:

curl <option> target_host_uri     -i  显示header     -k  忽略ssl验证     -o fileName 保存响应内容到指定的文件     -O  保存响应内容到文件,自动命名     -H "Key:Value"  设置请求的header     -F file=@target.txt  上传指定的文件 -d "param=testCode"  通过表单提交参数

一、上传符号表文件或者反混淆文件:

接口URI:

https://mobile-symbol-upload.tingyun.com/symbol/authkey/<auth_key>/appkey/<app_key>

参数解释:

<auth_key> : 在听云报表右上角有一个更新授权码的菜单,在登录用户名的子菜单下。

通过curl命令上传符号表文件以及调试报表api接口数据

<app_key>: 在听云报表app设置页面即可获取

通过curl命令上传符号表文件以及调试报表api接口数据

请求数据:

需要上传的符号表文件。

最后拼装请求url如下:

通过curl命令上传符号表文件以及调试报表api接口数据

注:红色文字已经隐藏部分数据

响应格式:

  • 格式一:

{   "status" : "SUCCESS",   "message" : "fd4c2e19-***-fcb8ed43b1d4" }

权限校验正常,符号表校验正常,上传成功。其中message字段表示服务器解析出来的BUILD_ID,如果包含多个则以英文逗号(,)分隔。

  • 格式二:

{   "status" : "ERROR",   "message":"authentication failed. [authkey: fw3***gw, appkey: ff8fda9***270b737]" }

出现此种问题,多数是<auth_key>或者<app_key>参数错误,更正参数即可。

  • 格式三:

{   "status" : "ERROR",   "message" : "mobile app ID is null. [authkey: fw3***gw, appkey: ff8fda9***270b737]" }

出现此种错误,请校验<app_key>参数是否正确。

  • 格式四:

{   "status" : "ERROR",   "message" : " BUILD_ID is null. [authkey: fw3***gw, appkey: ff8fda9***270b737]" }

<BUILD_ID>是校验用户上传的文件是否有效的条件之一。出现此种错误,请校验上传的符号表文件是否包含<BUILD_ID>。

二、请求调试api接口数据:

接口URI以及请求参数详见听云API接口文档。

由于api接口文档使用的是header参数鉴权,所以通过curl请求接口的时候需要配合“-H、-d”参数使用。

请求形式:

curl -i -k -H "X-Auth-Key: <auth_key>" -d "timePeriod=43200" https://api.tingyun.com/mobile/latest/accounts/<account_id>/mobileApplications/<mobile_app_id>/charts/mobile-application-performance.json

参数说明:

<auth_key>:同上节描述解释。

<account_id>:在获取<auth_key>参数的同时即可获取到此参数的值。

<mobile_app_id>:首先此处的ID不是上节中的app_key。想要查看指定应用的ID需要通过听云APP报表查看对应APP的应用分析菜单,此时浏览器地址栏中的ID就是。

通过curl命令上传符号表文件以及调试报表api接口数据

响应数据:

{   "chart": {     ***报表生成时间***     "timestamp": "2016-03-17 09:37",     ***报表时间范围:起始时间***     "beginTime": "2016-02-16 00:00",     ***报表时间范围:结束时间***     "endTime": "2016-03-17 00:00",     "timeGranularity": " ",     "dataset": [       {       "head": {           "categories": [             {               "id": "7154",               "name": "TY_DEMO_APP"             }           ],           "serieses": [             {               "id": "1",               "name": "响应时间"             }           ],           "rows": [                       {               "id": "1455552000000",               "name": "2016-02-16 00:00"             },             {               "id": "1455638400000",               "name": "2016-02-17 00:00"             },             {               "id": "1455724800000",               "name": "2016-02-18 00:00"             },             ***此处省略若干数据***           ],            "cols": [             {               "id": "nb.message.response_time_total",               "name": "响应时间"             },             {               "id": "nb.message.first_packet_time_total",               "name": "首包时间"             },             {               "id": "nb.message.count",               "name": "访问量"             }           ]         },         "data": [           [             [               [                 1.667,                 0.341,                 5152               ],               [                 0.993,                 0.212,                 4125               ],               [                 1.083,                 0.207,                 4059               ],               ***此处省略若干数据***             ]           ]           ]       }     ]   } }

注:以上数据结构中,dataset可能包含1个或多个,通常只有一个dataset。

格式解析:

category:类别。通常只有一个category。例如对于应用相关报表,category是指所选择应用,dataset头定义中category.id和category.name则分别对应所选择应用的ID和名称。

series: 数据序列。例如对于大多数曲线图,每一条曲线即对应一个序列。

row:行。对于时间趋势图,row通常对应时间维度。

col:列。对应多列数据。

下面的表格比较直观的表示了该数据结构:

通过curl命令上传符号表文件以及调试报表api接口数据

注:此部分数据摘抄自API接口文档。

想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。

原文  https://blog.tingyun.com/web/article/detail/251
正文到此结束
Loading...