@@ -142,7 +142,7 @@ protected void doExecute(Task task, Request request, ActionListener<InferenceAct
142142 try {
143143 validateRequest (request , unparsedModel );
144144 } catch (Exception e ) {
145- recordMetrics (unparsedModel , timer , e );
145+ recordRequestDurationMetrics (unparsedModel , timer , e );
146146 listener .onFailure (e );
147147 return ;
148148 }
@@ -261,7 +261,7 @@ public InferenceAction.Response read(StreamInput in) throws IOException {
261261 );
262262 }
263263
264- private void recordMetrics (UnparsedModel model , InferenceTimer timer , @ Nullable Throwable t ) {
264+ private void recordRequestDurationMetrics (UnparsedModel model , InferenceTimer timer , @ Nullable Throwable t ) {
265265 try {
266266 Map <String , Object > metricAttributes = new HashMap <>();
267267 metricAttributes .putAll (modelAttributes (model ));
@@ -281,7 +281,7 @@ private void inferOnServiceWithMetrics(
281281 String localNodeId ,
282282 ActionListener <InferenceAction .Response > listener
283283 ) {
284- inferenceStats . requestCount (). incrementBy ( 1 , modelAttributes ( model ) );
284+ recordRequestCountMetrics ( model , request , localNodeId );
285285 inferOnService (model , request , service , ActionListener .wrap (inferenceResults -> {
286286 if (request .isStreaming ()) {
287287 var taskProcessor = streamingTaskManager .<ChunkedToXContent >create (STREAMING_INFERENCE_TASK_TYPE , STREAMING_TASK_ACTION );
@@ -294,11 +294,11 @@ private void inferOnServiceWithMetrics(
294294
295295 listener .onResponse (new InferenceAction .Response (inferenceResults , streamErrorHandler ));
296296 } else {
297- recordMetrics (model , timer , request , localNodeId , null );
297+ recordRequestDurationMetrics (model , timer , request , localNodeId , null );
298298 listener .onResponse (new InferenceAction .Response (inferenceResults ));
299299 }
300300 }, e -> {
301- recordMetrics (model , timer , request , localNodeId , e );
301+ recordRequestDurationMetrics (model , timer , request , localNodeId , e );
302302 listener .onFailure (e );
303303 }));
304304 }
@@ -307,7 +307,21 @@ protected Flow.Publisher<ChunkedToXContent> streamErrorHandler(Flow.Processor<Ch
307307 return upstream ;
308308 }
309309
310- private void recordMetrics (Model model , InferenceTimer timer , Request request , String localNodeId , @ Nullable Throwable t ) {
310+ private void recordRequestCountMetrics (Model model , Request request , String localNodeId ) {
311+ Map <String , Object > requestCountAttributes = new HashMap <>();
312+ requestCountAttributes .putAll (modelAttributes (model ));
313+ requestCountAttributes .putAll (routingAttributes (request , localNodeId ));
314+
315+ inferenceStats .requestCount ().incrementBy (1 , requestCountAttributes );
316+ }
317+
318+ private void recordRequestDurationMetrics (
319+ Model model ,
320+ InferenceTimer timer ,
321+ Request request ,
322+ String localNodeId ,
323+ @ Nullable Throwable t
324+ ) {
311325 try {
312326 Map <String , Object > metricAttributes = new HashMap <>();
313327 metricAttributes .putAll (modelAttributes (model ));
@@ -383,19 +397,19 @@ protected void next(ChunkedToXContent item) {
383397
384398 @ Override
385399 public void onError (Throwable throwable ) {
386- recordMetrics (model , timer , request , localNodeId , throwable );
400+ recordRequestDurationMetrics (model , timer , request , localNodeId , throwable );
387401 super .onError (throwable );
388402 }
389403
390404 @ Override
391405 protected void onCancel () {
392- recordMetrics (model , timer , request , localNodeId , null );
406+ recordRequestDurationMetrics (model , timer , request , localNodeId , null );
393407 super .onCancel ();
394408 }
395409
396410 @ Override
397411 public void onComplete () {
398- recordMetrics (model , timer , request , localNodeId , null );
412+ recordRequestDurationMetrics (model , timer , request , localNodeId , null );
399413 super .onComplete ();
400414 }
401415 }
0 commit comments