如何用OpenTelemetry从零开始编写一个Instrumentation?

2026-05-21 15:234阅读0评论运维
  • 内容介绍
  • 文章标签
  • 相关推荐

从零开始编写一个 OpenTelemetry Instrumentation

前段时间我们从 SkyWalking 切换到了 OpenTelemetry ,这时候之前使用 SkyWalking 编写的插件也得转移到 OpenTelemetry 体系下。 我也写了相关介绍文章: 实战:如何优雅的从 SkyWalking 切换到 OpenTelemetry 好在 OpenTelemetry 提供了丰富的 Instrumentation 库, 我算是看透了。 但仍然有一些库或框架未被支持。

恰好公司内部也有一些开发同学有类似的需求:,正宗。

OpenTelemetry 实战:从 0 到 1 编写一个 Instrumentation

比如它会拉取目前最新的依赖进行测试:

@AutoService public class PowerJobInstrumentationModule extends InstrumentationModule { public PowerJobInstrumentationModule { super; }

@Override  
public List typeInstrumentations {  
  return asList);  
}

}

这样就可以把整个链路串起来 一边还能查看 PowerJob 调度的 JobId、以及调用参数等数据,这样排查问题时也更加直观,这是可以说的吗?。

前置知识点

在正式开发 Instrumentation 之前还需要了解一些前置知识点,我跪了。。

阅读全文

从零开始编写一个 OpenTelemetry Instrumentation

前段时间我们从 SkyWalking 切换到了 OpenTelemetry ,这时候之前使用 SkyWalking 编写的插件也得转移到 OpenTelemetry 体系下。 我也写了相关介绍文章: 实战:如何优雅的从 SkyWalking 切换到 OpenTelemetry 好在 OpenTelemetry 提供了丰富的 Instrumentation 库, 我算是看透了。 但仍然有一些库或框架未被支持。

恰好公司内部也有一些开发同学有类似的需求:,正宗。

OpenTelemetry 实战:从 0 到 1 编写一个 Instrumentation

比如它会拉取目前最新的依赖进行测试:

@AutoService public class PowerJobInstrumentationModule extends InstrumentationModule { public PowerJobInstrumentationModule { super; }

@Override  
public List typeInstrumentations {  
  return asList);  
}

}

这样就可以把整个链路串起来 一边还能查看 PowerJob 调度的 JobId、以及调用参数等数据,这样排查问题时也更加直观,这是可以说的吗?。

前置知识点

在正式开发 Instrumentation 之前还需要了解一些前置知识点,我跪了。。

阅读全文