Yes. That's what I wanted to tell. Even in AS context, will the clients for JAX-RS services send a "useful" User-Agent header? I haven't included the "UA Parser" in the HTTP Monitoring Interceptor. I can include it and it will add another dependency to MSS. However I want to know whether parsing User-Agent is really necessary for Microservices or any service endpoints, which are not accessed through a web browser.
Please note that the country and language are taken from request "Locale". As I understand, there is no way to get these details also. On Mon, Nov 23, 2015 at 11:41 AM, Sagara Gunathunga <sag...@wso2.com> wrote: > > > On Mon, Nov 23, 2015 at 10:59 AM, Sumedha Rubasinghe <sume...@wso2.com> > wrote: > >> >> >> On Fri, Nov 20, 2015 at 5:20 PM, Isuru Perera <isu...@wso2.com> wrote: >> >>> As I mentioned, in Tomcat Valve, we get some details from the User-Agent >>> header. >>> >>> See following code from WebAppMonitoringPublisherValve.java >>> <https://github.com/wso2/carbon-deployment/blob/master/components/monitoring/org.wso2.carbon.as.monitoring/src/main/java/org/wso2/carbon/as/monitoring/collector/http/WebAppMonitoringPublisherValve.java#L250-L256> >>> >>> >>> >>> >>> >>> >>> *Client readableUserAgent = >>> uaParser.parse(userAgent);webappMonitoringEvent.setUserAgentFamily(readableUserAgent.userAgent.family);webappMonitoringEvent.setUserAgentVersion(readableUserAgent.userAgent.major);webappMonitoringEvent.setOperatingSystem(readableUserAgent.os.family);webappMonitoringEvent.setOperatingSystemVersion(readableUserAgent.os.major);webappMonitoringEvent.setDeviceCategory(readableUserAgent.device.family);* >>> >>> We can access headers from Netty request, but the real question is >>> whether the Microservices clients will send a User-Agent header similar to >>> the header sent by a Browser. >>> >> >> Isuru, >> If this is about client not setting header values, that problem has >> nothing to do with MicroServices. right? >> It can be the same for any JAX-RS hosted on AS. >> > > Yes, here nothing to do with Microservices, even in same dashboard under > AS context won't work in case client don't send those headers and we really > can't do anything further. > > Thanks ! > >> >> >>> >>> In the valve, other details are taken from the request object. >>> >>> With Netty, we should be able to get the remote address from the Netty >>> Channel. However, I couldn't find a way to access the channel from our >>> HTTPMonitoringInterceptor >>> <https://github.com/wso2/product-mss/blob/v1.0.0-alpha/carbon-mss/components/org.wso2.carbon.mss/src/main/java/org/wso2/carbon/mss/httpmonitoring/HTTPMonitoringInterceptor.java>. >>> In addition the Tomcat Value gets language and country from Locale >>> <https://github.com/wso2/carbon-deployment/blob/master/components/monitoring/org.wso2.carbon.as.monitoring/src/main/java/org/wso2/carbon/as/monitoring/collector/http/WebAppMonitoringPublisherValve.java#L208-L209>. >>> >>> >>> <https://github.com/wso2/product-mss/blob/v1.0.0-alpha/carbon-mss/components/org.wso2.carbon.mss/src/main/java/org/wso2/carbon/mss/httpmonitoring/HTTPMonitoringInterceptor.java> >>> >>> Even here, can we expect these details in Microservices context? >>> >>> >>> On Fri, Nov 20, 2015 at 4:51 PM, Sagara Gunathunga <sag...@wso2.com> >>> wrote: >>> >>>> >>>> What we have in AS is not AS specific dashboard, it's a HTTP dashboard >>>> and possible to use with anywhere related to HTTP monitoring. As we >>>> discussed we need some sophisticated dashboards for MSS but >>>> HTTP monitoring is something basic and essential for MSS as well, >>>> HTTP monitoring is a very basic requirement for any service or app. >>>> >>>> As I understood current problem is, it's not possible to extract some >>>> of the HTTP request headers from Netty in order to render some parts of >>>> above dashboard, IMHO we need to find a way to exact all HTTP headers from >>>> Netty. >>>> >>>> Can you list down list of required HTTP headers that we can't extract >>>> from current API ? May be Kasun can help out here. >>>> >>>> Thanks ! >>>> >>>> On Fri, Nov 20, 2015 at 4:05 PM, Isuru Perera <isu...@wso2.com> wrote: >>>> >>>>> Hi all, >>>>> >>>>> For the MSS alpha release, we used the HTTP Monitoring Dashboard used >>>>> in WSO2 AS product and we implemented an HTTP Monitoring Interceptor for >>>>> MSS [1]. >>>>> >>>>> However, with MSS we don't get all data required by the standard HTTP >>>>> Monitoring Dashboard. For example, in the Tomcat Valve for AS [2], we have >>>>> used the User-Agent header to get client details (Browser, OS & Device). >>>>> The Tomcat Request object has all other necessary details (Remote IP, >>>>> Locale etc) >>>>> >>>>> In our interceptor [3], we use the Netty HTTP Request object and the >>>>> Java Reflection details to get details for the monitoring event. >>>>> >>>>> Since these details are not enough for the HTTP Monitoring Dashboard, >>>>> we need to think of using an MSS specific dashboard. >>>>> >>>>> WDYT? >>>>> >>>>> With regarding to Metrics annotations, we have to create some gadgets >>>>> in DAS. We need to have a discussion on this. >>>>> >>>>> Thanks! >>>>> >>>>> Best Regards, >>>>> >>>>> [1] https://github.com/wso2/product-mss/pull/31 >>>>> [2] >>>>> https://github.com/wso2/carbon-deployment/blob/master/components/monitoring/org.wso2.carbon.as.monitoring/src/main/java/org/wso2/carbon/as/monitoring/collector/http/WebAppMonitoringPublisherValve.java >>>>> [3] >>>>> https://github.com/wso2/product-mss/blob/v1.0.0-alpha/carbon-mss/components/org.wso2.carbon.mss/src/main/java/org/wso2/carbon/mss/httpmonitoring/HTTPMonitoringInterceptor.java >>>>> >>>>> -- >>>>> Isuru Perera >>>>> Associate Technical Lead | WSO2, Inc. | http://wso2.com/ >>>>> Lean . Enterprise . Middleware >>>>> >>>>> about.me/chrishantha >>>>> Contact: +IsuruPereraWSO2 >>>>> <https://www.google.com/+IsuruPereraWSO2/about> >>>>> >>>> >>>> >>>> >>>> -- >>>> Sagara Gunathunga >>>> >>>> Architect; WSO2, Inc.; http://wso2.com >>>> V.P Apache Web Services; http://ws.apache.org/ >>>> Linkedin; http://www.linkedin.com/in/ssagara >>>> Blog ; http://ssagara.blogspot.com >>>> >>>> >>> >>> >>> -- >>> Isuru Perera >>> Associate Technical Lead | WSO2, Inc. | http://wso2.com/ >>> Lean . Enterprise . Middleware >>> >>> about.me/chrishantha >>> Contact: +IsuruPereraWSO2 >>> <https://www.google.com/+IsuruPereraWSO2/about> >>> >> >> >> >> -- >> /sumedha >> m: +94 773017743 >> b : bit.ly/sumedha >> > > > > -- > Sagara Gunathunga > > Architect; WSO2, Inc.; http://wso2.com > V.P Apache Web Services; http://ws.apache.org/ > Linkedin; http://www.linkedin.com/in/ssagara > Blog ; http://ssagara.blogspot.com > > -- Isuru Perera Associate Technical Lead | WSO2, Inc. | http://wso2.com/ Lean . Enterprise . Middleware about.me/chrishantha Contact: +IsuruPereraWSO2 <https://www.google.com/+IsuruPereraWSO2/about>
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture