【发布时间】:2020-10-14 09:59:46
【问题描述】:
我正在通过 Grafana 调用 prometheus 服务器,我可以使用邮递员发出以下请求,但是当我尝试使用相同的 uri 并且 java 代码低于异常时
原因:org.apache.http.ProtocolException:未指定目标主机 在 org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71) 在 org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125) 在 org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) ...省略了31个常用框架
我的代码如下。
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
String PM_UI_SERVER_URI = "http://" + PM_SERVER_HOST + ":" + getPMUiServerPort();
String uriStr= PM_UI_SERVER_URI + PM_SERVER_BASE_URI + queryString +"&start="+String.valueOf(startTime)+"&end="+String.valueOf(endTime)+"&step=150";
//logger.info("Execute Query uri string: "+uriStr);
String str="http://10.61.244.58:31000/api/datasources/proxy/1/api/v1/query_range?query=em_core_used_heap_mem_mb{job=\"eric-em-om-server\"}&start=1592981880&end=1592982180&step=15";
String encodedurl = URLEncoder.encode(str,"UTF-8");
//URI uri = new URI(encodedurl);
//HttpGet httpget = new HttpGet("http://10.61.244.58:31000/api/datasources/1");
HttpGet httpget = new HttpGet(encodedurl);
httpget.addHeader("Authorization", token);
httpget.addHeader("Content-Type", "application/json");
CloseableHttpResponse response = httpClient.execute(httpget);
有人可以帮忙吗,因为我被困在这里了。
【问题讨论】:
-
logger.info("Execute Query uri string: "+uriStr);的输出是什么(注释掉的行)。假设它是正确的,你能从运行这段代码的框中pinghost吗? -
是的@RobEvans,我可以ping通。
-
如果您可以ping 主机,则问题出在url,而不是与主机通信的问题。测试
telnet 10.61.244.58 31000是否有效?
标签: java http prometheus grafana