如何禁用Hyperledger Fabric Gateway Java客户端的GrpcExporter指标导出
解决Hyperledger Fabric Gateway Java客户端指标导出警告问题
你的Hyperledger Fabric Gateway(HLF 2.2.2)Java客户端应用可正常连接Fabric网络且运行无异常,但日志中充斥大量如下警告:
2024-02-23T14:51:19.534+01:00 WARN 1 --- [alhost:4317/...] i.o.exporter.internal.grpc.GrpcExporter : Failed to export metrics. Server responded with gRPC status code 2. Error message: Failed to connect to localhost/[0:0:0:0:0:0:0:1]:4317
该警告由OpenTelemetry的gRPC指标导出器触发——默认配置下,它会尝试连接本地4317端口的OpenTelemetry Collector,若未部署该服务则反复抛出连接失败警告。以下是几种禁用该指标导出功能的方案:
方案1:通过JVM参数禁用自动配置
启动Java应用时添加如下JVM参数,直接关闭OpenTelemetry的自动配置逻辑:
-Dotel.java.global-autoconfigure.enabled=false
方案2:通过配置文件关闭指标导出
若应用基于Spring Boot等支持配置文件的框架,可在配置文件中指定禁用指标导出:
- application.properties:
otel.metrics.exporter=none
- application.yml:
otel: metrics: exporter: none
方案3:排除OpenTelemetry相关依赖(无需求时)
若项目完全不需要OpenTelemetry的任何功能,可在构建文件中排除相关依赖:
Maven(pom.xml):
<dependency> <groupId>org.hyperledger.fabric</groupId> <artifactId>fabric-gateway-java</artifactId> <version>2.2.2</version> <exclusions> <exclusion> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-exporter-otlp-metrics</artifactId> </exclusion> <exclusion> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-sdk-metrics</artifactId> </exclusion> </exclusions> </dependency>
Gradle(build.gradle):
implementation('org.hyperledger.fabric:fabric-gateway-java:2.2.2') { exclude group: 'io.opentelemetry', module: 'opentelemetry-exporter-otlp-metrics' exclude group: 'io.opentelemetry', module: 'opentelemetry-sdk-metrics' }
内容的提问来源于stack exchange,提问作者icordoba
相关产品推荐
相关产品推荐

