zipkin 跟踪 openstack 和 osprofiler 示例

zipkin tracing openstack and osprofiler example

大家

我正在尝试使用 Zipkin 来跟踪 OpenStack 中的服务。我知道这对我来说是一个巨大的项目。所以想知道有没有Zipkin追踪OpenStack的开源库

我想我之前搜索过它,如果我的想法没有欺骗我,那么这里有一个演示文稿(只有切片)。但是,我找不到它。有人可以帮忙吗?

我知道有用于跟踪 OpenStack 的库 osprofiler,而 API 的示例对我来说似乎不清楚。你能给我一个更详细甚至更完整的例子吗,也许像 Zipkin https://github.com/openzipkin/pyramid_zipkin-example

我并不是说它没有帮助。看来我还是得在OpenStack中找到RESTful请求点,比如创建一个实例可能会触发一个服务请求neutron进行联网,我可能还得定位前端代码并添加跟踪代码。如果使用py_zipkin,我可以在它之前添加装饰器@zipkin_span(some params)。问题是我很难找到像 Nova、neutron、cinder 等这些服务的前端。

osprofiler 似乎做同样的事情。我的理解很可能是错误的,我很感激谁能提供帮助。

顺便说一句,我不打算跟踪像OpenStack这样的大项目。我打算用 Zipkin 跟踪一个类似 RESTful 或 RPC 的系统来收集信息进行分析。不幸的是,我找到了一个中等规模的开源项目。所以我选择OpenStack。如果你能给我提供其他东西,那将非常有帮助。 :)

非常感谢。

跟踪 OpenStack 项目的最佳方式是使用 Osprofiler 库。如果您只是想了解工作流程或只是了解 OpenStack 内部进行的调用类型,那么 Osprofiler 是获取跟踪的最佳和最简单的方法。现在 Osprofiler 是一个被接受的 OpenStack 项目,也是获取 OpenStack 跟踪的官方项目。

osprofiler 已经集成到 OpenStack 的所有主要项目(Nova、Neutron、Keystone、Glance 等)中,而不是必须检查整个代码并在 HTTP 请求或 RPC 调用附近添加检测点。您只需在 OpenStack 中每个项目的配置文件中启用 osprofiler 即可获取该特定项目的踪迹。

你可以通过这个 link - https://docs.openstack.org/osprofiler/latest/

在配置文件中启用 Osprofiler 可以通过在配置文件末尾添加这些行来完成(nova.conf 或 neutron.conf):

[profiler]
enabled = True
trace_sqlalchemy = True
hmac_keys = SECRET_KEY
connection_string = messaging://

connection_string参数表示采集器(存放跟踪信息的地方)。默认情况下,它使用 Ceilometer。 您实际上可以通过将 conf 文件中的 connection_string 参数更改为 elasticsearch 服务器来将跟踪信息重定向到其他收集器,如 Elasticsearch。

这是迄今为止在 OpenStack 中以最少的努力获取跟踪的最简单方法。