Code in TenantRequestMetricsTagProvider manually extracts the User Agent from the header and processes.
We also now have a well designed UserAgent class that is always non-null on the RequestContext.
This task is to update TenantRequestMetricsTagProvider to so it adds the same information to the tags it does not, but uses the UserAgent class which is where we centralize the processing. I think UserAgent.product is the same thing as the code currently extracts.
If there is no RequestContext then we should fall back to the full user agent string (not just the a part of it) and if no header use the UNKOWN_VALUE as it does now.
Code in
TenantRequestMetricsTagProvidermanually extracts the User Agent from the header and processes.We also now have a well designed
UserAgentclass that is always non-null on theRequestContext.This task is to update
TenantRequestMetricsTagProviderto so it adds the same information to the tags it does not, but uses the UserAgent class which is where we centralize the processing. I thinkUserAgent.productis the same thing as the code currently extracts.If there is no RequestContext then we should fall back to the full user agent string (not just the a part of it) and if no header use the UNKOWN_VALUE as it does now.