w3c - 大型机上的 Opentelemetry
问题描述
我有一个在 Linux 上运行并调用 Mainframe (CICS) 的 Java 应用程序。我的目标是传递唯一的 GUID 来跟踪我的事务在各种系统中所采用的路径,并收集跟踪并在 APM 解决方案中显示。我希望成为 APM 供应商不可知论者。
- 我不确定开放遥测如何应用于我在大型机上的用例(APIS、SDK、导出器、W3C 上下文传递)。
- 我是否需要为我使用专有机制收集的跟踪信息实现一个导出器到 opentelemetry-collector 以使其与 APM 供应商无关?
基本上,我正在寻找在 Mainframe APM 供应商不可知的方式上实现跟踪的方法。
解决方案
这取决于你对什么感兴趣,真的。
您是否要捕获特定的时间信息,或向仅在大型机进程中可用的 span 添加属性?在这种情况下,是的,您需要从某个地方获取该数据,并且为 CICS 编写 OpenTelemetry SDK 实现可能会很棘手。但是,您可能不必这样做 - 如果您关心的信息可以来自响应中的旁道,您可以在处理响应时将该信息添加到 Java 服务中的调用范围。
如果大型机服务是您的请求的终点(即,在请求进入大型机后没有其他有趣的操作发生),那么您可能不需要将上下文传播到其中,只需将请求包装到大型机中span 表示在那里完成的工作、这些调用的结果等。
如果大型机不是您的请求的终点,请考虑在来自大型机的传入/传出请求之间放置一个跟踪代理。该代理可以保存跟踪上下文,并将其传播到下一个服务,您只需要它来拦截传入/传出请求并有一个查找表来将正确的跟踪上下文与正确的请求相关联。
希望这会有所帮助!
推荐阅读
- c++ - 治疗文件中具有动态数组的 C++ 嵌套结构
- python - Python多线程程序崩溃而没有错误
- c++ - What's the generic & efficient trimming algorithm for Qt & std::string?
- java - 杰克逊的“Visibility.Any”表演
- html - Extract value from HTML Source
- go - HTTP Wrapper GOLANG 和 ECHO FRAMEWORK
- performance - Nifi的性能关键因素是什么?
- c++ - boose wait_for_any with asio io-service...我怎样才能返回适合wait_for_any的未来?
- wordpress - 故障排除后 SSL 证书出现问题
- java - 获取对 java LinkedList 中最近添加的节点的引用