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

其中 fileftp 是 docker 已部署的应用程序。

我的问题是,如何获取 fileftp 的日志?

到目前为止我想到的最接近的是

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