API功能

一、启动配置接口

BonreeSDK启动

bool BONREE_CALL StartWithAppIDA(const char* app_id);
bool BONREE_CALL StartWithAppIDW(const wchar_t* app_id);
  • 参数说明
参数 描述
app_id 博睿SDK平台生成的应用唯一ID
  • 返回值
    初始化 bonree SDK成功返回 true, 失败返回 false。

  • 示例

    std::wstring appid = L"d3cf38d8-9cea-4db5-9712-14fe55038ae5";
    bool ret = bonree_sdk::StartWithAppID(appid.c_str());
    if (!ret) {
      //初始化SDK失败
    }
    

BonreeSDK关闭

bool BONREE_CALL StopSDK();

请在应用进程关闭时调用此接口。

  • 参数说明
参数 描述
NONE
  • 返回值
    注销成功返回 true,失败返回 false。

  • 示例

bool ret = bonree_sdk::StopSDK();
if (!ret) {
    //结束SDK失败
}

设置config服务器地址

私有云客户设置私有部署的config地址时使用。公有云客户请勿调用。该接口需要在调用StartWithAppID前设置。

bool BONREE_CALL SetConfigAddressA(const char* url);
bool BONREE_CALL SetConfigAddressW(const wchar_t* url);
  • 参数说明
参数 描述
url 私有云config地址
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetConfigAddress(L"http://devtest.ibr.cc:20107/config");
    if(!ret){
      // 设置config 服务地址失败
    }
    

设置app版本

设置的版本信息将会上报到用户信息中。
如果未在编译产出的PE文件中设置版本信息,请调用此接口设置。

bool BONREE_CALL SetAppVersionA(const char* app_version);
bool BONREE_CALL SetAppVersionW(const wchar_t* app_version);
  • 参数说明
参数 描述
app_version app 版本号
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetAppVersion(L"2.0.1");
    if(!ret){
      // 设置app 版本失败
    }
    

设置下载渠道名称

区分应用发布的渠道, 渠道信息会在平台的性能数据中做展示。

bool BONREE_CALL SetChannelIDA(const char* channel_id);
bool BONREE_CALL SetChannelIDW(const wchar_t* channel_id);
  • 参数说明
参数 描述
channel_id 需要设置的渠道名称
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetChannelID(L"123456789");
    if(!ret){
      // 设置渠道商ID失败
    }
    

设置自定义设备ID

默认为主板序列号。

BONREE_CALL SetDeviceIDA(const char* id);
BONREE_CALL SetDeviceIDW(const wchar_t* id);
  • 参数说明
参数 描述
id 自定义设备ID
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetDeviceID(L"123456789");
    if(!ret){
      // 设置自定义设备ID失败
    }
    

设置自定义业务头

配置原生网络请求中的关键Http Request Header的key, 当SDK采集到的实际请求数据中Request Header带有此key,对应的key和value将会被单独展示。

typedef struct CustomBusinessHeaderA {
    char* header;
    CustomBusinessHeaderA():header(nullptr) {}
} CUSTOMBUSINESSHEADERA, *PCUSTOMBUSINESSHEADERA;

typedef struct CustomBusinessHeaderW {
    wchar_t* header;
    CustomBusinessHeaderW() :header(nullptr) {}
} CUSTOMBUSINESSHEADERW, *PCUSTOMBUSINESSHEADERW;

BONREE_SDK_API bool BONREE_CALL SetCustomBusinessHeadersA(PCUSTOMBUSINESSHEADERA custom_headers,int size);
BONREE_SDK_API bool BONREE_CALL SetCustomBusinessHeadersW(PCUSTOMBUSINESSHEADERW custom_headers,int size);
  • 参数说明
参数 描述 限制
custom_header_keys 自定义业务头 set元素为长度大于0,小于等于256的字符串且不包含特殊字符(仅支持字母数字及-, _, *, #),否则本项无效
size 数组长度 大于0,小于等于64,否则接口调用失败
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bonree_sdk::CUSTOMBUSINESSHEADERW business_headers[3];
    business_headers[0].header = L"business_headers1";
    business_headers[1].header = L"business_headers2";
    business_headers[2].header = L"business_headers3";
    bool ret = bonree_sdk::SetCustomBusinessHeaders(business_headers, 3);
    if (!ret) {
      // 设置自定义业务头失败
    }
    

二、 数据获取接口

获取设备ID

如果设置了自定义设备ID,则这里获取的是自定义设备ID,否则获取的是主板的序列号。

bool BONREE_CALL GetDeviceIDA(char* id,int len);
bool BONREE_CALL GetDeviceIDW(wchar_t* id, int len);
  • 参数说明
参数 描述
id 获取设备id缓存
len id缓存长度
  • 返回值
    获取成功返回 true, 失败返回 false。

  • 示例

    wchar_t id_buf[16] = { 0 };
    bool ret = bonree_sdk::GetDeviceID(id_buf, 16);
    if (!ret) {
      // 获取设备id失败
    }
    

获取SDK版本

bool BONREE_CALL GetSDKVersionA(char* version,int len);
bool BONREE_CALL GetSDKVersionW(wchar_t* version, int len);
  • 参数说明
参数 描述
version 获取版本信息缓存
len 上述缓存长度
  • 返回值
    获取成功返回 true, 失败返回 false。

  • 示例

    wchar_t version_buf[16] = { 0 };
    bool ret = bonree_sdk::GetSDKVersion(version_buf, 16);
    if (!ret) {
      // 获取SDK版本信息失败
    }
    

三、 自定义信息设置接口

自定义用户信息

BonreeSDK支持设置与用户相关的信息,从而完成性能数据与实际用户相关联的需求场景。

设置用户ID
bool BONREE_CALL SetUserIDA(const char* user_id);
bool BONREE_CALL SetUserIDW(const wchar_t* user_id);
  • 参数说明
参数 描述 限制
user_id 用户ID 长度大于0,小于等于256的字符串且不包含特殊字符(仅支持字母数字及-, _, *, #)。 长度限制为256。
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetUserID(L"123456789");
    if(!ret){
      // 设置用户ID失败
    }
    
设置用户扩展信息
typedef struct ExtraInfoA {
    char* key;
    char* value;
    ExtraInfoA() :key(nullptr), value(nullptr) {}
} EXTRAINFOA, *PEXTRAINFOA;

typedef struct ExtraInfoW {
    wchar_t* key;
    wchar_t* value;
    ExtraInfoW() :key(nullptr), value(nullptr) {}
} EXTRAINFOW, *PEXTRAINFOW;

bool BONREE_CALL SetExtraInfoA(PEXTRAINFOA extra_info, int size);
bool BONREE_CALL SetExtraInfoW(PEXTRAINFOW extra_info, int size);
  • 参数说明
参数 描述 限制
extra_info 拓展信息键值对 key长度限制为256,value长度限制为512
extra_info 数组长度 大于0,小于等于64,否则接口调用失败。
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例
    ```c++
    bonree_sdk::ExtraInfoW extra_info[3];
    extra_info[0].key = L"info1";
    extra_info[0].value = L"info1";

extra_info[1].key = L"info2";
extra_info[1].value = L"info2";

extra_info[2].key = L"info3";
extra_info[2].value = L"info3";

bool ret = bonree_sdk::SetExtraInfo(extra_info, 3);
if (!ret) {
// 设置用户拓展信息失败。
}

#### 设置自定义事件数据
调用接口并传入相应参数,可完成自定义事件数据统计功能。
```c++
bool BONREE_CALL SetCustomEventA(const char* id, const char* name, const char* param = nullptr);
bool BONREE_CALL SetCustomEventW(const wchar_t* id, const wchar_t* name, const wchar_t* param = nullptr);
  • 参数说明
参数 描述 限制
id 自定义事件ID 必传,长度限制为256
name 自定义事件名称 长度限制为256
param 自定义事件参数 长度限制为512
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetCustomEvent(L"custom_event_id", L"custom_name", L"custom_param");
    if (!ret) {
      // 设置自定义事件数据失败
    }
    

设置自定义日志数据

调用接口并传入相应参数,可完成自定义日志数据统计功能。

bool BONREE_CALL SetCustomLogA(const char* info, const char* param = nullptr);
bool BONREE_CALL SetCustomLogW(const wchar_t* info, const wchar_t* param = nullptr);
  • 参数说明
参数 描述 限制
info 自定义日志信息 必传,长度限制为512
param 自定义日志参数 长度限制为10000
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetCustomLog(L"custom_log_info", L"custom_log_param");
    if (!ret) {
      // 设置自定义日志数据失败
    }
    

设置自定义指标事件数据

调用接口并传入相应参数,可完成自定义指标数据统计功能。

bool BONREE_CALL SetCustomMetricA(const char* name, int value, const char* param = nullptr);
bool BONREE_CALL SetCustomMetricW(const wchar_t* name, int value, const wchar_t* param = nullptr);
  • 参数说明
参数 描述 限制
name 自定义指标名称 必传,长度限制为256
value 自定义指标值
param 自定义指标参数 长度限制为512
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetCustomMetric(L"custom_metric_name", 100, L"custom_metric_param");
    if (!ret) {
      // 设置自定义指标数据失败
    }
    

设置自定义崩溃事件

调用接口并传入相应参数,可完成自定义奔溃数据统计功能。

bool BONREE_CALL SetCustomExceptionA(const char* exception_type,const char* causeby,const char* error_dump = nullptr);
bool BONREE_CALL SetCustomExceptionW(const wchar_t* exception_type, const wchar_t* causeby, const wchar_t* error_dump = nullptr);
  • 参数说明
参数 描述 限制
exception_type 异常类型 必传,长度限制为256
causeby 导致崩溃代码 长度限制为512
error_dump 自定义异常参数 长度限制为10000
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetCustomException(L"custom_exception_name", L"main()", L"custom_exception_param");
    if (!ret) {
      // 设置自定义奔溃数据失败
    }
    

设置自定义视图事件

调用接口并传入相应参数,可完成自定义视图数据统计功能。

自定义事件视图开始
bool BONREE_CALL SetCustomPageStartA(const char* view_name,const char* param = nullptr);
bool BONREE_CALL SetCustomPageStartW(const wchar_t* view_name, const wchar_t* param = nullptr);
  • 参数说明
参数 描述 限制
view_name 自定义视图名称 必传,长度限制为256
param 自定义视图参数 长度限制为256
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetCustomPageStart(L"custom_page_name", L"");
    if (!ret) {
      // 设置自定义视图数据失败
    }
    
自定义事件视图结束
bool BONREE_CALL SetCustomPageEndA(const char* view_name, const char* param = nullptr);
bool BONREE_CALL SetCustomPageEndW(const wchar_t* view_name, const wchar_t* param = nullptr);
  • 参数说明
参数 描述 限制
view_name 自定义视图名称 必传,长度限制为256
param 自定义视图参数 长度限制为256

注:view_name需与之前设置的自定义开始视图名称对应。

  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetCustomPageEnd(L"custom_page_name", L"");
    if (!ret) {
      // 设置自定义视图数据失败
    }
    

设置自定方法事件

调用接口并传入相应参数,可完成自定义方法数据统计功能。

设置自定义方法开始
bool BONREE_CALL SetCustomMethodStartA(const char* method_name, const char* param = nullptr);
bool BONREE_CALL SetCustomMethodStartW(const wchar_t* method_name, const wchar_t* param = nullptr);
  • 参数说明
参数 描述
method_name 自定义方法名称
param 自定义方法参数
  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetCustomMethodStart(L"custom_method_name", L"");
    if (!ret) {
      // 设置自定义方法数据失败
    }
    
设置自定义方法结束
bool BONREE_CALL SetCustomMethodEndA(const char* method_name, const char* param = nullptr);
bool BONREE_CALL SetCustomMethodEndW(const wchar_t* method_name, const wchar_t* param = nullptr);
  • 参数说明
参数 描述
method_name 自定义方法名称
param 自定义方法参数

注:method_name需与之前设置的自定义开始方法名称对应。

  • 返回值
    设置成功返回 true, 失败返回 false。

  • 示例

    bool ret = bonree_sdk::SetCustomMethodEnd(L"custom_method_name", L"");
    if (!ret) {
      // 设置自定义方法数据失败
    }
    
设置onlinetrack相关
typedef void (__stdcall *OnlineTrackAuthorizeFunctionPtr)();
BONREE_SDK_API bool BONREE_CALL SetOnlineTrackingAuthorizationCallback(OnlineTrackAuthorizeFunctionPtr call_back_ptr);
BONREE_SDK_API bool BONREE_CALL AuthorizeOnlineTracking(bool authorize);

用户在使用onlinetrack功能之前需要设置一个OnlineTrackAuthorizeFunctionPtr类型的回调方法,在回调方法中进行相关的用户授权操作,例如弹窗提示,在得到用户的确认授权后,调用AuthorizeOnlineTracking方法将授权结果返回给sdk,如果授权失败,sdk将不允许在线调试功能。

  • SetOnlineTrackingAuthorizationCallback参数说明
参数 描述
OnlineTrackAuthorizeFunctionPtr 授权回调方法
  • AuthorizeOnlineTracking参数说明
参数 描述
authorize 授权结果
  • 示例
//用户侧
void __stdcall AuthorizeUI(){
    HWND hwnd = theApp.GetMainWnd()->GetSafeHwnd();
    ::PostMessage(hwnd, WM_QUERY_AUTHORITY, 0, 0);
}

BOOL CDemoDlg::PreTranslateMessage(MSG* pMsg)
{
    // TODO: 在此添加专用代码和/或调用基类
    if (pMsg->message == WM_QUERY_AUTHORITY) {
        int ret = MessageBox(L"是否开启调试模式?", L"询问", MB_YESNO | MB_ICONQUESTION);
        if (ret == IDYES) {
            bonree_sdk::AuthorizeOnlineTracking(1);
        }
        else {
            bonree_sdk::AuthorizeOnlineTracking(0);
        }
    }
    return CDialogEx::PreTranslateMessage(pMsg);
}

//sdk侧
bool ret = bonree_sdk::SetOnlineTrackingAuthorizationCallback(AuthorizeUI);

四、 ini配置文件的参数

[SERVER_ADDR] -- 服务相关配置项

config_addr--config服务地址

1.设置config服务地址,可以在ini配置文件中设置config_addr,读取ini文件中的config_addr,设置config服务地址; 2.设置config服务地址,也可以通过SetConfigAddress()函数设置config服务地址; 3.如果在ini配置文件中设置了config_addr,探针启动先读取ini文件中的config_addr,作为config服务地址;如果客户通过函数设置config服务地址的函数再次设置config服务地址,使用新设置的作为config服务地址。

app_id--应用id

1.设置app_id,可以在ini配置文件中设置app_id,读取ini文件中的app_id,设置app_id; 2.设置app_id,也可以通过StartWithAppID()函数设置app_id; 3.如果在ini配置文件中设置了app_id,探针启动先读取ini文件中的app_id;如果客户通过函数设置app_id的函数再次设置app_id,使用新设置的作为app_id。

[LOG_CONFIG] -- 日志相关配置项

log_level--日志等级

1.日志等级分为:0-trace 1-debug 2-info 3-error 2.默认使用:0-trace 3.trace:所有日志都打印;debug:打印的日志包含debug、info、error;info:打印的日志包含debug、info;error:只打印error日志

file_path--winsdk日志路径

1.如果配置文件中日志路径为空,默认不存日志 2.如果配置文件中有文件名,但是没有文件路径,将文件生成到temp目录下 3.如果配置文件中有文件路径,将日志生成到对应的目录下

  • 示例
[SERVER_ADDR]  
config_addr=https://sdkupload.bonree.com/config
app_id=a9438cf5-71d2-4e02-8955-9eb3e9cb3eae
[LOG_CONFIG]
#log level:0-trace 1-debug 2-info 3-error
log_level=0
#file_path:path to write log,not contain filename,for ex: d:\projects\data
file_path=C:\1\projects\1.log

results matching ""

    No results matching ""