Skip to content

Commit dd31ee6

Browse files
authored
Fix breaking scrape API change #892 (#898)
Signed-off-by: Fabian Stäber <[email protected]>
1 parent e8b3f87 commit dd31ee6

File tree

3 files changed

+39
-3
lines changed

3 files changed

+39
-3
lines changed

prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/HttpExchangeAdapter.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,17 @@ public Enumeration<String> getHeaders(String name) {
4949
public String getMethod() {
5050
return httpExchange.getRequestMethod();
5151
}
52+
53+
@Override
54+
public String getRequestPath() {
55+
URI requestURI = httpExchange.getRequestURI();
56+
String uri = requestURI.toString();
57+
int qx = uri.indexOf('?');
58+
if (qx != -1) {
59+
uri = uri.substring(0, qx);
60+
}
61+
return uri;
62+
}
5263
}
5364

5465
public class HttpResponse implements PrometheusHttpResponse {

prometheus-metrics-exporter-servlet-jakarta/src/main/java/io/prometheus/metrics/exporter/servlet/jakarta/HttpExchangeAdapter.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import java.io.IOException;
1010
import java.io.OutputStream;
11+
import java.net.URI;
1112
import java.util.Enumeration;
1213

1314
public class HttpExchangeAdapter implements PrometheusHttpExchange {
@@ -67,6 +68,24 @@ public Enumeration<String> getHeaders(String name) {
6768
public String getMethod() {
6869
return request.getMethod();
6970
}
71+
72+
@Override
73+
public String getRequestPath() {
74+
StringBuilder uri = new StringBuilder();
75+
String contextPath = request.getContextPath();
76+
if (contextPath.startsWith("/")) {
77+
uri.append(contextPath);
78+
}
79+
String servletPath = request.getServletPath();
80+
if (servletPath.startsWith("/")) {
81+
uri.append(servletPath);
82+
}
83+
String pathInfo = request.getPathInfo();
84+
if (pathInfo != null) {
85+
uri.append(pathInfo);
86+
}
87+
return uri.toString();
88+
}
7089
}
7190

7291
public static class Response implements PrometheusHttpResponse {

prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusScrapeRequest.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,16 @@
22

33
/**
44
* Infos extracted from the request received by the endpoint
5-
*
65
*/
76
public interface PrometheusScrapeRequest {
8-
9-
String[] getParameterValues(String name);
107

8+
/**
9+
* Absolute path of the HTTP request.
10+
*/
11+
String getRequestPath();
12+
13+
/**
14+
* See {@code jakarta.servlet.ServletRequest.getParameterValues(String name)}
15+
*/
16+
String[] getParameterValues(String name);
1117
}

0 commit comments

Comments
 (0)