@@ -870,6 +870,7 @@ private void handleTokenRefreshV1(RoutingContext rc) {
870870 try {
871871 final RefreshResponse r = this .refreshIdentity (rc , refreshToken );
872872 siteId = rc .get (Const .RoutingContextData .SiteId );
873+ recordOperatorServedSdkUsage (siteId , rc , rc .request ().headers ().get (Const .Http .ClientVersionHeader ));
873874 if (!r .isRefreshed ()) {
874875 if (r .isOptOut () || r .isDeprecated ()) {
875876 ResponseUtil .SuccessNoBody (ResponseStatus .OptOut , rc );
@@ -894,6 +895,14 @@ private void handleTokenRefreshV1(RoutingContext rc) {
894895 }
895896 }
896897
898+ public void recordOperatorServedSdkUsage (Integer siteId , RoutingContext rc , String clientVersion ) {
899+ _clientVersionCounters .computeIfAbsent (new Tuple .Tuple2 <>(Integer .toString (siteId ), clientVersion ), tuple -> Counter
900+ .builder ("uid2.client_sdk_versions" )
901+ .description ("counter for how many http requests are processed per each operator-served sdk version" )
902+ .tags ("site_id" , tuple .getItem1 (), "client_version" , tuple .getItem2 ())
903+ .register (Metrics .globalRegistry )).increment ();;
904+ }
905+
897906 private void handleTokenRefreshV2 (RoutingContext rc ) {
898907 Integer siteId = null ;
899908 TokenResponseStatsCollector .PlatformType platformType = TokenResponseStatsCollector .PlatformType .Other ;
@@ -905,6 +914,7 @@ private void handleTokenRefreshV2(RoutingContext rc) {
905914 String tokenStr = (String ) rc .data ().get ("request" );
906915 final RefreshResponse r = this .refreshIdentity (rc , tokenStr );
907916 siteId = rc .get (Const .RoutingContextData .SiteId );
917+ recordOperatorServedSdkUsage (siteId , rc , rc .request ().headers ().get (Const .Http .ClientVersionHeader ));
908918 if (!r .isRefreshed ()) {
909919 if (r .isOptOut () || r .isDeprecated ()) {
910920 ResponseUtil .SuccessNoBodyV2 (ResponseStatus .OptOut , rc );
@@ -1169,6 +1179,7 @@ private void handleTokenRefresh(RoutingContext rc) {
11691179 sendJsonResponse (rc , toJson (r .getTokens ()));
11701180
11711181 siteId = rc .get (Const .RoutingContextData .SiteId );
1182+ recordOperatorServedSdkUsage (siteId , rc , rc .request ().headers ().get (Const .Http .ClientVersionHeader ));
11721183 if (r .isRefreshed ()) {
11731184 this .recordRefreshDurationStats (siteId , getApiContact (rc ), r .getDurationSinceLastRefresh (), rc .request ().headers ().contains (ORIGIN_HEADER ), identityExpiresAfter );
11741185 }
0 commit comments