更新时间:2025-06-20 gmt 08:00

常见问题-j9九游会登录

常见问题

  • sdk初始化失败

    sdk初始化失败,graysdk的run和debug日志会打印初始化失败原因,一般原因有如下几种:

    • etcd服务器配置错误(检查conf/graysdk.properties文件中server配置是否正确)。
    • etcd未启动或者网络原因不可用(检查网络以及etcd是否正常)。
    • etcd中不存在此微服务名称的灰度配置。
    • etcd未启用用户名/密码认证方式,但是sdk配置了认证(检查conf/graysdk.properties文件是否配置了username)。
    • jsonrulefilepath没有配置。
  • 灰度规则匹配失败

    调用sdk接口执行灰度规则匹配失败,一般原因有如下几种:

    • 实际传入的参数和值,不满足配置的微服务灰度规则。
    • 灰度开关关闭(检查conf/graysdk.properties文件grayswitch是否为1)。
    • 灰度规则执行异常(检查graysdk的debug日志)。
    • 联系灰度平台开发人员定位。
  • 灰度参数的设置

    消费端需要在cse的invocation设置想要进行灰度的参数,有两种方法:

    • 确定需要进行灰度的参数 ,在后端的接口中使用@requestparam参数来指定。
    • 业务直接在消费端设置参数,例如:contextutils.getinvocationcontext().addcontext("x-is-gray", "1")。

    第一种方式直接在请求流量的url中通过设置参数的值来标识灰度流量,第二种是业务在调用sdk之前改变invocation中参数的值来标识灰度。

  • 后端灰度节点的判断

    后端的节点在自己的microservice.yaml文件中设置参数描述(参照)。

    • 按照版本筛选灰度节点,需要在yaml中的service_description中先定义版本号,然后在管理台上选择按照版本进行灰度,填入定义的版本。
    • 按照自定义参数筛选灰度节点,需要在yaml中的instance_description中先自定义灰度参数,并填入值,接着在管理台选择按照自定义参数进行灰度,填入自定义的参数。

附录

  • sdk错误码

    在调用sdk接口时,出现异常情况时sdk会返回一个grayexception异常,可以通过e.tostring()查看详细的异常说明,通过e.getcode()获取异常错误码,同时通过sdk的debug日志可以看到更详细的异常错误信息。

    表1 sdk错误码

    异常编码

    异常原因

    异常处理方法

    13300

    内部处理错误,一般为配置错误导致。

    查看gray sdk的debug日志,查看error日志,同时联系灰度平台开发人员定位。

    13301

    参数错误,一般为传入sdk的微服务名称为空或者空串。

    1. 检查graysdk.properties文件etcd.servicename配置是否正确。
    2. 检查gray sdk的run日志,查看sdk是否初始化成功。

    13302

    cloudsoa security解密密码失败。

    检查graysdk.properties文件etcd.password是否配置正确。

    13303

    操作etcd失败(读取etcd配置触发异常)。

    1. 检查graysdk.properties文件etcd.server配置是否正确。
    2. 检查etcd服务器是否工作正常。
  • 性能统计日志
    日志字段默认采用“|” 分隔,一条日志一行,采用“\n”结尾,默认1s(可配置)打印一条。
    表2 节点级日志

    字段名称

    必选(m)/可选(o)

    字段说明

    时间

    m

    yyyy-mm-dd<1sp>hh:mm:ss[.sss]

    请求次数

    m

    周期值,每个周期清零,重新计数。

    未进行匹配次数

    m

    未被路由到灰度版本的请求次数。一般为灰度完成、灰度暂停、未开启灰度等。

    周期值,每个周期清零,重新计数。

    匹配成功次数

    m

    周期值,每个周期清零,重新计数。

    匹配失败次数

    m

    周期值,每个周期清零,重新计数。

    匹配异常次数

    m

    周期值,每个周期清零,重新计数。

    匹配超时次数

    m

    周期值,每个周期清零,重新计数。

    请求平均时延

    m

    周期内请求的平均时延,单位:微秒。

    请求最大时延

    m

    周期内请求的最大时延,单位:微秒。

    请求最小时延

    m

    周期内请求的最小时延,单位:微秒。

    表3 服务级日志

    字段名称

    必选(m)/可选(o)

    字段说明

    时间

    m

    yyyy-mm-dd<1sp>hh:mm:ss[.sss]

    微服务名

    m

    被调用的微服务名称。

    灰度服务名

    m

    为被调用的微服务名称,或为被调用的微服务的映射服务名称。

    请求次数

    m

    周期值,每个周期清零,重新计数。

    未进行匹配次数

    m

    未被路由到灰度版本的请求次数。一般为灰度完成、灰度暂停、未开启灰度等。

    周期值,每个周期清零,重新计数。

    匹配成功次数

    m

    周期值,每个周期清零,重新计数。

    匹配失败次数

    m

    周期值,每个周期清零,重新计数。

    匹配异常次数

    m

    周期值,每个周期清零,重新计数。

    匹配超时次数

    m

    周期值,每个周期清零,重新计数。

    请求平均时延

    m

    周期内请求的平均时延,单位:微秒。

    请求最大时延

    m

    周期内请求的最大时延,单位:微秒。

    请求最小时延

    m

    周期内请求的最小时延,单位:微秒。

  • 告警日志

    日志字段默认采用“|” 分隔,一条日志一行,采用“\n”结尾。

    字段名称

    必选(m)/可选(o)

    字段说明

    时间

    m

    yyyy-mm-dd<1sp>hh:mm:ss[.sss]

    告警id

    m

    graysdk000000001-4

    告警名称

    m

    graysdk000000001:gray servers all down alarm

    graysdk000000002:etcd connect error

    graysdk000000003:gray rule execute exception

    graysdk000000004:gray rule execute timeout

    本机ip

    m

    本机ip

    告警类别

    m

    firing:告警发生

    resolved:告警解除

    详细信息

    m

    告警详细信息

    告警方式

    m

    自动告警

    开始时间

    m

    firing时,为告警发生时间,resolved时为0。

    结束时间

    m

    resolved时,为告警解除时间,firing时为0。

    service.json文件

    {
      "enablegraymapping": "1",
      "services": [{
         "name": "demoa",
         "wgpservicename": "demob" 
      }, 
     { 
        "name": "democ", 
        "wgpservicename": "demob" }]
     } 

    nuwa配置项

    nuwa:   
      wgp:     
        grayswitch: 1     
        jsonrulefilepath: /opt/huawei/data/     
        servicename: xxxxxx(业务自己配置)     
        sdkserviceurl: xxxxxxx    
        enablecsegrayfilter: true     
        enablecommongrayfilter: false     
        reporturl: http://10.28.0.181:18080/dispatchproxy/v1

相关文档

网站地图