如何在java中更改Jaeger API的主机和端口

2024-03-26

我们选择使用 Jaeger API 来进行跟踪。在那里,我们使用 docker 在本地设置了 Jaeger,如下所述。

sudo docker run -d --name jaeger \
  -p 5775:5775/udp \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 14268:14268 \
  jaegertracing/all-in-one:latest

In the ServletContextListener,我们创建了如下所示的新配置。

@WebListener
public class TracingContextListener implements ServletContextListener {

      @Inject
      private io.opentracing.Tracer tracer;

        public void contextInitialized(ServletContextEvent servletContextEvent) {
             GlobalTracer.register(tracer);
        }

        public void contextDestroyed(ServletContextEvent servletContextEvent) {

        }

        @Produces
        @Singleton
        public static io.opentracing.Tracer jaegerTracer() {
          return new Configuration("MyApplication", new Configuration.SamplerConfiguration(
              ProbabilisticSampler.TYPE, 1),
              new Configuration.ReporterConfiguration())
              .getTracer();
        }
}

现在效果很好,我可以看到跟踪http://本地主机:16686 http://localhost:16686

问题 :我想在外部环境中设置 Jager,并从另一个应用程序服务器进行连接(应用程序服务器在主机模式下在 Wildfly 10 docker 上运行)。将来,Jaeger 实例可能会被多个服务器实例用于跟踪。

在查看了下面提到的来源和各种参考资料之后,我尝试了以下选项。但它始终连接到本地。我也尝试了各种端口,如 5775、6831、6832,但结果是相同的。

  return new Configuration("MyApplication", new Configuration.SamplerConfiguration(
          ProbabilisticSampler.TYPE, 1, "server2.mycompany.com:5778"),
          new Configuration.ReporterConfiguration())
          .getTracer();

此外,我还尝试将 JAEGER_ENDPOINT 和 JAEGER_SAMPLER_MANAGER_HOST_PORT 设置为环境变量。但失败了。

In one 参考 https://www.jaegertracing.io/docs/deployment/我找到“Jaeger 客户端库希望 jaeger-agent 进程在每个主机上本地运行......”.

这是否意味着我无法以 cebtrelized 方式使用它,并且我需要在每个应用程序服务器实例中设置 Jaeger?不然怎么办呢?


BINGO!

我们需要如下设置 ReporterConfigurations。以前我的都是默认的,这就是为什么它总是连接到本地。

return new Configuration("MyApplication", 
        new Configuration.SamplerConfiguration(ProbabilisticSampler.TYPE, 1, "server2.mycompany.com:5778"),
        new Configuration.ReporterConfiguration(false, "server2.mycompany.com",6831,1000,100))
        .getTracer();

更好的是,您可以从环境创建配置,如下所示,提供如下环境变量

return Configuration.fromEnv().getTracer();

您可以在运行 docker 容器时提供此信息

-e JAVA_OPTS=”

 -DJAEGER_SAMPLER_TYPE=probabilistic
 -DJAEGER_SAMPLER_PARAM=1
 -DJAEGER_SAMPLER_MANAGER_HOST_PORT=server2.mycompany.com:5778
 -DJAEGER_REPORTER_LOG_SPANS=false
 -DJAEGER_AGENT_HOST=server2.mycompany.com
 -DJAEGER_AGENT_PORT=6831
 -DJAEGER_REPORTER_FLUSH_INTERVAL=1000
 -DJAEGER_REPORTER_MAX_QUEUE_SIZE=100
 -DJAEGER_SERVICE_NAME=MyApplicationNameX 

" ....

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在java中更改Jaeger API的主机和端口 的相关文章

  • 使用 Intellij Idea 和 gradle 在应用程序引擎上调试 localhost

    我正在使用 IntelliJ 社区添加并使用 Gradle 构建应用程序引擎标准环境应用程序 在迁移到 IntelliJ 和端点框架之前 我使用的是 Android Studio 我无法调试我的本地主机 我添加了 jvmFlags 如下所述
  • 按下按钮并在java中的新窗口中打开文件

    我创建了一个 JFrame 并放置了一个文本字段和按钮 在文本字段中我放置了从文本文件读取的名称 我知道我想单击按钮并打开一个已知窗口 我想在其中放置名称 其他信息来自同一个文件 这是我的代码 这是我的主框架 package Fronten
  • Netbeans 8.1 Gnome 3 GTK+ UI 字体和选项卡高度

    我刚刚在运行 GNOME 3 桌面的 Ubuntu 16 04 上安装了 NetBeans 8 1 如果可能的话 我想继续使用 IDE 的 GTK 外观和感觉 但 UI 上的字体 尤其是选项卡中的字体 太小且重叠 我尝试添加 fontsiz
  • 有没有创建 Cron 表达式的 Java 代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要一个 Java 代码来根据用户输入创建一个 cron 表达式 用户输入是时间 频率和执行次数 只需从评论中添加 自己创建 即可
  • TreeMap 删除所有大于某个键的键

    在项目中 我需要删除键值大于某个键的所有对象 键类型为Date 如果重要的话 据我所知TreeMapJava中实现的是红黑树 它是一种二叉搜索树 所以我应该得到O n 删除子树时 但除了制作尾部视图并一一删除之外 我找不到任何方法可以做到这
  • 如何在 Java 中向时间戳添加/减去时区偏移量?

    我正在使用 JDK 8 并且玩过ZonedDateTime and Timestamp很多 但我仍然无法解决我面临的问题 假设我得到了格式化的Timestamp在格林威治标准时间 UTC 我的服务器位于某处 假设它设置为Asia Calcu
  • Jframe 内有 2 个 Jdialogs 的 setModal 问题

    当我设置第一个选项时 我遇到了问题JDialog模态 第二个非模态 这是我正在尝试实现的功能 单击 测试对话框 按钮 一个JDialog有名字自定义对话框 主要的将会打开 如果单击 是 选项自定义对话框主 其他JDialog named 自
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 如何在单个查询中搜索 RealmObject 的 RealmList 字段

    假设我有一堂课 public class Company extends RealmObject private String companyId private RealmList
  • 将非 Android 项目添加到 Android 项目

    我在 Eclipse 中有三个项目 Base Server 和 AndroidClient Base和Server是Java 1 7项目 而AndroidClient显然是一个android项目 基础项目具有在服务器和 Android 客户
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • Java Applet 中的 Apache FOP - 未找到数据的 ImagePreloader

    我正在研究成熟商业产品中的一个问题 简而言之 我们使用 Apache POI 库的一部分来读取 Word DOC 或 DOCX 文件 并将其转换为 XSL FO 以便我们可以进行标记替换 然后 我们使用嵌入到 Java 程序中的 FOP 将
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • Android S8+ 警告消息“不支持当前的显示尺寸设置,可能会出现意外行为”

    我在 Samsung S8 Android 7 中收到此警告消息 APP NAME 不支持当前的显示尺寸设置 可能会 行为出乎意料 它意味着什么以及如何删除它 谢谢 通过添加解决supports screens 机器人 xlargeScre
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应
  • Java RMI - 客户端超时

    我正在使用 Java RMI 构建分布式系统 它必须支持服务器丢失 如果我的客户端使用 RMI 连接到服务器 如果该服务器出现故障 例如电缆问题 我的客户端应该会收到异常 以便它可以连接到其他服务器 但是当服务器出现故障时 我的客户端什么也
  • Java 11 - 将 Spring @PostConstruct 替换为 afterPropertiesSet 或使用 initMethod

    我正在使用 spring 应用程序 有时会使用 PostConstruct用于代码和测试中的设置 看来注释将被排除在外Java 11 https www baeldung com spring postconstruct predestro

随机推荐

  • IIS Express 上的基本身份验证

    我已经搜索了一段时间但似乎找不到答案 有多种方法可以禁用 启用匿名和 Windows 身份验证 有谁知道如何在 Visual Studio 2013 中的 IIS Express 8 0 上启用基本身份验证 Update Applicati
  • 将 JSON 对象反序列化为 .NET HashSet

    以下是原始 JSON 数据的示例 Standards 1 1 我想将数据反序列化为 public class Model public HashSet
  • java.lang.ClassCastException:java.io.ObjectStreamClass无法转换为java.lang.String

    我在 tomcat 上运行 Web 应用程序时遇到以下堆栈跟踪错误 无法找到此异常的根本原因 Eclipse 32 bit Luna Release 4 4 0 Tomcat 32 bit 8 0 30 jdk1 8 0 66 Jan 01
  • 为什么只有打开 Fiddler 才能在 ASP.NET 中调用 API?

    我在索引控制器中调用 API 就像这样 一切正常 只要我打开 Fiddler public ActionResult Index Base model null var client new HttpClient var task clie
  • 仅增加特定网页上的请求超时

    是否可以仅增加一个特定网页的请求超时 我正在开发 ASP Net 4 0 我需要一个特定页面具有更长的请求超时 因为它负责启动一个长时间运行的进程 谢谢 使用Web config
  • 如何让多个div水平滚动?

    我希望我的图块位于同一行 并且如果图块超出容器的宽度 容器可以水平滚动 看下面的演示 图块被添加到下一行 所以我必须垂直滚动才能访问它们 如何使水平滚动起作用 并使所有图块保持在同一行 container width 600px max h
  • 停止 Outlook、Gmail 等中的自动超链接

    我的网络应用程序向用户发送电子邮件 该电子邮件包含一个用于进一步用户操作的链接 我们的安全标准要求电子邮件中的链接不可点击 但是 电子邮件客户端会识别电子邮件中的 https 并自动链接 URL 关于如何阻止电子邮件客户端自动链接的任何想法
  • (Android) 在内部存储中查找路径 /Android

    Android 中有没有返回内部存储上的数据路径的方法 我有 2 部 Android 智能手机 三星 s2 和 s7 edge 我在其中安装了应用程序 我想获取位于此路径中的 sqliteDB Android data applicatio
  • 我应该使用堆栈进行长期变量存储吗?

    根据 汇编语言循序渐进 第3版 中的 Storage for Short Term 第8章 堆栈应该被视为短期存放东西的地方 存储在堆栈中的项目没有名称 通常必须按照放入的相反顺序从堆栈中取出 后进先出 记住 后进先出 然而 据我所知 C
  • Java libjava.so 文件错误

    自从我尝试在安装了 java5 jre 的服务器上运行 java 命令以来已经一天了 问题是我总是得到 错误 找不到 libjava so 错误 找不到 Java 2 运行时环境 即使我从安装目录 usr lib java1 5 jre b
  • “NULL”列 (0,3) 的数字溢出

    我有一个表 Oracle 12 1 0 2 0 当我总结我得到的值时 ORA 01426 numeric overflow 01426 00000 numeric overflow Cause Evaluation of an value
  • 使用 vala 将 uris 插入 Gtk.Clipboard

    我目前正在尝试为我的应用程序实现复制和粘贴 问题是我只能根据文档将纯文本或图像复制到剪贴板Gtk Clipboard https valadoc org gtk 3 0 Gtk Clipboard html https valadoc or
  • 如何使用Go Sdk for docker运行docker run?

    我想运行下面的 docker 命令docker run ajaycs14 hello world p 1527 80 d 如何实现上述使用Docker Go SDK https godoc org github com moby moby
  • 填充缺失的数据 pandas

    我如何填写此日期框中缺失的数据 没有销售的日子里缺少值 如何填写在特定商店和日期售出 0 件商品的天数的缺失值 Input Dates Store Item Sales 2017 01 01 Chicago Apple 10 2017 01
  • 如何将 GitLab CI 文件变量传递给 Dockerfile 和 docker 容器?

    GitLab CI 允许向项目添加自定义变量 它允许使用类型的秘密变量file我指定的键是变量名称 值是文件的内容 例如证书的内容 然后在管道执行期间 内容将被保存为临时文件 调用变量名称将返回创建文件的路径 最终我需要将此文件复制到构建项
  • 如何避免 RealmSwift 中的迁移

    我只是使用 Realm 测试一些配置 因此我在领域类中添加和删除了变量和列表 因为我只是在测试 所以我不想经历迁移过程 我也没有任何会影响连续性的数据 有什么方法可以解决 Realm 自动请求迁移的问题吗 无论架构发生变化 有两种方法可以跳
  • 关于使用 flutter 在 Android 上投放 Facebook 应用安装广告的branch.io 归属问题?

    我们有应用程序安装归因 适用于 iOS 和 Android 上的有机链接 使用flutter branch sdk https pub dev packages flutter branch sdk 但是 对于 Facebook 应用安装广
  • 为什么我收到 Http/1.1 400 Bad request?

    这是我的代码片段 我正在尝试使用 HTTPOST 登录该网站 我不断收到 400 Bad Request 我尝试了各种组合 我尝试将用户名 密码作为标头而不是 NameValuePair 传递 但结果相同 我有什么遗漏的吗 HttpClie
  • JavaScript:2011 年我应该担心内存泄漏吗?

    JavaScript 中的内存泄漏这个话题并不经常被提及 然而 我偶然发现本文 http www ibm com developerworks web library wa memleak 写于 2007 年 作者指出 Internet E
  • 如何在java中更改Jaeger API的主机和端口

    我们选择使用 Jaeger API 来进行跟踪 在那里 我们使用 docker 在本地设置了 Jaeger 如下所述 sudo docker run d name jaeger p 5775 5775 udp p 6831 6831 udp