Spring 云数据流 java DSL:获取流组件的日志
Spring Cloud Data Flow java DSL: get logs for stream components
我正在使用通过 docker-compose 在本地部署的 SCDF 2.5.1,我的软件通过 java DSL 向 SCDF 服务器发送命令。
假设我创建了一个流
file > :queue
:queue > ftp
其中 file
和 ftp
是 docker 已部署的应用程序。
我的问题是,如何获取 file
和 ftp
的日志?
到目前为止我想到的最接近的是
Map<String, String> attributes = scdf.runtimeOperations().streamStatus(streamName).getContent()
.stream().flatMap(stream -> stream.getApplications().getContent().stream()
.filter(app -> app.getName().equals(appName))
.flatMap(appStatus -> appStatus.getInstances().getContent().stream()
.map(AppInstanceStatusResource::getAttributes)))
.findFirst().orElse(Collections.emptyMap());
String logLocation = attributes.get("stdout")
然后挂载 logLocation
并将其作为文件读取。
有没有更优雅的方案?
Java DSL(以及随后的 SCDF REST 客户端)没有 log
检索操作作为其 REST 操作的一部分。有一个 REST endpoint 您可以访问 SCDF 服务器以获取流的日志。
如果您想做出贡献,可以在此处提交 proposal/PR:https://github.com/spring-cloud/spring-cloud-dataflow/pulls
我正在使用通过 docker-compose 在本地部署的 SCDF 2.5.1,我的软件通过 java DSL 向 SCDF 服务器发送命令。
假设我创建了一个流
file > :queue
:queue > ftp
其中 file
和 ftp
是 docker 已部署的应用程序。
我的问题是,如何获取 file
和 ftp
的日志?
到目前为止我想到的最接近的是
Map<String, String> attributes = scdf.runtimeOperations().streamStatus(streamName).getContent()
.stream().flatMap(stream -> stream.getApplications().getContent().stream()
.filter(app -> app.getName().equals(appName))
.flatMap(appStatus -> appStatus.getInstances().getContent().stream()
.map(AppInstanceStatusResource::getAttributes)))
.findFirst().orElse(Collections.emptyMap());
String logLocation = attributes.get("stdout")
然后挂载 logLocation
并将其作为文件读取。
有没有更优雅的方案?
Java DSL(以及随后的 SCDF REST 客户端)没有 log
检索操作作为其 REST 操作的一部分。有一个 REST endpoint 您可以访问 SCDF 服务器以获取流的日志。
如果您想做出贡献,可以在此处提交 proposal/PR:https://github.com/spring-cloud/spring-cloud-dataflow/pulls