1

Google Stackdriver で収集されたエラーを処理する必要がある Google App Engine で実行されている Java アプリケーションがあります。

次の Maven 依存関係として取得した Stackdriver Error Reporting API Java Client Libraryを使用して、いくつかのコードを記述しました。

<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構成に関係なく、エラーが発生します。

つまり、これはエラーの原因となる構成試行の 1 つです。

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 の互換性に関する問題があります。

4

2 に答える 2