343 lines
42 KiB
HTML
343 lines
42 KiB
HTML
<!DOCTYPE html><!-- Last Published: Wed Jul 02 2025 01:43:30 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="webflow.hostedgraphite.com" data-wf-page="5ce3e821b5d6678199f31df7" data-wf-site="5a57aa76d1fa2300015ca244" data-wf-collection="5ce3e821b5d6674c4bf31e14" data-wf-item-slug="status-page-updates-its-all-about-timing"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Status page updates: It’s all about timing</title><meta content="Check out part 2 of Hosted Graphite's SRE process on how to handing status page updates. Learn more in detail on the responsibilities of communication, duration of updating the page, and who’s responsible for certain tasks." name="description"/><meta content="Status page updates: It’s all about timing" property="og:title"/><meta content="Check out part 2 of Hosted Graphite's SRE process on how to handing status page updates. Learn more in detail on the responsibilities of communication, duration of updating the page, and who’s responsible for certain tasks." property="og:description"/><meta content="https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5be2eed2af56e21241549150_SRE-background.png" property="og:image"/><meta content="Status page updates: It’s all about timing" name="twitter:title"/><meta content="Check out part 2 of Hosted Graphite's SRE process on how to handing status page updates. Learn more in detail on the responsibilities of communication, duration of updating the page, and who’s responsible for certain tasks." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5be2eed2af56e21241549150_SRE-background.png" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/css/hosted-graphite-blog.webflow.shared.f88b646c4.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/><script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script><script type="text/javascript">WebFont.load({ google: { families: ["Open Sans:300,300italic,400,400italic,600,600italic,700,700italic,800,800italic","Inconsolata:400,700","Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Lato:100,100italic,300,300italic,400,400italic,700,700italic,900,900italic","Droid Sans:400,700","Vollkorn:400,400italic,700,700italic","Ubuntu:300,300italic,400,400italic,500,500italic,700,700italic","Lora:regular,italic,700","Oxygen:300,regular,700","Source Sans Pro:200,200italic,300,300italic,regular,600,600italic,700,700italic,900,900italic"] }});</script><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5b5f272bbb5a83b7b3239ad6_32.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5b5f27323f9c40d523c9bfcc_256.png" rel="apple-touch-icon"/><script src="https://cdn.jsdelivr.net/npm/code-prettify@0.1.0/src/prettify.min.js"></script>
|
||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
|
||
<script type="text/javascript">
|
||
var embeddify = function(){
|
||
$("h6").each(function(index){
|
||
var h6 = $(this);
|
||
var url = h6.text();
|
||
console.log("Embeddifying " + url);
|
||
h6.hide();
|
||
var embed_message = $('<pre>Embedding <a href="'+url+'" target="_blank">some code</a>, one moment...</pre>');
|
||
embed_message.insertAfter(h6);
|
||
$.ajax(url, {
|
||
success: function(content){
|
||
$('<?prettify linenums=true?><pre class="prettyprint">'+content+'</pre>').insertAfter(h6);
|
||
embed_message.hide();
|
||
PR.prettyPrint();
|
||
},
|
||
error: function(jqXHR, textStatus, errorThrown){
|
||
embed_message.html('Tried to fetch <a href="'+url+'" target="_blank">some code from GitHub</a>, but it failed with an error: "'+errorThrown+'"');
|
||
}
|
||
});
|
||
});
|
||
};
|
||
|
||
var webflow_removed = false;
|
||
var attempts_remaining = 10;
|
||
|
||
function dewebflow() {
|
||
/* Temporarily remove this badge while we're sorting out
|
||
serving this from the right domains so the hosting provider
|
||
will remove the badge properly. */
|
||
|
||
var badges = $("a.w-webflow-badge");
|
||
if(badges.length == 1)
|
||
{
|
||
$("a.w-webflow-badge").remove();
|
||
webflow_removed = true;
|
||
} else {
|
||
attempts_remaining--;
|
||
}
|
||
|
||
if(!webflow_removed || attempts_remaining > 0)
|
||
setTimeout(dewebflow, 500);
|
||
}
|
||
|
||
$(document).ready(embeddify);
|
||
$(document).ready(dewebflow);
|
||
|
||
</script>
|
||
|
||
<style type"text/css">
|
||
/* Turn on line numbering for every line of prettyprinted code, instead of every fifth line. */
|
||
li.L0, li.L1, li.L2, li.L3,
|
||
li.L5, li.L6, li.L7, li.L8 {
|
||
list-style-type: decimal !important;
|
||
}
|
||
</style>
|
||
|
||
<!-- Google Tag Manager -->
|
||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||
})(window,document,'script','dataLayer','GTM-NT79GSP');</script>
|
||
<!-- End Google Tag Manager --></head><body class="body-9"><div data-collapse="medium" data-animation="default" data-duration="200" data-easing="ease" data-easing2="ease" role="banner" class="navbar-9 w-nav"><div class="section-15"><div class="container-12 w-container"><nav role="navigation" class="nav-menu-5 w-clearfix w-nav-menu"><a href="https://www.hostedgraphite.com/accounts/signup/" class="hg-nav-link right marketing get-started-ppc-button w-nav-link">Get started free</a><a href="https://www.hostedgraphite.com/accounts/login/" class="hg-nav-link right w-nav-link">Login</a><a href="https://www.hostedgraphite.com/enterprise" class="hg-nav-link w-nav-link">Enterprise</a><a href="https://www.hostedgraphite.com/pricing" class="hg-nav-link w-nav-link">Pricing</a><a href="https://www.hostedgraphite.com/docs/" class="hg-nav-link w-nav-link">Docs</a><a href="https://www.hostedgraphite.com/customers" class="hg-nav-link w-hidden-medium w-hidden-small w-hidden-tiny w-nav-link">Customers</a><a href="https://www.hostedgraphite.com/product" class="hg-nav-link w-nav-link">Features</a></nav><div class="menu-button-3 w-nav-button"><div class="w-icon-nav-menu"></div></div></div></div><div class="div-block-15"><a href="https://www.hostedgraphite.com" class="brand-4 w-nav-brand"><img src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a589d3f3c31ba0001f33fca_Orange%20HG%20logo.svg" width="1088.5" alt="" class="image-52"/></a></div><div class="section-16"></div></div><div data-w-expand="category" style="background-image:url("https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5be2eed2af56e21241549150_SRE-background.png")" class="hero-blog"></div><div class="main-section"><div class="w-container"><div class="section-heading"><h1 class="blog-post-title">Status page updates: It’s all about timing</h1><div class="blog-date">October 16, 2018</div><a data-w-expand="category" href="/blog-categories/engineering" class="blog-category">Engineering</a><div class="full-divide"></div><div class="w-embed w-script"><script>
|
||
document.addEventListener("DOMContentLoaded", function() {
|
||
const tocContainer = document.createElement('div');
|
||
tocContainer.id = 'toc-container';
|
||
tocContainer.innerHTML = '<h2>Table of Contents</h2><ul id="toc"></ul>';
|
||
|
||
const sectionHeading = document.querySelector('.section-heading');
|
||
sectionHeading.insertAdjacentElement('afterend', tocContainer);
|
||
|
||
const toc = document.getElementById('toc');
|
||
const headers = document.querySelectorAll('.blog-post h2, .blog-post h3, .blog-post h4, .blog-post h5, .blog-post h6');
|
||
|
||
headers.forEach((header) => {
|
||
const id = header.textContent.trim().toLowerCase().replace(/[\s+]+/g, '-').replace(/[^\w\-]+/g, '');
|
||
header.id = id;
|
||
|
||
const li = document.createElement('li');
|
||
const a = document.createElement('a');
|
||
a.href = `#${id}`;
|
||
a.textContent = header.textContent;
|
||
li.appendChild(a);
|
||
|
||
toc.appendChild(li);
|
||
});
|
||
|
||
document.querySelectorAll('#toc a').forEach(anchor => {
|
||
anchor.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
document.querySelector(this.getAttribute('href')).scrollIntoView({
|
||
behavior: 'smooth'
|
||
});
|
||
history.pushState(null, null, this.getAttribute('href'));
|
||
});
|
||
});
|
||
});
|
||
</script>
|
||
<style>
|
||
#toc-container {
|
||
text-align: start;
|
||
width: 85%;
|
||
margin: 0 auto 3em;
|
||
}
|
||
#toc-container h2 {
|
||
margin-top: 0;
|
||
}
|
||
#toc-container ul {
|
||
padding-left: 1em;
|
||
}
|
||
#toc-container li {
|
||
margin-bottom: 0.5em;
|
||
}
|
||
#toc li a {
|
||
text-decoration: none;
|
||
color: #2e2e2e;
|
||
}
|
||
#toc li a:hover {
|
||
text-decoration: underline;
|
||
}
|
||
</style></div></div><div class="w-condition-invisible w-embed"></div><div class="blog-content"><div class="blog-post w-richtext"><p>To continue our push for transparency in how we do things at <a href="https://www.hostedgraphite.com/">Hosted Graphite</a> we’ve decided to share a series of posts detailing our internal SRE processes. Last time, we looked at <a href="https://www.hostedgraphite.com/blog/how-to-write-a-status-page-update">how to write a status page update</a>, with some practical tips, examples, and the thinking behind it all. In this second post of the series, we dig a little deeper into the timings and responsibilities of communication during incidents–when to write an update, how quickly it should be posted, and who’s responsible for what.</p><h2>Who should write status page updates?</h2><p>The SRE team is responsible for incident communication on our public status page. Although it’s the on-call person’s responsibility to decide whether a status update is needed, it’s not necessarily the on-call person’s responsibility to write the status update themselves, and they can delegate this task to other SREs following an <a href="https://en.wikipedia.org/wiki/Incident_Command_System">Incident Command</a> approach.</p><h2>When should I write a status page update?</h2><p>Not every alert or event that requires on-call attention will automatically require a status page update. For instance, sometimes we’re able to detect issues before they’re able to cause user impact, so there’s no point in notifying users of impact that doesn’t exist. While it’s very important that our status page shows our commitment to transparency with our users, we need to make sure our updates don’t result in <a href="https://en.wikipedia.org/wiki/Alarm_fatigue">alert fatigue</a> for our users.</p><p>Deciding whether a given incident requires us to write a status page update or not is up to you (assuming you’re the on-call person). That said, there are a few guidelines we can follow to inform this decision:</p><ul role="list"><li>Is this impacting some of our users in a visible way? For example, are render times visibly increased for 5% of our users? Or maybe there are gaps in 2% of metrics for all users? Something that we know affects a single user isn’t necessarily worthy of a status page update, and can be handled via the usual support mechanisms.</li><li>Can this result in people noticing the impact and deciding to open a support ticket asking us about it? In that case, a status page update is a good way to indicate users that we’re aware of a given problem and currently working on correcting it.</li></ul><p>As a general rule, if in doubt err on the side of caution and post an update anyway. We’d rather overshare than give users the impression that we don’t care/notice about issues with our infrastructure. Therefore, should we find ourselves debating whether an incident belongs on our status page or not, the answer should default to “yes, we’ll post it and we’ll sit down to discuss and define our policies afterwards.”</p><h2>How quickly should I get the status page update out?</h2><p>Ideally, as soon as possible.</p><p>Our users won’t know that we’ve detected something is wrong and are working to mitigate the issue until we acknowledge the situation a quick response is important. That said, there’s a delicate balance between providing accurate and relevant information (what the <strong>exact</strong> impact is, the actual start time of the incident) and having a fast response.</p><p>For the initial notification, we should prioritise speed over accuracy. Later, we can (and should) expand on the initial update and add/correct any details that might be either missing or incorrect.</p><p>As a general rule of thumb, if we decide a status page is needed for a particular incident, it’s good to cap initial fact gathering to a few minutes before posting the first update. We’ll have time later on to be more accurate.</p><h2>How often should we update the status page?</h2><p>This usually depends on the status of the incident’s current status:</p><ul role="list"><li>For incidents in “Investigating” status, we shouldn’t wait more than 20 minutes between updates. Obviously, if we have a relevant update (such as moving the incident to an “Identified” status) we should post that right away.</li><li>For incidents in “Identified” status, 20 minutes between updates is a good rule of thumb. However, when working on mitigating incidents, frequent updates might not necessarily make sense. In that case, the frequency can be lowered–provided this is communicated in the previous update. For example, if we need to run a data replay that we expect to take 4 hours, we don’t need an update every 20 minutes saying that the replay is in progress. Instead, it makes more sense to lower the frequency to hourly and explain that new updates will be done hourly, or whenever relevant new information emerges.</li><li>For incidents in “Monitoring” status, frequency of updates depends entirely on the situation. That said, it’s still important to keep users in the loop by letting them know when they should expect an update. If we plan to update them in four hours but we don’t let them know, they might think we’ve forgotten about them (and we wouldn’t do that sort of thing).</li></ul><h2>Can we provide additional details via other means?</h2><p>As a norm, we don’t provide details about ongoing incidents outside of this channel (such as support requests or Twitter) and we should encourage other teams to redirect any user enquiries on the matter to our status page.</p><p>The reason we take this approach is that any time we spend explaining a new development or details to a single customer, could be better spent adding said information to our status page. Added to that, if you’re communicating through two different channels, one is bound to contradict the other when information gets out of date which leads to confusion rather than clarity for our users.</p><p>During incidents, we need to be efficient as possible with our time. To that effect, we’ve found that explaining things to members of other teams so they can communicate them to customers isn’t the best use of our time during an incident and most importantly, results in a worse quality of service for our customers. This is usually due to the fact that information relayed to other teams during an ongoing incident is prone to be inaccurate and/or out of date by the time it’s communicated and if the information is relevant to the incident we need to ensure that <strong>all</strong> of our users are exposed to it.</p><p>If we (or our users, or other teams) feel that we’re missing important details on our status page it’s our job to collect that feedback and address that, as we want this page to be useful and relevant for everybody.</p><h2>Components are people too!</h2><p>Well, OK, not <strong>really</strong> people (not even in the "soylent green is people" sense), but they're an important part of our status page that's often overlooked. The first thing any user sees when they visit <a href="https://status.hostedgraphite.com/">https://status.hostedgraphite.com</a> is the historical uptime graphs, which are based in component statuses:</p><p></p><div class="w-embed"><picture>
|
||
<source srcset="https://hgblogimg.s3.us-east-2.amazonaws.com/Status+page+updates%3A+It%E2%80%99s+all+about+timing/status1.webp" type="image/webp">
|
||
<source srcset="https://hgblogimg.s3.us-east-2.amazonaws.com/Status+page+updates%3A+It%E2%80%99s+all+about+timing/status1.jpg" type="image/jpeg">
|
||
<img src="https://hgblogimg.s3.us-east-2.amazonaws.com/Status+page+updates%3A+It%E2%80%99s+all+about+timing/status1.webp" alt="A screenshot of Hosted Graphite's status page available to all users.">
|
||
</picture></div><p></p><p>If we don’t update our components when there’s something wrong with them, these graphs will be built on lies and broken dreams. Users will lose confidence in our status page if they know alerting was down yesterday but our graph shows a historical 100% uptime.</p><p>To avoid this, we try to update components to a relevant status whenever an issue has been identified/resolved.</p><h2>We’re done now! Do we need a post-mortem?</h2><p>That’s a really good question, and the answer is a resounding and definite “maybe”.</p><p>In an ideal world every single incident except the most trivial ones would have a post-mortem attached to them (and “trivial” incidents would never make it to our status page ), but this is not always possible. Sometimes we have too many other things going on and can’t afford to spend time writing a public post-mortem. As it stands, this is a judgement call on the part of on-call/management. That said, our goal is to have a post-mortem included with as many incidents as we can.</p><p>If a given incident felt “big” enough (remember, all incidents are big to the users affected) or if there’s an important lesson to be learned, then it’s quite probable that a post-mortem will be required.</p><p>Just because it’s on-call’s responsibility to make sure a post-mortem is written, doesn’t necessarily mean the on-call person themselves need to write it. You just need to make sure it gets done, but can delegate the actual work to your fellow SREs so you can focus on coming up with follow-up tasks or addressing any other fires that might be going off elsewhere. Working on a post-mortem shouldn’t prevent you from dealing with other ongoing incidents, but ongoing incidents aren’t necessarily an excuse for not publishing a post-mortem on a past incident. The bottom line is that a post-mortem is a great way to remind our users that we care about providing them with good service.</p><h2>When should we write a post-mortem?</h2><p>Some investigations take longer than others, but as a general rule, posting the post-mortem at some point on the following business day is acceptable. There’s no need to stay late just so we can publish a post-mortem on the same day the incident happened. You’re also not expected to write one over the weekend (unless something truly catastrophic happened, and at that point your manager will probably want to help you with it). We don’t write post-mortems to check a box, so there’s no sense in rushing it. If, when resolving an incident, you already know we’ll want to publish a post-mortem, you can include in the resolution message that a post-mortem can be expected in the next 24-48 hours.</p><h2>Some related reading</h2><ul role="list"><li>https://www.atlassian.com/blog/statuspage/how-to-write-a-good-status-update</li><li>https://signalvnoise.com/posts/1528-the-bullshit-of-outage-language</li><li>https://blog.serverdensity.com/write-status-updates/</li></ul><p>Next up in this series, we’ll cover how to write a post-mortem after a production incident. If you haven’t read it, don’t forget to check out part 1 for <a href="https://www.hostedgraphite.com/blog/how-to-write-a-status-page-update">some tips on writing a status update</a>. To learn more about what we do, visit <a href="https://www.hostedgraphite.com/">hostedgraphite.com</a> or <a href="https://twitter.com/HostedGraphite">follow us on twitter</a>.</p><p></p></div><div class="sticky-toc-container"><div class="cta-sidebar"><div class="text-block-31"><strong class="bold-text-15">Try Hosted Graphite now!</strong></div><p class="paragraph-12">Get Hosted Graphite free for 14 days. No credit card required.</p><a href="https://www.hostedgraphite.com/accounts/signup/?from=heroku_blogpost" class="cta-side-button w-button">Get Started</a></div><div class="toc w-embed w-script"><script>
|
||
document.addEventListener("DOMContentLoaded", function() {
|
||
function createSideToc(containerId) {
|
||
const container = document.querySelector(containerId);
|
||
|
||
// Create and append the title <h2>
|
||
const tocTitle = document.createElement('h2');
|
||
tocTitle.textContent = 'Table of Contents';
|
||
container.appendChild(tocTitle);
|
||
|
||
const toc = document.createElement('ul');
|
||
toc.className = 'toc';
|
||
|
||
const headers = document.querySelectorAll('.blog-post h2, .blog-post h3, .blog-post h4, .blog-post h5, .blog-post h6');
|
||
const ids = new Set(); // To ensure unique IDs
|
||
|
||
headers.forEach((header) => {
|
||
const id = header.textContent.trim().toLowerCase().replace(/[\s+]+/g, '-').replace(/[^\w\-]+/g, '');
|
||
header.id = id;
|
||
if (!ids.has(id)) {
|
||
ids.add(id);
|
||
|
||
const li = document.createElement('li');
|
||
const a = document.createElement('a');
|
||
a.href = `#${id}`;
|
||
a.textContent = header.textContent;
|
||
li.appendChild(a);
|
||
|
||
toc.appendChild(li);
|
||
}
|
||
});
|
||
|
||
container.appendChild(toc);
|
||
|
||
// Smooth scroll for the new TOC
|
||
toc.querySelectorAll('a').forEach(anchor => {
|
||
anchor.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
document.querySelector(this.getAttribute('href')).scrollIntoView({
|
||
behavior: 'smooth'
|
||
});
|
||
history.pushState(null, null, this.getAttribute('href'));
|
||
});
|
||
});
|
||
}
|
||
|
||
// Create the sticky TOC in the sidebar
|
||
createSideToc('.sticky-toc-container');
|
||
});
|
||
</script>
|
||
|
||
<style>
|
||
/* Specific Styling for Sticky TOC */
|
||
.sticky-toc-container {
|
||
position: sticky;
|
||
top: 110px;
|
||
width: 340px;
|
||
height: 100%;
|
||
overflow-y: auto;
|
||
padding: 15px;
|
||
border-radius: 8px;
|
||
font-family: Arial, sans-serif;
|
||
font-size: 14px;
|
||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
|
||
text-align: left;
|
||
}
|
||
|
||
.sticky-toc-container h2 {
|
||
margin-top: 0;
|
||
font-size: 18px;
|
||
color: #2e2e2e;
|
||
}
|
||
|
||
.sticky-toc-container ul {
|
||
list-style-type: none;
|
||
padding-left: 0;
|
||
margin: 0;
|
||
}
|
||
|
||
.sticky-toc-container li {
|
||
margin-bottom: 0.6em;
|
||
}
|
||
|
||
.sticky-toc-container a {
|
||
text-decoration: none;
|
||
color: #8e8b8b;
|
||
}
|
||
|
||
.sticky-toc-container a:hover {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
/* Make sure the TOC has a scroll bar when needed */
|
||
.toc {
|
||
max-height: 35vh;
|
||
overflow-y: auto;
|
||
}
|
||
|
||
/* Media Query to Hide sticky-toc-container on smaller screens */
|
||
@media (max-width: 1215px) {
|
||
.sticky-toc-container {
|
||
display: none;
|
||
}
|
||
}
|
||
</style></div></div></div><div class="w-condition-invisible w-embed w-script"><script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>
|
||
<pre class="prettyprint">
|
||
|
||
</pre></div><div class="div-block-2"><div class="full-divide"></div><div class="author-wrapper"><a href="/blog-authors/fran-garcia" data-w-expand="authors" class="author-name">Fran Garcia</a><div class="smallest-divider"></div><div data-w-expand="authors" class="author-bio w-richtext"><p>SRE at Hosted Graphite.</p></div><div><a href="https://twitter.com/hostedgraphite" data-w-expand="authors" class="social-link w-inline-block"><img src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a57aa7ad1fa2300015ca29a_social-18.svg" width="68" alt="" class="image-2"/></a><a data-w-expand="authors" href="#" class="social-link w-inline-block"></a><a href="#" data-w-expand="authors" class="social-link w-inline-block"></a></div></div></div></div></div><div class="main-section gray"><div class="w-container"><div class="section-heading"><h2 class="heading-6">Related Posts</h2><div class="med-divider"></div></div><div class="w-dyn-list"><div role="list" class="w-clearfix w-dyn-items w-row"><div role="listitem" class="blog-thumbnail w-dyn-item w-col w-col-3"><a href="/blog/hosted-graphite-isnt-graphite" data-ix="blog-thumbnail" class="thumbnail-wrapper w-inline-block"><div class="image-wrapper"><div style="background-image:url("https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5dd37e9fe192cd2ea5b8af68_Screen%20Shot%202019-11-19%20at%202.14.02%20PM.jpg")" class="thumbnail-image"></div><div class="category-tag">Engineering</div></div><div class="thumbnail-text ellipsis"><div class="blog-title">HostedGraphite</div><div class="preview-text">Hosted Graphite improves upon standard Graphite. Take a look at how we do this and how Hosted Graphite gives your company better functionality. </div></div><div class="thumb-details w-clearfix"><div class="author-title">Shevaun Frazier</div><div class="thumbnail-date">Nov 2019</div></div></a></div><div role="listitem" class="blog-thumbnail w-dyn-item w-col w-col-3"><a href="/blog/new-developer-onboarding" data-ix="blog-thumbnail" class="thumbnail-wrapper w-inline-block"><div class="image-wrapper"><div style="background-image:url("https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5bfea01e7ffa1b30f88f19c0_Blog-background-organge.png")" class="thumbnail-image"></div><div class="category-tag">Engineering</div></div><div class="thumbnail-text ellipsis"><div class="blog-title">New Developer Onboarding</div><div class="preview-text">Discussions about onboarding tend to revolve around new hires, for obvious reasons, but the process is important for everyone: while the new developer learns the most important aspects of team and company culture, the team has an opportunity to learn new ideas from a fresh pair of eyes. </div></div><div class="thumb-details w-clearfix"><div class="author-title">Heather Wiencko</div><div class="thumbnail-date">Sep 2019</div></div></a></div><div role="listitem" class="blog-thumbnail w-dyn-item w-col w-col-3"><a href="/blog/pug-life-how-we-run-a-grafana-instance-for-each-user-with-docker" data-ix="blog-thumbnail" class="thumbnail-wrapper w-inline-block"><div class="image-wrapper"><div style="background-image:url("https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5d643d90b1c59597a144484a_pug-header.png")" class="thumbnail-image"></div><div class="category-tag">Engineering</div></div><div class="thumbnail-text ellipsis"><div class="blog-title">PUG Life: How we run a Grafana instance for each user with Docker </div><div class="preview-text">The story of Hosted Grafana at Hosted Graphite, and how we run multiple instances of Grafana. Start monitoring with Hosted Graphite and use our Grafana dashboards directly in-platform. </div></div><div class="thumb-details w-clearfix"><div class="author-title">Ciarán Finn</div><div class="thumbnail-date">Nov 2020</div></div></a></div><div role="listitem" class="blog-thumbnail w-dyn-item w-col w-col-3"><a href="/blog/incident-postmortem-template" data-ix="blog-thumbnail" class="thumbnail-wrapper w-inline-block"><div class="image-wrapper"><div style="background-image:url("https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5be2eed2af56e21241549150_SRE-background.png")" class="thumbnail-image"></div><div class="category-tag">Engineering</div></div><div class="thumbnail-text ellipsis"><div class="blog-title">Our incident postmortem template</div><div class="preview-text">Sharing our incident postmortem template with some pointers on the review process, what to include in each section, and best practice examples.</div></div><div class="thumb-details w-clearfix"><div class="author-title">Fran Garcia</div><div class="thumbnail-date">Aug 2019</div></div></a></div><div role="listitem" class="blog-thumbnail w-dyn-item w-col w-col-3"><a href="/blog/its-dead-jim-how-we-write-an-incident-postmortem" data-ix="blog-thumbnail" class="thumbnail-wrapper w-inline-block"><div class="image-wrapper"><div style="background-image:url("https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5be2eed2af56e21241549150_SRE-background.png")" class="thumbnail-image"></div><div class="category-tag">Engineering</div></div><div class="thumbnail-text ellipsis"><div class="blog-title">"It's dead, Jim": How we write an incident postmortem</div><div class="preview-text">How to write an incident postmortem–what it is, why it’s important, who should write it, and considerations to keep in mind before putting pen to paper.</div></div><div class="thumb-details w-clearfix"><div class="author-title">Fran Garcia</div><div class="thumbnail-date">Jul 2019</div></div></a></div><div role="listitem" class="blog-thumbnail w-dyn-item w-col w-col-3"><a href="/blog/surviving-on-call-tips-from-a-hosted-graphite-sre" data-ix="blog-thumbnail" class="thumbnail-wrapper w-inline-block"><div class="image-wrapper"><div style="background-image:url("https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5c48a4405b91aaf448087677_daveblog-header.png")" class="thumbnail-image"></div><div class="category-tag">Engineering</div></div><div class="thumbnail-text ellipsis"><div class="blog-title">Surviving On-Call: Tips from a Hosted Graphite SRE</div><div class="preview-text">Get an insight into what Hosted Graphite's SRE Dave Fennell has learned when being On-Call. Read the tips that he has to offer to make the On-Call experience a positive one.</div></div><div class="thumb-details w-clearfix"><div class="author-title">Dave Fennell</div><div class="thumbnail-date">Jan 2019</div></div></a></div><div role="listitem" class="blog-thumbnail w-dyn-item w-col w-col-3"><a href="/blog/a-victim-of-its-own-popularity-scaling-our-cloudwatch-integration" data-ix="blog-thumbnail" class="thumbnail-wrapper w-inline-block"><div class="image-wrapper"><div style="background-image:url("https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5c095f30e4eab15fb2aa01b4_hg-blog-background-%5BRecovered%5D.png")" class="thumbnail-image"></div><div class="category-tag">Engineering</div></div><div class="thumbnail-text ellipsis"><div class="blog-title">A victim of its own popularity: Scaling our CloudWatch integration</div><div class="preview-text">Learn how Hosted Graphite scaled its AWS CloudWatch integration. From what to do, how to do it, and deploying it into production. </div></div><div class="thumb-details w-clearfix"><div class="author-title">Ciaran Egan</div><div class="thumbnail-date">Dec 2018</div></div></a></div><div role="listitem" class="blog-thumbnail w-dyn-item w-col w-col-3"><a href="/blog/deadlines-lies-and-videotape-the-tale-of-a-grpc-bug" data-ix="blog-thumbnail" class="thumbnail-wrapper w-inline-block"><div class="image-wrapper"><div style="background-image:url("https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5be2efc2d58fb0c5bfe2fd06_melt66666.png")" class="thumbnail-image"></div><div class="category-tag">Engineering</div></div><div class="thumbnail-text ellipsis"><div class="blog-title">Deadlines lies and videotape: The tale of a gRPC bug</div><div class="preview-text">If you use gRPC in your services, you’ll want to make sure you set a reasonable deadline for your RPC calls, upgrading to gRPC 1.16 as soon as possible is highly recommended. You should also enable client-side keepalive, and adjust the kernel setting for tcp_syn_retries (at least until the fix for this issue gets released).</div></div><div class="thumb-details w-clearfix"><div class="author-title">Ciaran Gaffney</div><div class="thumbnail-date">Nov 2020</div></div></a></div></div></div></div></div><div class="main-section dark"><div class="container-13 w-container"><div class="section-heading"><h2 class="white">See why thousands of engineers trust Hosted Graphite with their monitoring</h2><div class="med-divider"></div></div><a href="https://www.hostedgraphite.com/accounts/signup/" class="get-started-ppc-button w-button">START A FREE TRIAL</a><div class="div-block-14 w-hidden-medium w-hidden-small w-hidden-tiny"><img src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd163a0eb5000019d5082_xfinity.png" width="120" sizes="(max-width: 991px) 100vw, 120px" srcset="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd163a0eb5000019d5082_xfinity-p-500.png 500w, https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd163a0eb5000019d5082_xfinity-p-800.png 800w, https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd163a0eb5000019d5082_xfinity-p-1080.png 1080w, https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd163a0eb5000019d5082_xfinity-p-1600.png 1600w, https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd163a0eb5000019d5082_xfinity.png 2000w" alt="" class="image-5"/><img src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd1603e2b760001e13b08_Gov_uk_logo.png" width="190" sizes="(max-width: 991px) 100vw, 190px" srcset="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd1603e2b760001e13b08_Gov_uk_logo-p-500.png 500w, https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd1603e2b760001e13b08_Gov_uk_logo-p-800.png 800w, https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd1603e2b760001e13b08_Gov_uk_logo-p-1080.png 1080w, https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd1603e2b760001e13b08_Gov_uk_logo.png 1280w" alt="" class="image-3"/><img src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd15f3e2b760001e13b07_playtika_logo%20(1).png" width="180" sizes="(max-width: 991px) 100vw, 180px" srcset="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd15f3e2b760001e13b07_playtika_logo%20(1)-p-500.png 500w, https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd15f3e2b760001e13b07_playtika_logo%20(1).png 620w" alt="" class="image-4"/><img src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd4056b273e0001a3d7d7_atlassian_logo.png" width="180" sizes="(max-width: 991px) 100vw, 180px" srcset="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd4056b273e0001a3d7d7_atlassian_logo-p-500.png 500w, https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd4056b273e0001a3d7d7_atlassian_logo.png 800w" alt="" class="image-6"/><img src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a5cd52f6b273e0001a3d86c_Tableau%20(1).svg" alt="" class="image-7"/></div></div><div class="footer-section"><div class="w-container"><div>© 2024 Metricfire Limited. <br/>All Rights Reserved.<br/><br/><br/>5940 S Rainbow Blvd Ste 400<br/>Las Vegas, NV 89118-2507<br/>United States</div></div></div></div><div class="w-embed"></div><div class="w-embed w-script"><script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "Article",
|
||
"mainEntityOfPage": {
|
||
"@type": "WebPage",
|
||
"@id": "https://www.hostedgraphite.com/blog/status-page-updates-its-all-about-timing"
|
||
},
|
||
"headline": "Status page updates: It’s all about timing",
|
||
"image": "https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5be2eed2af56e21241549150_SRE-background.png",
|
||
"thumbnailUrl": "https://cdn.prod.website-files.com/5a57aa7ad1fa2300015ca257/5be2eed2af56e21241549150_SRE-background.png",
|
||
"author": {
|
||
"@type": "Person",
|
||
"name": "Fran Garcia",
|
||
"url": "fran-garcia"
|
||
},
|
||
"publisher": {
|
||
"@type": "Organization",
|
||
"name": "Metricfire Limited",
|
||
"logo": {
|
||
"@type": "ImageObject",
|
||
"url": "https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/5a589d3f3c31ba0001f33fca_Orange%20HG%20logo.svg"
|
||
}
|
||
},
|
||
"datePublished": "Oct 16, 2018",
|
||
"dateModified": "Sep 22, 2021",
|
||
"description": "Check out part 2 of Hosted Graphite's SRE process on how to handing status page updates. Learn more in detail on the responsibilities of communication, duration of updating the page, and who’s responsible for certain tasks."
|
||
}
|
||
</script>
|
||
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "SoftwareApplication",
|
||
"applicationCategory": "BusinessApplication",
|
||
"name": "Hosted Graphite",
|
||
"description": "Hosted Graphite offers powerful monitoring and alerting for various business applications, providing integrations with multiple data sources, a Grafana UI, and great customer support.",
|
||
"review": [
|
||
{
|
||
"@type": "Review",
|
||
"author": { "@type": "Person", "name": "Cecily G." },
|
||
"reviewBody": "This system is the tool every engineer needs to be successful. Easy to use and captures metrics that no other system has successfully been able to pull for us.",
|
||
"reviewRating": { "@type": "Rating", "bestRating": 5, "ratingValue": 5, "worstRating": 1 }
|
||
},
|
||
{
|
||
"@type": "Review",
|
||
"author": { "@type": "Person", "name": "Christopher C." },
|
||
"reviewBody": "Great product suite, outstanding customer service! Running a distributed data pipeline is challenging to keep healthy, and Hosted Graphite has been an instrumental partner for monitoring system health and getting ahead of issues.",
|
||
"reviewRating": { "@type": "Rating", "bestRating": 5, "ratingValue": 5, "worstRating": 1 }
|
||
},
|
||
{
|
||
"@type": "Review",
|
||
"author": { "@type": "Person", "name": "UC" },
|
||
"reviewBody": "A great service with excellent support. Simple to use, inexpensive, and great support.",
|
||
"reviewRating": { "@type": "Rating", "bestRating": 5, "ratingValue": 5, "worstRating": 1 }
|
||
},
|
||
{
|
||
"@type": "Review",
|
||
"author": { "@type": "Person", "name": "Brendan C." },
|
||
"reviewBody": "High-quality metrics hosting. Hosted Graphite enables us to instrument our products and processes efficiently. We can proactively monitor for issues and use dashboards to identify more minor performance problems before they become major ones.",
|
||
"reviewRating": { "@type": "Rating", "bestRating": 5, "ratingValue": 5, "worstRating": 1 }
|
||
},
|
||
{
|
||
"@type": "Review",
|
||
"author": { "@type": "Person", "name": "Jacobson M." },
|
||
"reviewBody": "Perfect for remote device analytics. Hosted graphite makes it easy for me to keep track of my remote devices being used by my customers. I can't always be on site, so this allows easy tracking of device details.",
|
||
"reviewRating": { "@type": "Rating", "bestRating": 5, "ratingValue": 5, "worstRating": 1 }
|
||
},
|
||
{
|
||
"@type": "Review",
|
||
"author": { "@type": "Person", "name": "James C." },
|
||
"reviewBody": "The easiest way for DevOps to incorporate Kubernetes without having to suffer a paradigm shift away from using Graphite. Prometheus, while academically good, forces security worst practices which were unacceptable for us as a SOC2 compliant organization. Graphite is battle-proven and already integrated, so Hosted Graphite allowed us to do what we needed without drastic changes.",
|
||
"reviewRating": { "@type": "Rating", "bestRating": 5, "ratingValue": 5, "worstRating": 1 },
|
||
"datePublished": "2021-03-19"
|
||
},
|
||
{
|
||
"@type": "Review",
|
||
"author": { "@type": "Person", "name": "Anne M." },
|
||
"reviewBody": "Offers great hosting service, Hosted Graphite is quite easy to use and highly secure. I like how they offer the trial version to evaluate if the solution fits your needs. In terms of setup, it's easy with minimal registration details and flexible pricing.",
|
||
"reviewRating": { "@type": "Rating", "bestRating": 5, "ratingValue": 5, "worstRating": 1 },
|
||
"datePublished": "2019-02-20"
|
||
}
|
||
],
|
||
"operatingSystem": "All major operating systems",
|
||
"aggregateRating": {
|
||
"@type": "AggregateRating",
|
||
"reviewCount": 7,
|
||
"ratingValue": 4.85,
|
||
"bestRating": 5,
|
||
"worstRating": 1
|
||
},
|
||
"offers": {
|
||
"@type": "Offer",
|
||
"price": 19.00,
|
||
"priceCurrency": "USD",
|
||
"availability": "https://schema.org/InStock",
|
||
"url": "https://hostedgraphite.com",
|
||
"seller": {
|
||
"@type": "Organization",
|
||
"name": "Hosted Graphite"
|
||
}
|
||
}
|
||
}
|
||
</script></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=5a57aa76d1fa2300015ca244" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/js/webflow.schunk.36b8fb49256177c8.js" type="text/javascript"></script><script src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/js/webflow.schunk.83de43c5e9eda212.js" type="text/javascript"></script><script src="https://cdn.prod.website-files.com/5a57aa76d1fa2300015ca244/js/webflow.54e1a7f0.3d4248ede2db61fe.js" type="text/javascript"></script><!-- Google Tag Manager (noscript) -->
|
||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NT79GSP"
|
||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||
<!-- End Google Tag Manager (noscript) --><script>
|
||
img = document.querySelectorAll('.w-embed');
|
||
img.forEach(element => element.style.textAlign = 'center');
|
||
</script></body></html> |