← Back to team overview

dhis2-devs team mailing list archive

Re: Error with Usage analytics

 

I looked at one record and got this

-[ RECORD 1 ]------+------------------------
statisticsid       | 1309547
uid                | MAopqnaf393
code               |
created            | 2016-06-30 02:00:00.034
lastupdated        | 2016-06-30 02:00:00.034
chartviews         | 127
mapviews           |
reporttableviews   | 680
eventreportviews   |
eventchartviews    |
dashboardviews     | 29
datasetreportviews | 183
active_users       | 0
totalviews         | 1019
charts             | 2
maps               | 1
reporttables       | 21
eventreports       | 0
eventcharts        | 0
dashboards         | 2
indicators         | 0
users              | 2366


the field "active_users" is zero, and since
 the expression "sum(eventchartviews)/max(active_users) as
averageEventChartViews" is not safe from division by zero, this error is
resulting I guess.

Not really sure why this number would be zero. Does this really indicate
zero active users, like no one has logged into the system?

Regards,
Jason


On Mon, Jul 4, 2016 at 12:14 PM, Jason Pickering <
jason.p.pickering@xxxxxxxxx> wrote:

> Sorry about that. Let me try again.
>
> This happens when pressing "Update" after the app has loaded.
>
> On the demo site, this looks OK
>
>
> https://play.dhis2.org/demo/api/dataStatistics?startDate=2016-3-4&endDate=2016-7-4&interval=WEEK&_=1467648739291
>
> but does not work on this specific server.
>
> Regards,
> Jason
>
>
>
> On Mon, Jul 4, 2016 at 12:11 PM, Jason Pickering <
> jason.p.pickering@xxxxxxxxx> wrote:
>
>> Here is the actual URL
>>
>>
>> On Mon, Jul 4, 2016 at 10:35 AM, Halvdan Hoem Grelland <halvdan@xxxxxxxxx
>> > wrote:
>>
>>> Does this happen on loading the app or when running a specific query
>>> within it? Can you reproduce on the SL or trainingland demo db?
>>>
>>> On Mon, Jul 4, 2016 at 2:21 PM, Jason Pickering <
>>> jason.p.pickering@xxxxxxxxx> wrote:
>>>
>>>> On 2.23, revision 23038
>>>>
>>>> Getting this error when attempting to use the usage analytics app.
>>>>
>>>> org.postgresql.util.PSQLException: ERROR: division by zero
>>>> 	org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2284)
>>>> 	org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2003)
>>>> 	org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:200)
>>>> 	org.postgresql.jdbc.PgStatement.execute(PgStatement.java:424)
>>>> 	org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:321)
>>>> 	org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:284)
>>>> 	com.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(NewProxyStatement.java:35)
>>>> 	org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:454)
>>>> 	org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:404)
>>>> 	org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:470)
>>>> 	org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:480)
>>>> 	org.hisp.dhis.datastatistics.hibernate.HibernateDataStatisticsStore.getSnapshotsInInterval(HibernateDataStatisticsStore.java:71)
>>>> 	org.hisp.dhis.datastatistics.DefaultDataStatisticsService.getReports(DefaultDataStatisticsService.java:82)
>>>> 	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> 	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>> 	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>> 	java.lang.reflect.Method.invoke(Method.java:498)
>>>> 	org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
>>>> 	org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>>>> 	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>>>> 	org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
>>>> 	org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
>>>> 	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
>>>> 	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>>>> 	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
>>>> 	com.sun.proxy.$Proxy170.getReports(Unknown Source)
>>>> 	org.hisp.dhis.webapi.controller.datastatistics.DataStatisticsController.report(DataStatisticsController.java:88)
>>>> 	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> 	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>> 	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>> 	java.lang.reflect.Method.invoke(Method.java:498)
>>>> 	org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
>>>> 	org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
>>>> 	org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
>>>> 	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:817)
>>>> 	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:731)
>>>> 	org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
>>>> 	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
>>>> 	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
>>>> 	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
>>>> 	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:859)
>>>> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
>>>> 	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
>>>> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>>>> 	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
>>>> 	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>>>> 	org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.hisp.dhis.security.filter.CorsFilter.doFilter(CorsFilter.java:90)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.hisp.dhis.security.filter.CustomAuthenticationFilter.doFilter(CustomAuthenticationFilter.java:64)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:140)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.hisp.dhis.security.filter.AutomaticAccessFilter.doFilter(AutomaticAccessFilter.java:115)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:57)
>>>> 	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
>>>> 	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>>>> 	org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
>>>> 	org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
>>>> 	org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
>>>> 	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
>>>> 	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
>>>> 	org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:87)
>>>> 	org.hisp.dhis.servlet.filter.ExcludableShallowEtagHeaderFilter.doFilterInternal(ExcludableShallowEtagHeaderFilter.java:102)
>>>> 	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>>> 	org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151)
>>>> 	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>>> 	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
>>>> 	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
>>>>
>>>>
>>>> --
>>>> Jason P. Pickering
>>>> email: jason.p.pickering@xxxxxxxxx
>>>> tel:+46764147049
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~dhis2-devs
>>>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~dhis2-devs
>>>> More help   : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>
>>>
>>> --
>>> Halvdan Hoem Grelland
>>> Software developer, DHIS 2
>>> University of Oslo
>>> http://www.dhis2.org <https://www.dhis2.org/>
>>>
>>>
>>
>>
>> --
>> Jason P. Pickering
>> email: jason.p.pickering@xxxxxxxxx
>> tel:+46764147049
>>
>
>
>
> --
> Jason P. Pickering
> email: jason.p.pickering@xxxxxxxxx
> tel:+46764147049
>



-- 
Jason P. Pickering
email: jason.p.pickering@xxxxxxxxx
tel:+46764147049

References