36
36
import jakarta .servlet .ServletResponse ;
37
37
import jakarta .servlet .http .HttpServletRequest ;
38
38
import jakarta .servlet .http .HttpServletResponse ;
39
+ import org .jetbrains .annotations .NotNull ;
39
40
import org .opengrok .indexer .Metrics ;
41
+ import org .opengrok .indexer .web .QueryParameters ;
40
42
import org .opengrok .indexer .web .SearchHelper ;
41
43
42
44
public class StatisticsFilter implements Filter {
@@ -76,16 +78,7 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
76
78
private void measure (HttpServletResponse httpResponse , HttpServletRequest httpReq ,
77
79
Duration duration , PageConfig config ) {
78
80
String category ;
79
- if (isRoot (httpReq )) {
80
- category = "root" ;
81
- } else {
82
- String prefix = config .getPrefix ().toString ();
83
- if (prefix .isEmpty ()) {
84
- category = "unknown" ;
85
- } else {
86
- category = prefix .substring (1 );
87
- }
88
- }
81
+ category = getCategory (httpReq , config );
89
82
90
83
Timer categoryTimer = Timer .builder ("requests.latency" ).
91
84
tags ("category" , category , "code" , String .valueOf (httpResponse .getStatus ())).
@@ -102,6 +95,25 @@ private void measure(HttpServletResponse httpResponse, HttpServletRequest httpRe
102
95
}
103
96
}
104
97
98
+ @ NotNull
99
+ private String getCategory (HttpServletRequest httpReq , PageConfig config ) {
100
+ String category ;
101
+ if (isRoot (httpReq )) {
102
+ category = "root" ;
103
+ } else {
104
+ String prefix = config .getPrefix ().toString ();
105
+ if (prefix .isEmpty ()) {
106
+ category = "unknown" ;
107
+ } else {
108
+ category = prefix .substring (1 );
109
+ if (category .equals ("xref" ) && httpReq .getParameter (QueryParameters .ANNOTATION_PARAM ) != null ) {
110
+ category = "annotate" ;
111
+ }
112
+ }
113
+ }
114
+ return category ;
115
+ }
116
+
105
117
private boolean isRoot (final HttpServletRequest httpReq ) {
106
118
return httpReq .getRequestURI ().replace (httpReq .getContextPath (), "" ).equals ("/" )
107
119
|| httpReq .getRequestURI ().replace (httpReq .getContextPath (), "" ).equals ("" );
0 commit comments