我很困惑为什么OpenTelemetry文档有OpenTelemetry Python和OpenTelemetry Python。
就像在python中使用规范时一样,我们应该考虑使用pip install opentelemetry-api over pip install opentelemetry-sdk。
发布于 2022-07-13 12:00:04
从github页面的实现。
(注:无法在评论中加入这一点,也不想仅仅发布链接)
这个存储库包括多个可安装的包。OpenTelemetry包包括抽象类和非op实现,它们按照OpenTelemetry规范组成OpenTelemetry API。opentelemetry包是API的参考实现。 产生遥测数据的库应该只依赖opentelemetry,并将SDK的选择推迟到应用程序开发人员。应用程序可能依赖于opentelemetry或其他实现API的包。
发布于 2022-10-01 04:03:47
简单地说,可以想象一个普通的python或JAVA接口。接口本身就是一个契约,说明它所能做的一切。但是,如果不首先实现接口,那么在代码中任何地方都不能使用该接口。因此,接口只是抽象契约(API),需要有具体的实现(SDK)。只有这样,您才能使用SDK。
这种策略通常有助于在一致和持续的契约下统一整个行业的软件库的实现。有多个供应商,如Datadog、New、DynaTrace、Signoz等,现在可以在需要时实现自己的SDK,但同时遵守每个人都遵守的标准合同。这允许您作为应用程序开发人员不与任何一个供应商进行耦合。但是可以选择其中最好的一个,在必要时进行交换,而不会破坏软件系统中的任何东西。
希望这有助于回答为什么应用程序可能只依赖SDK。
https://stackoverflow.com/questions/72963553
复制相似问题