当前位置: 首页 > 知识库问答 >
问题:

spring cloud侦探:将数据从远程系统导出到本地Zipkin

邹祺然
2023-03-14

在我的spring boot应用程序中,我使用spring-cloud-starter-sleuth(版本hoxton.sr10)进行跟踪。它(仍然)是一个单片应用程序,因此我广泛使用@newspan注释来创建新的跨度。

在我的开发环境中,我还使用了spring-cloud-starter-zipkin,这很管用。

但在我们客户的服务器上,我没有访问任何Zipkin服务器的权限,也不允许安装一台。是否有可能保存spring发送到Zipkin的数据,并将其导入到我的本地Zipkin服务器?

解决方案多亏了Marcin的灵感:

@Configuration
@ConditionalOnProperty(name = "custom.property", havingValue = "true")
public class SleuthConfiguration {
    @Bean("zipkinSender")
    Sender restTemplateSender() {
        return new Sender() {
           public Encoding encoding() { return Encoding.JSON; }
           public int messageMaxBytes() { return Integer.MAX_VALUE; }
           public int messageSizeInBytes(List<byte[]> list) { return Integer.MAX_VALUE; }

           @Override
           public Call<Void> sendSpans(List<byte[]> list) {
              String result = convertByteArrayToList(list);
              saveToFile(result);
              return new Call.Base<Void>() {...};
           }
        };
     }
}

实现自己的ConvertByteArrayToListSaveToFile,因为我的解决方案依赖于自定义库。

共有1个答案

岳谦
2023-03-14

您可以创建自己的spanHandlerbean,它接受finishedspan,将其转换为JSON,并将其存储在驱动器的某个位置。然后,您只需对jsons进行迭代,并将它们上传到Zipkin服务器

 类似资料:
  • 有人知道如何将数据从GraphenDB导入本地数据库吗?从graphendb.com导出的是一个包含大量文件的zip文件。我不确定如何将它们导入到neo4j的本地实例中。以下是zip文件夹中的一些内容:

  • 问题内容: Borderline ServerFault问题,但是我正在 编程 一些shell脚本,所以我先在这里尝试:) 大多数* nixes都有一个命令,使您可以将输出通过管道传输/重定向到本地剪贴板/粘贴板,并从中进行检索。在OS X上,这些命令是 无论如何,在通过SSH连接到另一台服务器时是否可以复制此功能?那是, 我正在使用计算机A。 我打开一个终端窗口 我通过SSH连接到计算机B 我在

  • 我用Ionic 2(2.0.0-beta.10)向外面的一个404站点查询: var url='https//api。我的网站。fr/示例; 把这个还给我。http。获取(url)。地图(res)= chrome工具中的响应: 加载资源失败:服务器响应状态为404(未找到)url:"http://localhost:8100/https//api.mysite.fr/example" 如何不将本地

  • 我有一个独立的H2服务器,正在收集数据。为了进行测试,我希望将数据从服务器中提取到CSV文件中。有什么工具吗?

  • 本文向大家介绍linux下使用ssh远程执行命令批量导出数据库到本地,包括了linux下使用ssh远程执行命令批量导出数据库到本地的使用技巧和注意事项,需要的朋友参考一下 前天正在跟前端的同事调试功能。服务器开好,模拟的玩家登录好,就在倒计时。这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据。好吧,我看了一下时间,11:47。心想,跟前端调试完

  • 我有一个mapreduce代码在我的本地计算机上运行良好。然后,当我在远程服务器上运行它时,我会得到以下执行选项 在我的IntelliJ集成开发环境中,我有一个外部库avro-mapred-1.7.7-hadoop2。jar,我从中构建了工件。当我解压缩工件的jar时,我正确地找到了,并且在组织中正确地找到了AvroKeyInputFormat。阿帕奇。阿夫罗。mapreduce软件包。那么我在这