详情页标题前

阿里云日志服务SLS通过Unity Plugin接入数据-云淘科技

详情页1

本文介绍如何通过Unity Plugin将Unity平台的移动端游戏App的崩溃数据、应用数据接入到日志服务移动运维监控中。移动运维监控用于实时监控游戏崩溃、ANR等问题,并且支持智能分析,帮助您低成本、高效率地发现App中的各类隐患。

前提条件

已创建移动运维监控应用。具体操作,请参见添加应用。

步骤一:集成SDK

  1. 下载最新版本Unity Plugin。

  2. 双击.unitypackge文件,将Plugin相关文件导入到您的Unity工程中。

    .unitypackage文件中的目录说明如下表所示。

    文件

    说明

    Assets/Plugins/Unity4SLS

    Unity插件脚本。

    Assets/Plugins/Unity4SLS/Android/libs

    Android平台依赖的SDK和NDK。

    Assets/Plugins/Unity4SLS/iOS/

    iOS平台依赖的framework和静态库。

    Assets/Scenes/

    示例Scenes。实际集成时,可以删除。

    Assets/Scripts/

    示例Scripts。实际集成时,可以删除。

步骤二:SDK初始化

选择第一个或主场景(Scene),在任意脚本文件(建议选择较早加载的脚本)中调用如下代码进行初始化。

重要

上报日志到日志服务时需使用阿里云账号或RAM用户的AccessKey,用于鉴权及防篡改。为避免将AccessKey保存在移动端应用中,造成安全风险,推荐您使用移动端日志直传服务配置AccessKey。具体操作,请参见采集-搭建移动端日志直传服务。

// 初始化凭证信息。
Credentials credentials = new Credentials();

#if UNITY_IPHONE || UNITY_IOS
credentials.instanceId = "移动运维监控应用(iOS)ID";
credentials.endpoint = "移动运维监控应用(iOS)所绑定的Project的访问域名";
credentials.project = "移动运维监控应用(iOS)所绑定的Project";
#elif UNITY_ANDROID
credentials.instanceId = "移动运维监控应用(Android)ID";
credentials.endpoint = "移动运维监控应用(Android)所绑定的Project的访问域名";
credentials.project = "移动运维监控应用(Android)所绑定的Project";
#endif

private void requestAccessKey() {
    // 推荐您先使用移动端日志直传服务配置AccessKey信息。
    // ...

    // 获取AccessKey信息后,完成更新。
    updateAccessKey(accessKeyId, accessKeySecret, new-securityToken);
}

// 更新AccessKey信息。
private void updateAccessKey(String accessKeyId, String accessKeySecret, String securityToken) {
    // 通过STS服务获取的AccessKey包含securitToken,需要使用以下方式更新。
    Credentials credentials = new Credentials();
    credentials.accessKeyId = accessKeyID;
    credentials.accessKeySecret = accessKeySecret;
    credentials.securityToken = secretToken;

    Unity4SLS.SetCredentials(credentials);
}
// 初始化Unity Plugin。
Unity4SLS.Initialize(credentials);

参数

示例

说明

credentials.instanceId

sls-****d60f

您在日志服务移动运维监控平台上所添加的应用ID。更多信息,请参见获取应用ID。

credentials.endpoint

https://cn-hangzhou.log.aliyuncs.com

日志服务Project的访问域名,此处必须添加https://前缀。如何获取,请参见服务入口。

重要

只支持公网服务入口。

credentials.project

sls-ayasls-demo

您在日志服务移动运维监控平台上添加应用时所绑定的日志服务Project。更多信息,请参见添加应用。

API列表

API名称

功能描述

SetLogLevel

设置Debug日志等级,可选值:VERBOSE、DEBUG、INFO、WARN、ERROR。

当插件出现异常时,您可以通过调整日志等级打印更多的日志,进行排查。

SetCredentials

更新凭证信息。

您可以通过该接口更新Credentials中的字段。

RegisterCredentialsCallback

注册凭证回调接口。

当数据发送成功或凭证无效、过期时,系统将回调该接口。您可以通过注册该接口进行凭证信息的动态更新。

SetUserInfo

设置用户信息,支持动态更新。

设置后,所有上报的数据都会携带该信息。

SetExtra

设置扩展信息。

您可以通过该接口设置业务等各种定制信息。设置后,所有上报的数据都会携带该信息。

RemoveExtra

移除扩展信息。

ClearExtra

清空所有扩展信息。

ReportCustomLog

上报自定义日志。

您可以通过该接口上报任何的自定义日志。

ReportError

上报自定义错误日志。

您可以通过该接口上报自定义异常日志,例如捕获到的脚本异常信息等。

ReportLuaError

上报Lua脚本错误日志。

ReportCSharpError

上报C#错误日志。

常见问题

1. 如何通过STS方式获取访问凭证信息,并动态更新到SDK?

通过STS方式获取访问凭证信息,可以有效避免AccessKey固定写在代码中,从而避免造成数据泄露。具体操作,请参见采集-搭建移动端日志直传服务。

通过STS方式获取到访问凭证信息后,还需要把该信息更新到SDK,建议通过如下方式。

// 调用凭证回调函数,该函数会在数据写入、发送状态发生变化时,凭证无效、过期时被回调。
// feature: 插件名称,一般无需关注。
// result: 回调结果。
public void credentialsCallback(string feature, string result)
{
    // 开发阶段,建议打印日志,便于排查问题。
    Debug.Log("[Unity4SLS]  - credentialsCallback. feature: " + feature + ", result: " +  result);

    if ("LOG_PRODUCER_SEND_UNAUTHORIZED" == result || 
        "LOG_PRODUCER_PARAMETERS_INVALID" == result) {
    	  // LOG_PRODUCER_PARAMETERS_INVALID: 初始化凭证信息不合法。
        // LOG_PRODUCER_SEND_UNAUTHORIZED: 访问凭证过期或无效。

         // 当出现上面两个错误码时,建议通过STS重新获取访问凭证信息,并按照下面的方式进行更新。
         // 1. 通过STS获取访问凭证。
         // 2. 更新SDK的凭证信息。
        Credentials credentials = new Credentials();
        credentials.accessKeyId = accessKeyId;
        credentials.accessKeySecret = accessKeySecret;
        credentials.securityToken = securityToken;
        Unity4SLS.SetCredentials(credentials);
    }

}

// 调用下面方法注册SDK的凭证回调接口。
public void setCredentialsCallback()
{
    callback_delegate callback = new callback_delegate(credentialsCallback);
    Unity4SLS.RegisterCredentialsCallback(callback);
}

2. 如何采集C#、Lua等脚本异常信息?

目前,日志服务SDK没有内置C#、Lua等脚本异常的自动采集,可参考其他产品的实现。采集到异常数据后,通过相关API进行上报,示例如下:

  • 上报C#异常信息

    Unity4SLS.ReportCSharpError("C# message", "C# stacktrace");
  • 上报Lua异常信息

    Unity4SLS.ReportLuaError("lua message", "lua stacktrace");
  • 上报其他类型的异常信息

    Unity4SLS.ReportError("stacktrace");
    Unity4SLS.ReportError("custom type, 根据实际业务填写", "stacktrace");
    Unity4SLS.ReportError("custom type, 根据实际业务填写", "message", "stacktrace");

3. 如何上报业务自定义的日志信息?

SDK支持上报业务定义日志信息,包含业务数据、日志信息等,示例如下:

Unity4SLS.ReportCustomLog("custom type, 根据实际业务填写", "custom log 1");

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/160628.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 腾讯云TDSQL-C MySQL版hint 语句控制

    TDSQL-C MySQL 版支持通过调整相关参数开启或关闭并行查询功能,通过控制台可实现对整个 SQL 语句开启或关闭并行查询能力、设置执行条件参数,也支持使用 hint 语句对单条 SQL 语句进行指定并行执行方式。说明hint 语句可以指定 SQL 语句是否执行,并对指定 SQL 语句可以应用 session 级参数。hint 语句同时支持查询指定的并…

    腾讯云 2023年12月9日
  • 腾讯云对象存储审核结果反馈

    简介 本文档提供关于审核结果反馈的相关的 API 概览以及 SDK 示例代码。 API 操作描述 图片审核结果反馈 您可通过本接口反馈与预期不符的审核结果,例如色情图片被审核判定为正常或正常图片被判定为色情时可通过该接口直接反馈。 文本审核结果反馈 您可通过本接口反馈与预期不符的审核结果,例如色情文本被审核判定为正常或正常文本被判定为色情时可通过该接…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云内容分发网络CDNQUIC

    功能介绍 QUIC (Quick UDP Internet Connections) 是一个通用的网络协议,能够保障网络安全性,同时减少传输和连接时的延时,避免网络拥塞。您可开启 QUIC 协议,保障客户端访问 CDN 节点时数据传输的安全性,提升访问效率。当前默认支持 h3-29、h3-Q050、h3-Q046、h3-Q043、Q046、Q043 版本。 …

    2023年12月9日
  • 腾讯云对象存储关闭AI内容识别服务

    简介 本文档提供关于关闭AI内容识别服务的相关 API 概览以及 SDK 示例代码。 API 操作描述 关闭AI内容识别服务 本接口用于关闭AI 内容识别(异步)服务并删除队列。 SDK API 参考 SDK 所有接口的具体参数与方法说明,请参考 SDK API。 关闭AI内容识别服务 功能说明 本接口用于关闭AI 内容识别(异步)服务并删除队列。说明:…

    腾讯云 2023年12月9日
  • 腾讯云高性能应用服务产品优势

    简单易用 通过简化计算、网络和存储等基础设施的配置流程,大幅降低了云服务操作和管理的复杂度。 应用环境快速部署 支持多种 AI 环境快速部署,如 ChatGLM-6B、StableDiffusion 等,使用户可专注业务及应用场景创新。 高灵活性 支持用户登录实例,对 AI 模型及实例环境进行灵活配置。可进行内部开发、业务测试,或对外提供业务服务。 多种登录…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。