在大型机上打开遥测

Opentelemetry on Mainframe

我有一个 Java 应用程序,它在 Linux 上运行并调用大型机 (CICS)。我的目标是通过唯一的 GUID 来跟踪我的事务在各种系统中所采用的路径,并收集跟踪并在 APM 解决方案中显示。我希望成为 APM 供应商不可知论者。

  1. 我不确定开放遥测如何应用于我在大型机上的用例(APIS、SDK、导出器、W3C 上下文传递)。
  2. 我是否需要为我使用专有机制收集的跟踪实施导出器到 opentelemetry-collector,以便它保持与 APM 供应商无关?

基本上我正在寻找在大型机 APM 供应商不可知的方式上实施跟踪的方法。

这取决于你对什么感兴趣,真的。

  • 是否要捕获特定的时序信息,或将属性添加到仅在大型机进程中可用的 span?在那种情况下,是的,您需要从某个地方获取该数据,并且为 CICS 编写 OpenTelemetry SDK 实现可能会很棘手。但是,您可能不必这样做 - 如果您关心的信息可以来自响应中的侧通道,您可以将该信息添加到 Java 服务中的调用跨度,因为它会处理响应。

  • 如果主机服务是你请求的终点(即,请求进入主机后没有其他有趣的操作发生)那么你可能不需要将上下文传播到它,并且可以将请求包装到一个跨度中的大型机,以表示在那里完成的工作、这些调用的结果等。

  • 如果大型机不是请求的终点,请考虑可以放置在来自大型机的incoming/outgoing请求之间的跟踪代理.该代理可以保存跟踪上下文,并将其传播到下一个服务,您只需要它拦截 incoming/outgoing 请求并进行查找 table 以将正确的跟踪上下文与正确的请求相关联.

希望对您有所帮助!