美文网首页
Skywalking 8 源码编译 IDEA 运行问题

Skywalking 8 源码编译 IDEA 运行问题

作者: guhao | 来源:发表于2020-05-24 01:05 被阅读0次

    源码编译

    ./mvnw clean package -DskipTests
    

    以上命令可以完成源码编译,中间过程如遇npm,maven等问题百度很快可以解决

    IDEA 运行

    OAPServerStartUp.java main() 函数运行启动 OAPServer

    skywalking-ui 目录运行 npm run serve 启动前台服务,访问 http://localhost:8081

    安装 agent 等可参考官网或者其他博文,不再赘述

    问题场景

    源码运行后发现 trace 和 metics 数据无法上报,OAPServer 出现错误日志,代码位置: ElasticSearchClient.java 类中 log.warn("Bulk [{}] executed with failures", executionId);

    从错误日志上无法知道原因,因为没有打印错误详细信息,调整代码:log.warn("Bulk [{}] executed with failures:[{}]", executionId, response.buildFailureMessage());

    调整后详细信息出现,大意是字符串无法格式化成整型,查询日志中相关表 serviceId 为整型,但是提交的数据确实字符串,有些诧异,虽然是SNAPSHOT版,但也不应该如此,跟踪代码发现原来 serviceId 的生成规则变了,由原来的 inventory 表的主键改为了根据服务名称和节点类型生成,生成规则如下:

    /**
     * @return encoded service id
     */
    public static String buildId(String name, NodeType type) {
        return buildId(name, type.equals(NodeType.Normal));
    }
    
    public static String buildId(String name, boolean isNormal) {
        return encode(name) + Const.SERVICE_ID_CONNECTOR + BooleanUtils.booleanToValue(isNormal);
    }
    
    /**
     * @param text normal literal string
     * @return Base74 encoded UTF-8 string
     */
    private static String encode(String text) {
       return new String(Base64.getEncoder().encode(text.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8);
    }
    

    进一步推测,可能与 ES 中索引映射关系有关,毕竟之前这个 ES 跑过 Skywalking6 ,删除索引后重新运行创建索引依然是还是 Integer 类型。联系前面对 Skywalking 的了解,Skywalking 使用 ES 模版创建索引,规则是模版如果存在不再新建模版,到这里真相水落石出,Skywalking 8 数据结构发生了变化,我依然使用原来的 ES,删除模版后重新启动,一切安好,并且看到了新版的一些功能提升。

    PS :另外还有一个简单的办法可以避免这个问题,并且让多个版本跑在一个 ES 中,OAPServer application.yml 配置 namespace,位置如下:

    storage:
      selector: ${SW_STORAGE:elasticsearch}
      elasticsearch:
        nameSpace: ${SW_NAMESPACE:"sw8"}
    

    强烈推荐使用,方便 ES 索引和模版管理,删除索引时你就知道有个 namespace 有多酸爽。

    相关文章

      网友评论

          本文标题:Skywalking 8 源码编译 IDEA 运行问题

          本文链接:https://www.haomeiwen.com/subject/kinrahtx.html