hertzbeat icon indicating copy to clipboard operation
hertzbeat copied to clipboard

[BUG] <When using VictoriaMetrics time series library, springboot2 monitoring does not display the key correctly when displaying multi-record charts>

Open dazexcl opened this issue 2 years ago • 2 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

Current Behavior

ec6b449dad4198abf006d9b23bcf36e 查看内存使用图表时,其key为空

hzb error日志有错误(不确定是否有关联性)

Expected Behavior

image 应根据内存监控中space列来显示图表

Steps To Reproduce

  1. 使用VictoriaMetrics
  2. 运行hzb
  3. 添加springboot2监控
  4. 等待数据
  5. 查看历史图表

Environment

HertzBeat version(s): v1.4.4
---
系统信息:
版本	Windows Server 2022 Datacenter
版本号	21H2
操作系统内部版本	20348.2159
---
VictoriaMetrics: victoria-metrics-windows-amd64-v1.97.0

Debug logs

2024-02-01 11:08:37.591 [warehouse-persistent-data-storage] ERROR org.dromara.hertzbeat.warehouse.store.HistoryVictoriaMetricsDataStorage Line:189 - flush metrics data to victoria-metrics error: I/O error on POST request for "http://localhost:8428/api/v1/import": Address already in use: connect; nested exception is java.net.BindException: Address already in use: connect. org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://localhost:8428/api/v1/import": Address already in use: connect; nested exception is java.net.BindException: Address already in use: connect at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:785) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711) at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:468) at org.dromara.hertzbeat.warehouse.store.HistoryVictoriaMetricsDataStorage.saveData(HistoryVictoriaMetricsDataStorage.java:181) at org.dromara.hertzbeat.warehouse.store.DataStorageDispatch.lambda$startStoragePersistentData$3(DataStorageDispatch.java:88) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.net.BindException: Address already in use: connect at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method) at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:107) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) at java.base/java.net.Socket.connect(Socket.java:609) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:509) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604) at java.base/sun.net.www.http.HttpClient.(HttpClient.java:277) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:376) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:397) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015) at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76) at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:109) at org.dromara.hertzbeat.manager.config.HeaderRequestInterceptor.intercept(HeaderRequestInterceptor.java:47) at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:93) at org.springframework.http.client.InterceptingClientHttpRequest.executeInternal(InterceptingClientHttpRequest.java:77) at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:776) ... 7 common frames omitted 2024-02-01 11:08:37.607 [warehouse-persistent-data-storage] ERROR org.dromara.hertzbeat.warehouse.store.HistoryVictoriaMetricsDataStorage Line:189 - flush metrics data to victoria-metrics error: I/O error on POST request for "http://localhost:8428/api/v1/import": Address already in use: connect; nested exception is java.net.BindException: Address already in use: connect. org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://localhost:8428/api/v1/import": Address already in use: connect; nested exception is java.net.BindException: Address already in use: connect at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:785) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711) at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:468) at org.dromara.hertzbeat.warehouse.store.HistoryVictoriaMetricsDataStorage.saveData(HistoryVictoriaMetricsDataStorage.java:181) at org.dromara.hertzbeat.warehouse.store.DataStorageDispatch.lambda$startStoragePersistentData$3(DataStorageDispatch.java:88) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.net.BindException: Address already in use: connect at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method) at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:107) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) at java.base/java.net.Socket.connect(Socket.java:609) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:509) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604) at java.base/sun.net.www.http.HttpClient.(HttpClient.java:277) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:376) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:397) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015) at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76) at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:109) at org.dromara.hertzbeat.manager.config.HeaderRequestInterceptor.intercept(HeaderRequestInterceptor.java:47) at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:93) at org.springframework.http.client.InterceptingClientHttpRequest.executeInternal(InterceptingClientHttpRequest.java:77) at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:776) ... 7 common frames omitted 2024-02-01 11:08:37.607 [warehouse-persistent-data-storage] ERROR org.dromara.hertzbeat.warehouse.store.HistoryVictoriaMetricsDataStorage Line:189 - flush metrics data to victoria-metrics error: I/O error on POST request for "http://localhost:8428/api/v1/import": Address already in use: connect; nested exception is java.net.BindException: Address already in use: connect. org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://localhost:8428/api/v1/import": Address already in use: connect; nested exception is java.net.BindException: Address already in use: connect at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:785) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711) at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:468) at org.dromara.hertzbeat.warehouse.store.HistoryVictoriaMetricsDataStorage.saveData(HistoryVictoriaMetricsDataStorage.java:181) at org.dromara.hertzbeat.warehouse.store.DataStorageDispatch.lambda$startStoragePersistentData$3(DataStorageDispatch.java:88) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.net.BindException: Address already in use: connect at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method) at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:107) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) at java.base/java.net.Socket.connect(Socket.java:609) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:509) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:604) at java.base/sun.net.www.http.HttpClient.(HttpClient.java:277) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:376) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:397) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015) at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76) at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:109) at org.dromara.hertzbeat.manager.config.HeaderRequestInterceptor.intercept(HeaderRequestInterceptor.java:47) at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:93) at org.springframework.http.client.InterceptingClientHttpRequest.executeInternal(InterceptingClientHttpRequest.java:77) at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66) at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:776) ... 7 common frames omitted

Anything else?

No response

dazexcl avatar Feb 01 '24 03:02 dazexcl

@tomsun28 @dazexcl I tried to reproduce the bug, but it seems to be working fine to me. 😢

  • master branch + victoria-metrics-v1.97.0+springboot2 Image
  • v1.4.4+ victoria-metrics-v1.97.0+springboot2 Image

Based on the logs you shared:

“flush metrics data to victoria-metrics error: I/O error on POST request for ‘http://localhost:8428/api/v1/import’: Address already in use: connect; nested exception is java.net.BindException: Address already in use: connect.”

It looks like localhost:8428 might already be in use by another process. Could you check if another service is occupying that port? Let me know if there’s anything else I should verify!

JuJinPark avatar Feb 20 '25 02:02 JuJinPark

hi, this maybe has fixed in lastest version.

tomsun28 avatar Feb 21 '25 10:02 tomsun28