如何指定statsd客户端端口?

How to specify the statsd client port?

我在 pcf 环境中部署了一个 java spring 启动应用程序。我已经使用 statsd 客户端库将指标发送到 statsd 服务器。所以问题是我如何在 statsd 客户端中指定主机和端口,以便它可以发送指标。

        public StatsDClient statsDClient(
        @Value("${metrics.statsd.host:localhost}") String host,
        @Value("${metrics.statsd.port:8125}") int port,
        @Value("${metrics.prefix:example.app}") String prefix
) {
    return new NonBlockingStatsDClient(prefix, host, port);
}

我必须为 PCF 部署的应用程序指定主机和端口,该怎么做?

如果我的理解正确,您在 PCF 中有两个应用程序 运行。

  1. 一个 Spring 引导应用程序 - 您正在调用某个客户端应用程序。
  2. 其次是您的 statsd 服务器

你需要在这两者之间建立通信。

正如丹尼尔在评论中提到的,您有两种方法可以做到这一点。

  1. HTTP/TCP
  2. Internal Route

选项 1 的问题是您可能无法将其与主机和端口分开使用,因为 PCF 在内部这样做。

我建议使用第二个选项 - 内部路由,它为您提供了明确的主机名和端口,您需要在客户端应用程序中进行配置。 以下是配置 Container-to-Container 网络

的步骤
  1. 向您的服务器应用程序添加新路由 - 即app1.apps.internal
  2. 使用客户端和服务器应用程序创建网络策略 - link
  3. 在配置服务器或 code-base 中定义 属性 您用于 属性 外部化的任何进程 - 您的最终 URL 看起来像:app1.apps.internal:8080