Graphing Uptime

I am trying to find a way to graph uptime. What is the traditional way to graph the uptime of a device? If the device provides an uptime statistic, how should that be used to graph it. I know how a constantly increasing number can be graphed, or how to graph something like bandwidth usage, but uptime has me stumped.

-

migrated from superuser.comAug 28 '11 at 22:57

This question came from our site for computer enthusiasts and power users.

Do you mean that your device just tells you "I have been up for xxxx hours or days" and then resets this counter if it's been restarted? Can you tell us more about the tool that is capturing this metric? Is it something like Nagios or Zabbix? – Kev Aug 29 '11 at 12:40
What question are you trying to answer? – Alex Feinman Aug 29 '11 at 16:07

Graphs are for showing collections of data that has at least two interesting properties (which go on the axes). Uptime is a data point, so a graph does not seem well-suited to the task of displaying that. As @polynomial said, a counter is the usual answer here.

If you have other date for that time period -- number of processes, CPU utilization, or whatever else is interesting to you -- you could graph that over time using either a line or bars; a break in the line or absence of bars for a period of time means the system was down.

-

I think it really depends on what you want to show with your graph:

1. General stats on how reliable your system is: Show uptime/downtime percentage (pie chart, segementend bar etc.) since start or last 365 days or 30 days etc.
2. Brag with (hopefully) good uptime: Number of days or hours since last downtime (no graph needed)
3. System is up/down at the moment: No graph needed, just use a green or red area with text

I'm not really sure if this answers your question though... maybe some clarification of your goals would help.

-

In every monitoring system I've used uptime is graphed as a counter. Usually showing a growing 'number of days up' graph. While this may seem sort of plain it actually provides nice patterns for investigating issues.

-

I can see several ways in which a graph of uptime can be useful. But be wary of the difference between uptime and availability.

Inspection of uptime in terms of availability on days may be of interest where there has actually been a problem in which case something like a graph of percentage uptime per hour may be of interest. Over a longer period than a week say, dips in uptime are likely to be very short unless there has been a significant outage, but nevertheless this is the sort of graph used by services at Pingdom.

That sort of graph might be useful as a quick overview, but chances are it probably doesn't tell you an awful lot more than you know. You'll probably be more interested in the total calculated uptime over a period of time - e.g. 99.6% uptime.

But a more interesting graph in terms of analysing the uptime as time since reboot (for a single machine/server) might be a 90 day rolling average of the time since last reboot - eg as used by Netcraft where they combine this information with daily readings which are colour coded depending on changes in the server OS version, for example - or whatever other change in the system may be relevant.

This latter graph would allow you to determine whether a change to the system affected the uptime in some way - and that is going to be more valuable than just a plain linear graph of uptime which does nothing more useful than plot the results.

Graphs should help you see what's going on - avoid plotting graphs for graphs sake, which throw information out, asking the user to analyse the results.

-