gpt4 book ai didi

java - 使用 GAE 上的 java 客户端使用来自 Google Stackdriver 错误报告的数据

转载 作者:太空宇宙 更新时间:2023-11-04 11:43:58 31 4
gpt4 key购买 nike

我们有一个在 Google App Engine 上运行的 Java 应用程序,需要处理在 Google Stackdriver 上收集的错误。

我们使用 Stackdriver 错误报告 API 编写了一些代码 Java Client Library获得如下maven依赖

<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-errorreporting</artifactId>
<version>0.9.3-alpha</version>
</dependency>

但它似乎与 GAE 不兼容,因为它提示

Caused by: java.lang.SecurityException: Google App Engine does not support Runtime.addShutdownHook
at com.google.appengine.runtime.Request.process-d6bb19ff7906421f(Request.java)
at java.lang.Runtime.addShutdownHook(Runtime.java:45)
at com.google.common.util.concurrent.MoreExecutors$Application.addShutdownHook(MoreExecutors.java:223)
at com.google.common.util.concurrent.MoreExecutors$Application.addDelayedShutdownHook(MoreExecutors.java:195)
at com.google.common.util.concurrent.MoreExecutors$Application.getExitingScheduledExecutorService(MoreExecutors.java:187)
at com.google.common.util.concurrent.MoreExecutors$Application.getExitingScheduledExecutorService(MoreExecutors.java:219)
at com.google.common.util.concurrent.MoreExecutors.getExitingScheduledExecutorService(MoreExecutors.java:169)
at com.google.api.gax.grpc.InstantiatingExecutorProvider.getExecutor(InstantiatingExecutorProvider.java:51)
at com.google.api.gax.grpc.ChannelAndExecutor.create(ChannelAndExecutor.java:62)
at com.google.api.gax.grpc.ClientSettings.getChannelAndExecutor(ClientSettings.java:81)
at com.google.cloud.errorreporting.spi.v1beta1.ErrorStatsServiceClient.<init>(ErrorStatsServiceClient.java:133)
at com.google.cloud.errorreporting.spi.v1beta1.ErrorStatsServiceClient.create(ErrorStatsServiceClient.java:123)
at com.google.cloud.errorreporting.spi.v1beta1.ErrorStatsServiceClient.create(ErrorStatsServiceClient.java:114)
at com.acme.gcp.errors.App.processErrorStats(App.java:39)

所以问题是:除了通过 Google HTTP 客户端从 REST api 获取数据之外,还有什么方法可以消耗 GAE 中的 Google Stackdriver 错误吗?

更新

无论迄今为止尝试过什么serviceClient配置,都会出现错误。

即这是导致错误的配置尝试之一:

ErrorStatsServiceSettings errorStatsServiceSettings = ErrorStatsServiceSettings
.defaultBuilder()
.deleteEventsSettings()
.getRetrySettingsBuilder()
.setTotalTimeout(Duration.standardSeconds(30))
.build();
ErrorStatsServiceClient.create(errorStatsServiceSettings); //error arising here

更新2

https://github.com/GoogleCloudPlatform/google-cloud-java/issues/1490#issuecomment-283597294 处存在 Java gRPC GAE 兼容性问题

最佳答案

Java gRPC 客户端尚无法在 App Engine 标准环境中运行。当然,这个问题最终应该得到解决。

与此同时,您可以回退到使用基于 REST 的 API,或者,如果您不必使用 Java,则可以实现一个基于 Go 的小型应用程序(在同一个云项目中),该应用程序获取错误报告、将其存储起来或者通过任务队列将它们传递到您的 Java 应用程序。

关于java - 使用 GAE 上的 java 客户端使用来自 Google Stackdriver 错误报告的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42514341/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com