0

每个人

我正在尝试使用 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。如果你能给我提供别的东西,那将非常有帮助。:)

非常感谢。

4

1 回答 1

1

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

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

您可以通过此链接 - https://docs.openstack.org/osprofiler/latest/

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

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

connection_string 参数指示收集器(存储跟踪信息的位置)。默认情况下,它使用云高仪。您实际上可以通过将 conf 文件中的 connection_string 参数更改为 elasticsearch 服务器,将跟踪信息重定向到 Elasticsearch 等其他收集器。

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

于 2017-11-05T11:08:17.883 回答