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.

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 <[email protected]> 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 <[email protected]> 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>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to