6000110162 2015-08-21T13:01:58-04:00 6000171367 false Graphing 7 2015-10-30T11:00:31-04:00 1 1 2015-09-24T16:19:00-04:00 0 1 Histograms Histogram visualizations in Circonus use a technique called "heat maps." A typical histogram will take many values and place them into bins, representing those bins in a bar chart or pictogram. You can also see a video describing histograms. What is a histogram? Let's assume we have a set of numbers: {11, 17, 21, 21, 23, 26, 28, 29, 31, 31, 33, 34, 36, 36, 36, 41, 42, 43, 44, 47, 49, 49, 49, 50, 51, 51, 56, 57, 63, 64, 68, 73, 74, 78, 82, 85}. We've witnessed these numbers over a period of 1 minute. (For example, let's say they are latencies on database queries in ms, or let's say they are the signal strength of connected wireless client, or let's say they are abandonment times for a website, etc.) Understanding that the average (or arithmetic mean) of these numbers is 45.25 (their sum, 1629, divided by number of elements in the set, 36) and that the standard deviation is approximately 19.06 tells us something about the data set. However, these number can be quite misleading. The standard deviation has strong and telling properties on normal distributions of data. Real data, in complex systems, rarely presents itself as a normal distribution.   To better understand the distribution, we can use histograms. By taking the above data and placing numbers in bins of 5 ([10-15], [15-20], [20-25], etc.), we can then plot the count of samples in each bin. We arrive at a traditional histogram. This classic histogram is illustrated to the right. This histogram shows the population distribution of the data in question. Within Circonus, we wish to show this richness of data with time as an added dimension. This requires using a visual dimension other than height or width, so we choose color (or more specifically, saturation).   By coloring the histogram, we can provide a visual indicator based on something other than height. In the sample illustration to the left, we can see that those bins with no data [0-5) and [90-95) are white and as you progress through each bin, the color (blue in this case) is more saturated when the bin contains more samples. The darkest of the blues are for the 3 bins containing four samples each. Each bin is assigned a color saturation level according to the number of samples it contains. For the next step, we need to eliminate the use of height (so that we free up a graph dimension for the visualization of time). As you can see, if we made all of the bars in the histogram the same height, we can still see the distribution of data based on color saturation.   The darker bars here have more samples. It can take some practice to read this sort of output, but Circonus provides a heads-up display for translation to make this easy. It is clear in this histogram, that we can no longer easily tell the exact frequency values (because humans can measure spacial differences more accurately than color differences). As the height has no meaning, we can eliminate the height completely: This is often called a "sparkline" in the visualization world. This line of color points can be considered a terse visual representation of the population density of a given set of samples. Adding in time In every Circonus view, time is presented as "progressing" along a horizontal axis; left is "before" right, right is "after" left (just like a timeline). In order to show histograms over time, we need to rotate the histogram sparkline vertically. Each of these vertical color strips represents a set of samples over a period of time. Like the typical numeric graphs, that time period depends on your zoom level. If you are zoomed out to a year view, those may be 1 day periods, if you are zoomed into a window covering only an few hours, those could be 1 minute periods. Further details concerning how to understand these in Circonus graphs can be demonstrated in the context of actual histogram graphs. <h1 style="margin-top: 10px; margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 38.5px;">Histograms</h1><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">Histogram visualizations in Circonus use a technique called "heat maps." A typical histogram will take many values and place them into bins, representing those bins in a bar chart or pictogram.</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">You can also see a <a href="6000044550-video-all-about-histograms" target="">video</a> describing histograms.</p><h2 style="margin-top: 10px; margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 31.5px;">What is a histogram?</h2><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">Let's assume we have a set of numbers: {11, 17, 21, 21, 23, 26, 28, 29, 31, 31, 33, 34, 36, 36, 36, 41, 42, 43, 44, 47, 49, 49, 49, 50, 51, 51, 56, 57, 63, 64, 68, 73, 74, 78, 82, 85}. We've witnessed these numbers <span>over a period of 1 minute.</span><span> (For example, let's say they are latencies on database queries in ms, or let's say they are the signal strength of connected wireless client, or let's say they are abandonment times for a website, etc.)</span></p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">Understanding that the average (or arithmetic mean) of these numbers is 45.25 (their sum, 1629, divided by number of elements in the set, 36) and that the standard deviation is approximately 19.06 tells us something about the data set. However, these number can be quite misleading. The standard deviation has strong and telling properties on <em>normal distributions</em> of data. Real data, in complex systems, rarely presents itself as a normal distribution.</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;"><img src="https://login.circonus.com/i/accounts/docs/visualization/graphs/view/histograms/traditional_histogram.png" class="fr-dii fr-draggable"> </p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">To better understand the distribution, we can use histograms. By taking the above data and placing numbers in bins of 5 ([10-15], [15-20], [20-25], etc.), we can then plot the count of samples in each bin. We arrive at a traditional histogram. This classic histogram is illustrated to the right.</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">This histogram shows the population distribution of the data in question. Within Circonus, we wish to show this richness of data with time as an added dimension. This requires using a visual dimension other than height or width, so we choose color (or more specifically, saturation).</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;"><img src="https://login.circonus.com/i/accounts/docs/visualization/graphs/view/histograms/traditional_histogram_colored_rev1.png" class="fr-dii fr-draggable"> </p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">By coloring the histogram, we can provide a visual indicator based on something other than height. In the sample illustration to the left, we can see that those bins with no data [0-5) and [90-95) are white and as you progress through each bin, the color (blue in this case) is more saturated when the bin contains more samples. The darkest of the blues are for the 3 bins containing four samples each. Each bin is assigned a color saturation level according to the number of samples it contains.</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">For the next step, we need to eliminate the use of height (so that we free up a graph dimension for the visualization of time). As you can see, if we made all of the bars in the histogram the same height, we can still see the distribution of data based on color saturation.</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;"><img src="https://login.circonus.com/i/accounts/docs/visualization/graphs/view/histograms/histogram_color_only_rev1.png" class="fr-dii fr-draggable"> </p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">The darker bars here have more samples. It can take some practice to read this sort of output, but Circonus provides a heads-up display for translation to make this easy.</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">It is clear in this histogram, that we can no longer easily tell the exact frequency values (because humans can measure spacial differences more accurately than color differences). As the height has no meaning, we can eliminate the height completely:</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;"><img src="https://login.circonus.com/i/accounts/docs/visualization/graphs/view/histograms/histogram_flat_rev1.png" class="fr-dii fr-draggable"></p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">This is often called a "sparkline" in the visualization world. This line of color points can be considered a terse visual representation of the population density of a given set of samples.</p><h3 style="margin-top: 10px; margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24.5px;">Adding in time</h3><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;"><img src="https://login.circonus.com/i/accounts/docs/visualization/graphs/view/histograms/histogram_slice_rev1.png" class="fr-dii fr-draggable"></p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">In every Circonus view, time is presented as "progressing" along a horizontal axis; left is "before" right, right is "after" left (just like a timeline). In order to show histograms over time, we need to rotate the histogram sparkline vertically. Each of these vertical color strips represents a set of samples over a period of time. Like the typical numeric graphs, that time period depends on your zoom level.</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">If you are zoomed out to a year view, those may be 1 day periods, if you are zoomed into a window covering only an few hours, those could be 1 minute periods.</p><p style="margin-bottom: 10px; font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px;">Further details concerning how to understand these in Circonus graphs can be demonstrated in the context of actual histogram graphs.</p> 6000171367 389 6000066887 2017-09-20T16:56:50-04:00 6003235491 1 2 0 1 Histogram overview 2016-03-10T16:06:32-05:00 6003235491 1 2015-09-24T19:14:00-04:00 0 1 If you have offices or datacenters in timezones different from your account timezone, you can display a list of those timezones to easily reference the time differences between the zones. These are set at the account level, on the Account Profile page. To view them, click the account timezone (with the clock icon) in the site header on any page, and they will be shown in the left sidebar. They are sticky, so they will remain showing in your current browser on every page until you hide them again. <p>If you have offices or datacenters in timezones different from your account timezone, you can display a list of those timezones to easily reference the time differences between the zones.</p> <p><br></p> <p>These are set at the account level, on the Account Profile page. To view them, click the account timezone (with the clock icon) in the site header <span>on any page</span><span>, and they will be shown in the left sidebar. They are sticky, so they will remain showing in your current browser on every page until you hide them again.</span></p> 6000171367 61 6000066975 2015-12-07T16:32:00-05:00 6003235491 2 2 0 1 How can I view a different timezone? 2015-09-24T19:14:00-04:00 6003235491 1 2015-09-24T05:43:25-04:00 0 1 A Circonus histogram is represented as a list of buckets. From a mathematical perspective, in Circonus, these buckets consist of the following data: A bucket is a pair of a bucket_boundary and a bucket_count.   The bucket_count is an unsigned 64-bit integer The bucket_bound is a float value that can be represented as: bucket_bound = x * 10^e where x is one of the following float values: x = -9.9, -9.8, -9.7 .. -1.1, -1.0, 0, 1.0, 1.1, .. ,9.9 and e is an 8-bit integer: e = -128 .. 127 The representation of a bucket_bound is unique, except for the case bucket_bound = 0. Here are some examples: 1 = 1.0 * 10^0  15 = 1.5 * 10^1  The smallest/largest positive bucket boundary are: p_min = 1.0 * 10^-128 = 10^-128 p_max = 9.9 * 10^127  The smallest/largest negative bucket boundaries are: n_min = - 9.9 * 10^127 n_max = - 1.0 * 10^-128 = 10^-128 A histogram bucket, represented by (bound, count), means that a number of "count" values have been recorded in the following interval. Write bound = x * 10^e as above, then  If x > 0 then, the bucket interval is: [ x * 10^e, (x + 0.1) * 10^e ) with inclusive left, exclusive right. If x = 0 then the bucket interval is the single value 0: { 0 } If x < then the bucket interval is: ( (x - 0.1) * 10^e, x * 10^e ] with exclusive left, inclusive right. For example: bound = 0, yields  interval = { 0 }  bound = 1, yields  interval = [1, 1.1) bound = 9, yields interval = [9, 9.1) bound = 9.9, yields interval = [9.9, 9.9 + 0.1 = 10) bound = 10, yields interval = [10, 11) bound = -1, yields interval = (-1.1, -1]  However, there are some edge cases:  Values above or equal to 1e128 are illegal  Values below or equal to -1e128 are illegal  Values between (n_max, p_min) (exclusive) are treated as 0. We do not enforce an artificial bound on the number of buckets per histogram. However, there is a theoretical maximum of 46.081 buckets per histogram. Indeed, buckets are indexed by pairs (x, e):  There are 180 = 2*90 nonzero options for x  There are 256 options for e  This gives 46080 - non-zero buckets, plus the 0 bucket. In practice, we have never seen the theoretical maximum being reached. Measured quantities are not spanning ten orders of magnitude; e.g. 12032 and 0.000000000000000214 are not two values which a single metric is likely to assume. Usually histograms do not exceed a number of 200 buckets. Expect performance penalties when using more than ~300 buckets in a histogram metric. <div dir="ltr"> <p>A Circonus histogram is represented as a list of buckets. From a mathematical perspective, in Circonus, these buckets consist of the following data:</p> <p><span><br></span></p> <p><span>A bucket is a pair of a bucket_boundary and a bucket_count. </span><span> </span></p> <ul> <li><span>The bucket_count is an unsigned 64-bit integer </span></li> <li> <span>The bucket_bound is a float value that can be represented as:<br></span><span>bucket_bound = x * 10^e</span> </li> <ul> <li> <span>where x is one of the following float values:<br></span><span>x = -9.9, -9.8, -9.7 .. -1.1, -1.0, 0, 1.0, 1.1, .. ,9.9</span> </li> <li> <span>and e is an 8-bit integer:<br></span><span>e = -128 .. 127</span> </li> <li><span>The representation of a bucket_bound is unique, except for the case bucket_bound = 0.</span></li> </ul> </ul> <div><br></div> <div>Here are some examples: </div> <div><ul> <li> <span>1 = 1.0 * 10^0 </span><br> </li> <li> <span>15 = 1.5 * 10^1 </span><br> </li> <li> <span>The smallest/largest positive bucket boundary are:<br></span><span>p_min = 1.0 * 10^-128 = 10^-128<br></span><span>p_max = 9.9 * 10^127 </span> </li> <li> <span>The smallest/largest negative bucket boundaries are:<br></span><span>n_min = - 9.9 * 10^127<br></span><span>n_max = - 1.0 * 10^-128 = 10^-128</span> </li> </ul></div> <p><span><br></span></p> <p><span>A histogram bucket, represented by (bound, count), means that a number of "count" values have been recorded in the following interval.</span><br></p> <div><span>Write bound = x * 10^e as above, then </span></div> <div><ul> <li> <span>If x &gt; 0 then, the bucket interval is:<br></span><span>[ x * 10^e, (x + 0.1) * 10^e )<br></span><span>with inclusive left, exclusive right.</span> </li> <li>If x = 0 then the bucket interval is the single value 0:<br><span>{ 0 }</span> </li> <li> <span>If x &lt; then the bucket interval is:<br></span><span>( (x - 0.1) * 10^e, x * 10^e ]<br></span><span>with exclusive left, inclusive right.</span> </li> </ul></div> <div><br></div> <div>For example: </div> <div><ul> <li>bound = 0, yields  interval = { 0 } <br> </li> <li> bound = 1<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Helvetica Neue', Helvetica, Arial, sans-serif;">, yields</span>  interval = [1, 1.1) </li> <li> <span>bound = 9,</span><span><span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Helvetica Neue', Helvetica, Arial, sans-serif;"> yields</span> interval = [9, 9.1)</span> </li> <li> <span>bound = 9.9</span><span><span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Helvetica Neue', Helvetica, Arial, sans-serif;">, yields</span> interval = [9.9, 9.9 + 0.1 = 10)</span> </li> <li> <span>bound = 10<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Helvetica Neue', Helvetica, Arial, sans-serif;">, yields</span></span><span> interval = [10, 11)</span> </li> <li> <span>bound = -1, <span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Helvetica Neue', Helvetica, Arial, sans-serif;">yields</span></span><span> interval </span><span>= (-1.1, -1] </span> </li> </ul></div> <p></p> <div><span><br></span></div> <div> <span>However, there are some edge cases: </span> </div> <div> <ul> <li> <span>Values above or equal to 1e128 are illegal </span><br> </li> <li> <span>Values below or equal to -1e128 are illegal </span><br> </li> <li> <span>Values between (n_max, p_min) (exclusive) are treated as 0.</span><br> </li> </ul> <div><br></div> <div> <span>We do not enforce an artificial bound on the number of buckets per histogram. </span><span>However, t</span>here is a theoretical maximum of 46.081 buckets per histogram. Indeed, buckets are indexed by pairs (x, e): </div> <div><ul> <li> <span>There are 180 = 2*90 nonzero options for x </span><br> </li> <li> <span>T</span><span>here are 256 options for e </span><br> </li> </ul></div> <div>This gives 46080 - non-zero buckets, plus the 0 bucket. In practice, we have never seen the theoretical maximum being reached. Measured quantities are not spanning ten orders of magnitude; e.g. 12032 and 0.000000000000000214 are not two values which a single metric is likely to assume.</div> <div><br></div> <div>Usually histograms do not exceed a number of 200 buckets. Expect performance penalties when using more than ~300 buckets in a histogram metric.</div> <div><br></div> <div> <p><img src="https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/6037149683/original/2015-12-02_Circonus_Histogram_range%20copy.png?1478617080" class="inline-image" data-id="6037149683" alt="2015-12-02_Circonus_Histogram_range%20copy.png" title="2015-12-02_Circonus_Histogram_range%20copy.png"></p> <br> </div> </div> </div> 6000171367 261 6000066608 2016-11-08T09:58:06-05:00 6003691945 5 2 0 1 Histogram Internals 2016-04-01T10:34:24-04:00 6003691945 1 2015-09-25T05:29:38-04:00 0 0 We have addressed the problem of varying peek height when zooming out on with a recent feature called "Percentile Aggregation". It is an overlay you can add to any graph using: [+] -> SLA Monitoring -> Percentile Aggregation (min and max) It will add graphs for the the minimum and the maximum value in each aggregation interval: When zooming in  to ~1h, the additional graphs will be identical to the original graph. When zooming out, the peek value will be displayed by the upper graph. Here is how it looks: First I'll start with the spikes in the graph. We have multiple rollups that average out the data over larger intervals, so spikes will change their magnitude if you zoom out further. As for the resolution, we try to balance rendering time with the fact that we might not even have enough pixels to show the smaller intervals. Even if you would zoom in to get the 1m or 5m window, that is still (potentially) an aggregate of numbers if you are collecting the data more than once in the interval, so you want to really look at the trend and not the absolute values there. Note that the smallest interval in Circonus is 1 minute, so if you zoom in close enough ,that is what you will be presented with. Counter, derive, gauge, and other terms we use are for our system, don't relate to statsd at all, because we need to be agnostic regarding the incoming data. If you are sending a gauge with statsd that is an ever growing number (network inoctets, cpu ticks, etc.), that should be graphed as a counter (positive rate of change) in Circonus. It's probably best to think about what the "raw" data you are feeding us is and use our notions to graph and alert. The gauge is indeed still averaged out over intervals as well. When we make a 5m rollup, we need to shove five 1m datapoints into that, so we have to record the average and how many values made up that average. The same is the true for any of the larger intervals we need to use. <div> <p></p> <div> <div>We have addressed the problem of varying peek height when zooming out on with a recent feature called "Percentile Aggregation".</div> <div> <span>It is an overlay you can add to any graph using:</span><br> </div> <div>[+] -&gt; SLA Monitoring -&gt; Percentile Aggregation (min and max)</div> <div><br></div> <div><span>It will add graphs for the the minimum and the maximum value in each aggregation interval:</span></div> <div><ul> <li> <span>When zooming in  to ~1h, the additional graphs will be identical to the original graph.</span><br> </li> <li> <span>When zooming out, the peek value will be displayed by the upper graph.</span><br> </li> </ul></div> <div></div> <div><br></div> <div>Here is how it looks:</div> <div><br></div> <div><img src="https://lh5.googleusercontent.com/Fmw6o1EAwCqpZM1JRYmi1L_1XOUYV7NE80Rn677KZcSyMA-fKN2cO2BnCDVf-FVA2X36WMPRQiZKzJYDL6snRniqWFLJ8oux_qYwC1mgVzzhc_qpXs6yL-G5Lu9RFjZUlBJHdz_iFA" width="818px;" height="338px;" style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; cursor: default;"></div> <div>First I'll start with the spikes in the graph. We have multiple rollups that average out the data over larger intervals, so spikes will change their magnitude if you zoom out further. As for the resolution, we try to balance rendering time with the fact that we might not even have enough pixels to show the smaller intervals. Even if you would zoom in to get the 1m or 5m window, that is still (potentially) an aggregate of numbers if you are collecting the data more than once in the interval, so you want to really look at the trend and not the absolute values there.</div> <div><br></div> <div>Note that the smallest interval in Circonus is 1 minute, so if you zoom in close enough ,that is what you will be presented with.</div> <div><br></div> <div>Counter, derive, gauge, and other terms we use are for our system, don't relate to statsd at all, because we need to be agnostic regarding the incoming data. If you are sending a gauge with statsd that is an ever growing number (network inoctets, cpu ticks, etc.), that should be graphed as a counter (positive rate of change) in Circonus. It's probably best to think about what the "raw" data you are feeding us is and use our notions to graph and alert.</div> <div><br></div> <div>The gauge is indeed still averaged out over intervals as well. When we make a 5m rollup, we need to shove five 1m datapoints into that, so we have to record the average and how many values made up that average. The same is the true for any of the larger intervals we need to use.</div> </div> </div> 6000171367 163 6000067124 2015-11-18T16:07:27-05:00 6003235491 7 2 0 0 Percentile Aggregation and Spike Erosion 2015-10-23T10:48:50-04:00 6003691945 1 2015-10-06T14:56:43-04:00 0 0 By default, graphs will show a roll-up depending on your zoom level. For example, if you are looking at a 2 hour period, you will see 1 minute aggregates of data. If the feed from the Broker to our NOC is current, we will also pull a chunk of aggregates from our ingestion service so that you can see all data that is older than this current moment. To view real time data, you can use the play button. However, using this feature in conjunction with push data presents some challenges. Pull data is easy because the broker is reaching out and collecting data and that makes it easier to schedule. First, let's consider how this works with pull data: Assume we have an HTTP check. We are hitting the server once a minute and storing or alerting on that data. You can add this check to a graph and then hit play. On the backend, the Broker makes a copy of that check with new IDs and begins running it every X seconds, depending on what you selected in the UI. This data is then only fed down through the real time system and not through the alerting or storage systems. With push data, the procedure above is the same, but our check run is just waiting for data from the host. Ideally, you want to coordinate with the host to have it push more frequently. Note that this does not work with HTTPTrap checks. The UUID of the check on the broker is very significant for HTTPTrap checks, and the check receives a new UUID when it is copied. The new UUID isn't exposed, so there is no way to know where to send the data. <div dir="ltr"> <div> <div class="gmail_quote"> <div> <p><span>By default, graphs will show a roll-up depending on your zoom level. For example, if you are looking at a 2 hour period, you will see 1 minute aggregates of data. If the feed from the Broker to our NOC is current, we will also pull a chunk of aggregates from our ingestion service so that you can see all data that is older than this current moment.</span><br></p> </div> <div><br></div> <div>To view real time data, you can use the play button. However, using this feature in conjunction with push data presents some challenges. <span>Pull data is easy because the broker is reaching out and collecting data and that makes it easier to schedule.</span> </div> <div><br></div> <div> <span>First, let's consider how this works with pull data: </span>Assume we have an HTTP check. We are hitting the server once a minute and storing or alerting on that data. You can add this check to a graph and then hit play. On the backend, the Broker makes a copy of that check with new IDs and begins running it every X seconds, depending on what you selected in the UI. This data is then only fed down through the real time system and not through the alerting or storage systems.</div> <div><br></div> <div>With push data, the procedure above is the same, but our check run is just waiting for data from the host. Ideally, you want to coordinate with the host to have it push more frequently.</div> <div><br></div> <div>Note that this does not work with HTTPTrap checks. The UUID of the check on the broker is very significant for HTTPTrap checks, and the check receives a new UUID when it is copied. The new UUID isn't exposed, so there is no way to know where to send the data.<br> </div> </div> <div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"> <div> </div> </div></div></div></div></div></div> </div> </div> 6000171367 70 6000074134 2015-12-07T16:32:14-05:00 6003235491 7 2 0 0 Why don't my graphs show the most current data? 2015-11-22T15:11:49-05:00 6002695175