What timezone are the usage graphs for a droplet?

June 11, 2016 5.1k views
DigitalOcean Monitoring

When I log into the dashboard for drop lets, select a drop and view the graphs for bandwidth, cpu and disk. It doesn't match my EST timezone.

Is there a way to change this so that the graphs are shown in EST?

6 comments
  • I also want to be able to change the timezone!

  • I also need this

  • I agree, this would be a great feature.

  • my brain work better with local time too. it is not easy to read with GMT time.

  • Really would like to see this implemented as well. One would think the default at least would match where the data center is. If I've got a NYC droplet, I'd expect it to be in ET.

  • Why not pull the time set on the server as the time for the graph? That way devs can set the time on the server and have it reflect usage stats in a personal to server manner.

6 Answers
kainoack August 15, 2016
Accepted Answer

The developers could implement this frontend by jquery. Just let the user choose his timezone by a dropdown, and transfer the time stamps on the graphs.

Momentjs is great for converting timestamps.

The time stamps are put in tspan:

<tspan x="0" dy=".71em" dx="0">07:51 AM</tspan>

Jquery to get the AM/PM timestamps with the current DOM:

$('tspan:contains("AM"), tspan:contains("PM")').each( function(){ 
   console.log($(this).text()) 
});

And now we could use the magic of momentjs:

$.getScript( "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js" );
$.getScript( "https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone.min.js" )
.done(function( script, textStatus ) {
   $('tspan:contains("AM"), tspan:contains("PM")').each( function(){ 
      var time_am_pm = $(this).text(); 
      var dt_hour = moment(time_am_pm, ["h:mm A"]).format("HH");
      var dt_min = moment(time_am_pm, ["h:mm A"]).format("mm");
      var now = moment();
      var date = now.set({ hour: parseInt(dt_hour, 10), minute: parseInt(dt_min , 10) }).toDate();
      // not working: 
         // var usertimezone = 'Europe/Berlin';
         // var newtime = moment(date).tz(usertimezone ).format('HH:mm');
      // hour offset - use what you need here!
      var newtime = moment(date).add(2, 'hours').format('HH:mm'); 
      $(this).text(newtime);
   });
});

Before: http://i.imgur.com/f0qjoZ0.png
Afterwards: http://i.imgur.com/1CGND8X.png

Bookmarklet:

You can create a bookmarklet that does the job:

  1. Create a link.
  2. Edit the link and replace the URL with this one liner:
javascript:(function(e,a,g,h,f,c,b,d){if(!(f=e.jQuery)||g>f.fn.jquery||h(f)){c=a.createElement("script");c.type="text/javascript";c.src="https://code.jquery.com/jquery-latest.js";c.onload=c.onreadystatechange=function(){if(!b&&(!(d=this.readyState)||d=="loaded"||d=="complete")){h((f=e.jQuery).noConflict(1),b=1);f(c).remove()}};a.documentElement.childNodes[0].appendChild(c)}})(window,document,"1.3.2",function($,L){ $.getScript( "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js" ); $.getScript( "https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone.min.js" ).done(function( script, textStatus ) { $('tspan:contains("AM"), tspan:contains("PM")').each( function(){ var time_am_pm = $(this).text(); var dt_hour = moment(time_am_pm, ["h:mm A"]).format("HH"); var dt_min = moment(time_am_pm, ["h:mm A"]).format("mm"); var now = moment(); var date = now.set({ hour: parseInt(dt_hour, 10), minute: parseInt(dt_min , 10) }).toDate(); var newtime = moment(date).add(2, 'hours').format('HH:mm');$(this).text(newtime); }); }); });

Click the link when you are on Digital Ocean's graph site!

It looks like it defaults to GMT time.
I would also like to modify my timezone to match the local time.
I don't know how to change it either.

[deleted]
[deleted]
[deleted]
  • This is not an answer...leave a comment instead.

    • You are right :)
      But anyways, maybe it's more visible to the DO team if we "answer" instead of "comment"... because as you can see, we really need this feature ;)

      • Or you create a false positive suggesting several people have "answered" the question and so DO do not need to address the issue. You could also submit a support ticket, which would get their attention.

Have another answer? Share your knowledge.