2

我们想使用 elastic apm 跟踪我们的 elixir phoenix 应用程序。但我找不到弹性的 apm 代理。

有人建议opentelemetry与 exporter 一起使用,但我无法从文档中了解如何使用它。我想跟踪新遗物的细节,比如错误和所有事情。

以前我们使用新的 relic,其中有一个开源的 apm 代理,但现在我们想切换到弹性。我无法理解如何在应用程序中使用 span 以及如何处理多个 span 以及放置它们的位置。如果有人可以提供帮助或提供使用弹性 apm 的替代解决方案,那就太好了。

4

1 回答 1

5

确实,没有适用于 Elastic APM 的 Elixir 代理 - 您可以对此问题投赞成票,以使该主题得到更多关注。

正如您所发现的,您可以同时使用 OpenTelemetry。为此,请运行 OpenTelemetry contrib 收集器(otel 收集器)并将其配置为导出到-文档中elastic有完整说明以及此示例配置:

receivers:
  otlp:
    endpoint: localhost:55680
processors:
  batch:
    timeout: 1s
    send_batch_size: 1024
exporters:
  elastic:
    apm_server_url: "https://elasticapm.example.com"
    secret_token: "ESS_TOKEN"
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [elastic]

在您的应用程序中,使用opentelemetry exporter配置跟踪器。

此时,您的应用程序中将有一个跟踪器将跟踪发送到 otel 收集器。从那里,跟踪将通过 APM 服务器导出到 Elastic Stack。总之:your app -> otel collector -> apm-server -> elasticsearch

Erlang/Elixir 代理文档有用于启动和装饰 span的示例代码。

于 2020-06-22T14:17:56.760 回答