Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Monitoring (RRD) graphs have bugs

    Scheduled Pinned Locked Moved webGUI
    20 Posts 11 Posters 5.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      seidler2547
      last edited by

      You are probably aware of that, but the new Monitoring graphs are pretty buggy for me. Most of the time, I manage to get two or three graphs drawn, then they will sometimes not show any legend (or mouseovers), eventually they will not draw at all.

      Here are two screenshots. I set the WAN quality as default, it just about draws. When I open the settings and hit update Graphs, I get the blank graph. After that, no graphs will work - need to log out and in again.

      The data is fine, I can download the CSV and it will show all the data.

      This is a pfSense 2.3.2 on i386, updated all the way from 1.2.3 through almost all versions in between.

      Stefan
      ![Screenshot - 19.08.2016 - 13:02:54.png](/public/imported_attachments/1/Screenshot - 19.08.2016 - 13:02:54.png)
      ![Screenshot - 19.08.2016 - 13:02:54.png_thumb](/public/imported_attachments/1/Screenshot - 19.08.2016 - 13:02:54.png_thumb)
      ![Screenshot - 19.08.2016 - 13:03:15.png](/public/imported_attachments/1/Screenshot - 19.08.2016 - 13:03:15.png)
      ![Screenshot - 19.08.2016 - 13:03:15.png_thumb](/public/imported_attachments/1/Screenshot - 19.08.2016 - 13:03:15.png_thumb)

      1 Reply Last reply Reply Quote 0
      • jdillardJ
        jdillard
        last edited by

        what browser and OS are you using?

        1 Reply Last reply Reply Quote 0
        • johnpozJ
          johnpoz LAYER 8 Global Moderator
          last edited by

          I for sure am not seeing this behavior.. I am using 2.3.2 64bit with firefox..  Such an issue points more to the browser than anything with pfsense..

          An intelligent man is sometimes forced to be drunk to spend time with his fools
          If you get confused: Listen to the Music Play
          Please don't Chat/PM me for help, unless mod related
          SG-4860 24.11 | Lab VMs 2.8, 24.11

          1 Reply Last reply Reply Quote 0
          • jahonixJ
            jahonix
            last edited by

            @seidler2547:

            on i386

            Does your hardware support 64bit operation? AFAIK it's highly recommended to swap architecture if possible.
            Development takes place mostly (if not only) in the 64bit domain, therefore it's tested much more intense. And pfSense i386 won't be around for too long anymore.

            But that doesn't solve your problems just yet, I know.

            1 Reply Last reply Reply Quote 0
            • stan-qazS
              stan-qaz
              last edited by

              Interesting, my Chrome, Chromium, Firefox and Konqueror all work, however the latest beta of Brave (shields up or down) does not show the table or mouse-over info.

              1 Reply Last reply Reply Quote 0
              • jdillardJ
                jdillard
                last edited by

                @stan-qaz:

                however the latest beta of Brave (shields up or down) does not show the table or mouse-over info.

                This is a tongue-in-cheek tweet from an engineer at Brave :P

                https://twitter.com/bcrypt/status/766071991870689280

                They have some smart people working there, they will most likely have it working by the time it gets out of beta status.

                1 Reply Last reply Reply Quote 0
                • N
                  NOYB
                  last edited by

                  Windows 8.1, IE11, i386 2.3.2.  Not seeing that issue here.

                  1 Reply Last reply Reply Quote 0
                  • S
                    seidler2547
                    last edited by

                    Thanks for the replies. I tested this in Firefox and Chrome on Linux. I've been thinking about switching to amd64, but I need to coordinate with our hosting provider and the remote sites, so that'll take some time.

                    I just tested this on a Firefox on a Windows machine and it's the same behaviour. I agree that it's most likely the browser botching up, but it seems the root cause is some data sent from pfSense. I haven't tested this extensively yet, but my memory tells me this also happened on a new amd64 install after playing around (i.e. changing paramaters) for long enough.

                    What else can I do to get to the bottom of this? Anyone wants my RRD files to test with?

                    Stefan

                    1 Reply Last reply Reply Quote 0
                    • johnpozJ
                      johnpoz LAYER 8 Global Moderator
                      last edited by

                      what would you hosting provider and or remote sites have to do with your copy of pfsense being 64 or 32bit?  That makes no sense?  Is this pfsense hosted somewhere and your accessing it via internet or something??

                      An intelligent man is sometimes forced to be drunk to spend time with his fools
                      If you get confused: Listen to the Music Play
                      Please don't Chat/PM me for help, unless mod related
                      SG-4860 24.11 | Lab VMs 2.8, 24.11

                      1 Reply Last reply Reply Quote 0
                      • S
                        seidler2547
                        last edited by

                        @johnpoz:

                        what would you hosting provider and or remote sites have to do with your copy of pfsense being 64 or 32bit?  That makes no sense?  Is this pfsense hosted somewhere and your accessing it via internet or something??

                        Yes, it's a VMware virtual machine and it's the central hub to all our remote offices.

                        It was initially (when 1.2.3 was the most recent version) set up as 32-bit because we thought that's enough. To change it we would need to contact the datacenter admins to change the VM type or to set up a new VM and then replace it. Requires a migration plan etc. for minimal downtime.

                        Stefan

                        1 Reply Last reply Reply Quote 0
                        • johnpozJ
                          johnpoz LAYER 8 Global Moderator
                          last edited by

                          So is the box your testing this from on the same network as the pfsense interface your hitting?  Or is there stuff in between? Are you on some VM on the same layer 2 as the pfsense lan interface that your hitting the webgui from?  Are you at some remote site using proxy to access pfsense wan IP that you allowed??

                          An intelligent man is sometimes forced to be drunk to spend time with his fools
                          If you get confused: Listen to the Music Play
                          Please don't Chat/PM me for help, unless mod related
                          SG-4860 24.11 | Lab VMs 2.8, 24.11

                          1 Reply Last reply Reply Quote 0
                          • jdillardJ
                            jdillard
                            last edited by

                            @seidler2547:

                            What else can I do to get to the bottom of this? Anyone wants my RRD files to test with?

                            Stefan

                            In Chrome you can right click the page and choose "Inspect" and then select the "Console" tab to see if you have any errors.

                            1 Reply Last reply Reply Quote 0
                            • S
                              seidler2547
                              last edited by

                              Ah, why didn't I think of this before. Thanks for the reminder. This is what I get in Firefox:

                              TypeError: n is undefined
                              t()
                              d3.min.js:1
                              draw_graph/status_monitoring.php:998
                              Co.text/<()
                              d3.min.js:3
                              Co.each/<()
                              d3.min.js:3
                              Y()
                              d3.min.js:1
                              Co.each()
                              d3.min.js:3
                              Co.text()
                              d3.min.js:3
                              n/<()
                              d3.min.js:5
                              Yl.each/<()
                              d3.min.js:5
                              Y()
                              d3.min.js:1
                              Yl.each()
                              d3.min.js:5
                              n()
                              d3.min.js:5
                              Co.call()
                              d3.min.js:3
                              chart/<()
                              nv.d3.js:1626
                              Yl.each/<()
                              d3.min.js:5
                              Y()
                              d3.min.js:1
                              Yl.each()
                              d3.min.js:5
                              chart()
                              nv.d3.js:1610
                              Co.call()
                              d3.min.js:3
                              chart/<()
                              nv.d3.js:9569
                              Yl.each/<()
                              d3.min.js:5
                              Y()
                              d3.min.js:1
                              Yl.each()
                              d3.min.js:5
                              chart()
                              nv.d3.js:9377
                              Co.call()
                              d3.min.js:3
                              draw_graph/status_monitoring.php:1143
                              render/renderLoop()
                              nv.d3.js:99
                              d3.min.js:1:14696
                              
                              

                              Whereas Chrome says:

                              
                              Uncaught TypeError: Cannot read property 'length' of undefinedt @ d3.min.js:1(anonymous function) @ status_monitoring.php:998arguments.length.each.function.n.textContent @ d3.min.js:3(anonymous function) @ d3.min.js:3Y @ d3.min.js:1Co.each @ d3.min.js:3Co.text @ d3.min.js:3(anonymous function) @ d3.min.js:5(anonymous function) @ d3.min.js:5Y @ d3.min.js:1Yl.each @ d3.min.js:5n @ d3.min.js:5Co.call @ d3.min.js:3(anonymous function) @ nv.d3.js:1626(anonymous function) @ d3.min.js:5Y @ d3.min.js:1Yl.each @ d3.min.js:5chart @ nv.d3.js:1610Co.call @ d3.min.js:3(anonymous function) @ nv.d3.js:9570(anonymous function) @ d3.min.js:5Y @ d3.min.js:1Yl.each @ d3.min.js:5chart @ nv.d3.js:9377Co.call @ d3.min.js:3(anonymous function) @ status_monitoring.php:1147renderLoop @ nv.d3.js:99
                              

                              Our remote sites (one of which I am at) are connected through OpenVPN in star topology. But I also tested on a Windows VM in the same LAN as the pfSense and it's the same.

                              Stefan

                              1 Reply Last reply Reply Quote 0
                              • F
                                fostytou
                                last edited by

                                I just want to follow up that I'm having the same issue.  2.3 and 2.3.1 seemed to work fine with the new charting system and I was able to play around without issue.  2.3.2 presents itself just the same - I can see the initial graph but if I refresh or update settings it disappears with the length error in chrome with this section underlined:

                                =n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=e(r,n,t,0);if(i!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var u=null!=r.Z&&va!==Hn,o=new(u?Hn:va);return"j"in r?o.setFullYear(r.y,0,r.j):"W"in r||"U"in r?("w"in r||(r.w="W"in r?1:0),o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),u?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var i,u,o,a=0,l=t.length,c=e.length;l>a;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e<r;)t.set(n[e].tolowercase(),e);return t}function="" $n(n,t,e){ma.lastindex="0;var" r="ma.exec(t.slice(e,e+1));return" r?(n.w="+r[0],e+r[0].length):-1}function" bn(n,t,e){ma.lastindex="0;var" r?(n.u="+r[0],e+r[0].length):-1}function" wn(n,t,e){ma.lastindex="0;var" jn(n,t,e){ma.lastindex="0;var" r?(n.y="+r[0],e+r[0].length):-1}function" gn(n,t,e){ma.lastindex="0;var" kn(n,t,e){return="" ^[+-]\d{4}$="" .test(t="t.slice(e,e+5))?(n.Z=-t,e+5):-1}function" qn(n){return="" n+(n="">68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var="" e="0,r=n[e];!r[1](t);)r=n[++e];return" r[0](t)}}function="" ft(){}function="" st(n,t,e){var="" r="e.s=n+t,i=r-n,u=r-i;e.t=n-u+(t-i)}function" ht(n,t){n&&wa.hasownproperty(n.type)&&wa[n.type](n,t)}function="" pt(n,t,e){var="" r,i="-1,u=n.length-e;for(t.lineStart();++i<u;)r=n[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function" gt(n,t){var="" vt(){function="" n(n,t){n*="Yo,t=t*Yo/2+Fo/4;var">=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])<uo&&xo(n[1]-t[1])<uo}function st(n,t){n*="Yo;var" e="Math.cos(t*=Yo);kt(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function" kt(n,t,e){++ea,ca+="(n-Ca)/Ea,za+=(t-za)/Ea,La+=(e-La)/Ea}function" nt(){function="" n(n,i){n*="Yo;var" u="Math.cos(i*=Yo),o=u*Math.cos(n),a=u*Math.sin(n),l=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*l-r*a)*c+(c=r*o-t*l)*c+(c=t*a-e*o)*c),t*o+e*a+r*l);Aa+=c,qa+=c*(t+(t=o)),Ta+=c*(e+(e=a)),Ra+=c*(r+(r=l)),kt(t,e,r)}var" t,e,r;ja.point="function(i,u){i*=Yo;var" o="Math.cos(u*=Yo);t=o*Math.cos(i),e=o*Math.sin(i),r=Math.sin(u),ja.point=n,kt(t,e,r)}}function" et(){ja.point="St}function" at(){function="" n(n,t){n*="Yo;var" t,e,r,i,u;ja.point="function(o,a){t=o,e=a,ja.point=n,o*=Yo;var" l="Math.cos(a*=Yo);r=l*Math.cos(o),i=l*Math.sin(o),u=Math.sin(a),kt(r,i,u)},ja.lineEnd=function(){n(t,e),ja.lineEnd=Et,ja.point=St}}function" ct(n,t){function="" e(e,r){return="" n.invert&&t.invert&&(e.invert="function(e,r){return" zt(){return!0}function="" lt(n,t,e,r,i){var="" t,e="n[0],r=n[t];if(wt(e,r)){i.lineStart();for(var" a="0;t">a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r<t;)i.n=e=n[r],e.p=i,i=e;i.n=e=n[0],e.p=i}}function tt(n,t,e,r){this.x="n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function" rt(n,t,e,r){return="" function(i,u){function="" o(t,e){var="" r="i(t,e);n(t=r[0],e=r[1])&amp;&amp;u.point(t,e)}function" a(n,t){var="" e="i(n,t);d.point(e[0],e[1])}function" l(){m.point="a,d.lineStart()}function" c(){m.point="o,d.lineEnd()}function" f(n,t){v.push([n,t]);var="" s(){x.linestart(),v="[]}function" h(){f(v[0][0],v[0][1]),x.lineend();var="" n,t="x.clean(),e=M.buffer(),r=e.length;if(v.pop(),g.push(v),v=null,r)if(1&amp;t){n=e[0];var" i,r="n.length-1,o=-1;if(r">0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o<r;)u.point((i=n[o])[0],i[1]);u.lineend()}}else r="">1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)<uo?(n.point(e,r=(r+o) 2="">0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)<uo&&(e-=i*uo),xo(u-a)<uo&&(u-=a*uo),r=ft(e,r,u,o),n.point(i,r),n.lineend(),n.linestart(),n.point(a,r),t=0),n.point(e=u,r=o),i=a},lineend:function(){n.lineend(),e=r=nan},clean:function(){return 2-t}}}function="" ft(n,t,e,r){var="" i,u,o="Math.sin(n-e);return" xo(o)="">Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]<t[0]?fo:-fo;i=e*u 2,r.point(-u,i),r.point(0,i),r.point(u,i)}else="" r.point(t[0],t[1])}function="" ot(n,t){var="" e="n[0],r=n[1],i=[Math.sin(e),-Math.cos(e),0],u=0,o=0;ka.reset();for(var" a="0,l=t.length;l">a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)<uo,c=a||uo>E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)<uo?k:n):k<=b[1]&&b[1]<=n:e>Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)<uo?i>0?0:3:xo(r[0]-e)<uo?i>0?2:1:xo(r[1]-t)<uo?i>0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){
                                
                                It appears I see the same problem in Microsoft Edge 38.14393.0.0.[/i][/i]</uo?i></uo?i></uo?i></uo?k:n):k<=b[1]&&b[1]<=n:e></uo,c=a||uo></t[0]?fo:-fo;i=e*u></uo&&(e-=i*uo),xo(u-a)<uo&&(u-=a*uo),r=ft(e,r,u,o),n.point(i,r),n.lineend(),n.linestart(),n.point(a,r),t=0),n.point(e=u,r=o),i=a},lineend:function(){n.lineend(),e=r=nan},clean:function(){return></uo?(n.point(e,r=(r+o)></r;)u.point((i=n[o])[0],i[1]);u.lineend()}}else></t;)i.n=e=n[r],e.p=i,i=e;i.n=e=n[0],e.p=i}}function></uo&&xo(n[1]-t[1])<uo}function></t;)n[e][0]=this(n[e][0]);return></r;)t.set(n[e].tolowercase(),e);return>
                                
                                1 Reply Last reply Reply Quote 0
                                • F
                                  fostytou
                                  last edited by

                                  I played with the monitoring screen again and was able to get past the display hangup (kinda).  If I set the default to quality and 1 month time period I have the problem, however if I set it to 2 days as a default I do not have the problem (until I select 1 month).  1 week only partially works and does not draw grid lines or axis' and then breaks the ability to change other settings as well.  I think this may be a problem with the template for the 1 month setting, but I also wonder if there is some corrupted quality data that is causing the draw problem.

                                  I think they come from different data pools but the 3 month setting in the drop-down seems to work fine.

                                  So, the workaround for now might be to just select a different default value than you are using.

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    arion_p
                                    last edited by

                                    This is the same issue I have described in https://forum.pfsense.org/index.php?topic=119175.0

                                    The cause seems to be that sometimes the step value returned from the XHR call (to rrd_fetch_json.php) is half of what it should be. The client (javascript) code looks up this value in a constant array to determine the rest of the settings but this value does not exist in the array causing the issue.

                                    Notice that the step returned from rrd_fetch_json.php is actually read from the RRD data, so it is probably an issue with RRD data collection (or interpretaion)

                                    1 Reply Last reply Reply Quote 0
                                    • jdillardJ
                                      jdillard
                                      last edited by

                                      Nice detective work! I created a redmine ticket and assigned it to myself: https://redmine.pfsense.org/issues/6860

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        bekefigabor
                                        last edited by

                                        Thanks Jarod!
                                        I tested your fix https://github.com/pfsense/FreeBSD-ports/commit/5288d76204e51a289c31d249f1cbd1174a4a9eca, it works great!
                                        But the same problem appears in Quality graph (1 week period), with 1800 step value.
                                        rrd_fetch_json.php response:

                                        
                                        ...
                                                "key": "packet loss",
                                                "step": 1800,
                                                "last_updated": 1484999085000,
                                        ...
                                        
                                        

                                        Gabor

                                        1 Reply Last reply Reply Quote 0
                                        • A
                                          ali1yilmaz
                                          last edited by

                                          thanks

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            doktornotor Banned
                                            last edited by

                                            https://github.com/pfsense/FreeBSD-ports/pull/432

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.