GCP 日志记录和云跟踪 API 返回 503 UNAVAILABLE 错误

GCP logging and Cloud tracing API returning 503 UNAVAILABLE Error

提问人:Siva Tharun 提问时间:3/9/2023 更新时间:3/9/2023 访问量:245

问:

我是GCP云服务的新手,我正在尝试为Spring Boot存储库之一设置云日志记录/跟踪,因此我正在使用Spring Boot云GCP库来执行相同的操作。

我尝试在我的本地开发环境中运行该服务,我已经将GOOGLE_APPLICATION_CREDENTIALS文件位置设置为应用程序的环境变量。我已确保服务帐户具有正确的角色集,用于将日志和跟踪写入 GCP 操作套件 (stackdriver)。

但是,我注意到我收到了 cloudtrace.googleapis.com 和 logging.googleapis.com REST/grpc 调用的 503 UNAVAILABLE 响应状态

我已经确保,通过使用下面的gcloud CLI命令,为我的项目启用了上述两个API。

gcloud 服务支持 cloudtrace.googleapis.com

gcloud 服务支持 logging.googleapis.com

当我尝试通过 gcloud cli 插入日志时,它按预期工作。

这些是作为 DefaultCredentialsProvider 配置的一部分设置为的凭据范围 -

[https://www.googleapis.com/auth/bigquery, https://www.googleapis.com/auth/trace.append, https://www.googleapis.com/auth/logging.admin, https://www.googleapis.com/auth/sqlservice.admin, https://www.googleapis.com/auth/devstorage.read_only, https://www.googleapis.com/auth/monitoring.write, https://www.googleapis.com/auth/pubsub, https://www.googleapis.com/auth/logging.write, https://www.googleapis.com/auth/spanner.admin, https://www.googleapis.com/auth/cloudruntimeconfig, https://www.googleapis.com/auth/devstorage.read_write, https://www.googleapis.com/auth/cloud-platform, https://www.googleapis.com/auth/spanner.data, https://www.googleapis.com/auth/datastore, https://www.googleapis.com/auth/cloud-vision]

请在下面找到用于设置应用程序的示例 java 配置。

application.properties

spring.cloud.gcp.logging.enabled=true
spring.cloud.gcp.trace.enabled=true
stackdriver.log.name=service.log
spring.cloud.gcp.credentials.scopes=DEFAULT_SCOPES,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/logging.admin,https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/trace.append

management.tracing.sampling.probability=1.0

应用程序日志

io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
    at io.grpc.Status.asRuntimeException(Status.java:535)
    at zipkin2.reporter.stackdriver.internal.AwaitableUnaryClientCallListener.onClose(AwaitableUnaryClientCallListener.java:100)
    at io.grpc.internal.DelayedClientCall$DelayedListener$3.run(DelayedClientCall.java:463)

Caused by: io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedNoRouteToHostException: No route to host: cloudtrace.googleapis.com/2404:6800:4007:81c:0:0:0:200a:443
Caused by: java.net.NoRouteToHostException: No route to host
    at sun.nio.ch.Net.connect0(Native Method)
    at sun.nio.ch.Net.connect(Net.java:482)
    at sun.nio.ch.Net.connect(Net.java:474)

java.lang.RuntimeException: com.google.cloud.logging.LoggingException: io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
    at com.google.cloud.logging.LoggingImpl$9.onFailure(LoggingImpl.java:943)
    at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:68)
    at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1132)

Caused by: io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedNoRouteToHostException: No route to host: logging.googleapis.com/2001:4860:4802:32:0:0:0:174:443
Caused by: java.net.NoRouteToHostException: No route to host
    at sun.nio.ch.Net.connect0(Native Method)

logback-spring.xml

<configuration>
    <include resource="com/google/cloud/spring/logging/logback-appender.xml" />
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <include resource="com/google/cloud/spring/logging/logback-json-appender.xml" />
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="STACKDRIVER" />
    </root>
</configuration>

pom.xml

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.8</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>


<properties>
        <java.version>1.8</java.version>
        <spring-cloud-gcp.version>3.2.0</spring-cloud-gcp.version>
        <spring-cloud.version>2021.0.1</spring-cloud.version>
    </properties>

<dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>spring-cloud-gcp-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>spring-cloud-gcp-starter-logging</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>spring-cloud-gcp-starter-trace</artifactId>
        </dependency>

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.google.cloud</groupId>
                <artifactId>spring-cloud-gcp-dependencies</artifactId>
                <version>${spring-cloud-gcp.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
spring-boot google-cloud-platform stackdriver google-cloud-logging

评论

0赞 Siegfred V. 3/10/2023
您可以查看这篇关于设置 Cloud Logging 和 Cloud Tracing 的帖子
0赞 Siva Tharun 3/10/2023
此方法不再有效,示例中使用的库将不再维护。

答: 暂无答案