3636import jakarta .servlet .ServletResponse ;
3737import jakarta .servlet .http .HttpServletRequest ;
3838import jakarta .servlet .http .HttpServletResponse ;
39+ import org .jetbrains .annotations .NotNull ;
3940import org .opengrok .indexer .Metrics ;
41+ import org .opengrok .indexer .web .QueryParameters ;
4042import org .opengrok .indexer .web .SearchHelper ;
4143
4244public class StatisticsFilter implements Filter {
@@ -76,16 +78,7 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
7678 private void measure (HttpServletResponse httpResponse , HttpServletRequest httpReq ,
7779 Duration duration , PageConfig config ) {
7880 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 );
8982
9083 Timer categoryTimer = Timer .builder ("requests.latency" ).
9184 tags ("category" , category , "code" , String .valueOf (httpResponse .getStatus ())).
@@ -102,6 +95,25 @@ private void measure(HttpServletResponse httpResponse, HttpServletRequest httpRe
10295 }
10396 }
10497
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+
105117 private boolean isRoot (final HttpServletRequest httpReq ) {
106118 return httpReq .getRequestURI ().replace (httpReq .getContextPath (), "" ).equals ("/" )
107119 || httpReq .getRequestURI ().replace (httpReq .getContextPath (), "" ).equals ("" );
0 commit comments