如何指定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 中有两个应用程序 运行。
- 一个 Spring 引导应用程序 - 您正在调用某个客户端应用程序。
- 其次是您的 statsd 服务器
你需要在这两者之间建立通信。
正如丹尼尔在评论中提到的,您有两种方法可以做到这一点。
选项 1 的问题是您可能无法将其与主机和端口分开使用,因为 PCF 在内部这样做。
我建议使用第二个选项 - 内部路由,它为您提供了明确的主机名和端口,您需要在客户端应用程序中进行配置。
以下是配置 Container-to-Container 网络
的步骤
- 向您的服务器应用程序添加新路由 - 即
app1.apps.internal
- 使用客户端和服务器应用程序创建网络策略 - link
- 在配置服务器或 code-base 中定义 属性 您用于 属性 外部化的任何进程 - 您的最终 URL 看起来像:
app1.apps.internal:8080
我在 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 中有两个应用程序 运行。
- 一个 Spring 引导应用程序 - 您正在调用某个客户端应用程序。
- 其次是您的 statsd 服务器
你需要在这两者之间建立通信。
正如丹尼尔在评论中提到的,您有两种方法可以做到这一点。
选项 1 的问题是您可能无法将其与主机和端口分开使用,因为 PCF 在内部这样做。
我建议使用第二个选项 - 内部路由,它为您提供了明确的主机名和端口,您需要在客户端应用程序中进行配置。 以下是配置 Container-to-Container 网络
的步骤- 向您的服务器应用程序添加新路由 - 即
app1.apps.internal
- 使用客户端和服务器应用程序创建网络策略 - link
- 在配置服务器或 code-base 中定义 属性 您用于 属性 外部化的任何进程 - 您的最终 URL 看起来像:
app1.apps.internal:8080