opentelemetry-gradle-plugin icon indicating copy to clipboard operation
opentelemetry-gradle-plugin copied to clipboard

Socket timeouts

Open mleegwt opened this issue 10 months ago • 7 comments

Great idea to make an OpenTelemetry plugin for Gradle!

When getting this to work on my local setup for development I fail to get the setup to work. My configuration is:

openTelemetryBuild {
    endpoint = "http://opentelemetry.local:4318"
    exporterMode = com.atkinsondev.opentelemetry.build.OpenTelemetryExporterMode.HTTP
}

I receive:

Failed to export spans. The request could not be executed. Full error message: timeout
java.io.InterruptedIOException: timeout
        at okhttp3.internal.connection.RealCall.timeoutExit(RealCall.kt:398)
        at okhttp3.internal.connection.RealCall.callDone(RealCall.kt:360)
        at okhttp3.internal.connection.RealCall.noMoreExchanges$okhttp(RealCall.kt:325)
        at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:209)
        at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.net.SocketException: Socket closed
        at java.base/sun.nio.ch.NioSocketImpl.endConnect(NioSocketImpl.java:531)
        at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:615)
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
        at java.base/java.net.Socket.connect(Socket.java:633)
        at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
        at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
        at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
        at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
        at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
        at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
        at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
        at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
        ... 4 more

My application that I'm developing correctly connects to the HTTP setting on the URL and port above. So I'm sure the OpenTelemetry collector is set up correctly! That application is using the Java Agent default environment variables. So the endpoint setting is OTEL_EXPORTER_OTLP_ENDPOINT=http://opentelemetry.local

What could be the issue that the communication breaks down?

mleegwt avatar Mar 29 '24 11:03 mleegwt