Files
nexus/sreweekly/articles/26/03-autoscaling-on-complex-telemetry.html
2026-09-12 17:23:01 +08:00

1800 lines
167 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><!-- Last Published: Thu Sep 10 2026 16:27:10 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="webflow.cloudbees.com" data-wf-page="6a1fe2a5a11dca1afc48dd2b" data-wf-site="695e1939655d6c0175b126da" data-wf-intellimize-customer-id="117374858" lang="en" data-wf-collection="6a1fe2a4a11dca1afc48dd15" data-wf-item-slug="monitoring-with-bosun"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Monitoring with Bosun</title><meta content="Bosun is a monitoring and alerting system developed by Stack Exchange. Written in @golang" name="description"/><meta content="Monitoring with Bosun" property="og:title"/><meta content="Bosun is a monitoring and alerting system developed by Stack Exchange. Written in @golang" property="og:description"/><meta content="Monitoring with Bosun" name="twitter:title"/><meta content="Bosun is a monitoring and alerting system developed by Stack Exchange. Written in @golang" name="twitter:description"/><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/695e1939655d6c0175b126da/css/cloudbees-staging.shared.de709e9b8.min.css" rel="stylesheet" type="text/css" integrity="sha384-3nCem4UuiZHajW+HR0KDQRVI46PykPFAtPxnct426b/xTCCmlGUsL0dDDMM+wvJt" crossorigin="anonymous"/><style>@media (min-width:992px) {html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855b"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855d"] {-webkit-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="e08e7190-573b-1ed5-0f56-04bb938f6aff"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}}@media (max-width:991px) and (min-width:768px) {html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855b"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855d"] {-webkit-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="e08e7190-573b-1ed5-0f56-04bb938f6aff"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}}@media (max-width:767px) and (min-width:480px) {html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855b"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855d"] {-webkit-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="e08e7190-573b-1ed5-0f56-04bb938f6aff"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}}</style><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: ["Inconsolata:400,700","Inter:300,400,500,600,700"] }});</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/695e1939655d6c0175b126da/69712fa082fbe845b939a243_CloudBees-favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/69712fc6dc61f354e7d8715e_CloudBees-webclip.svg" rel="apple-touch-icon"/><link href="https://www.cloudbees.com/blog/monitoring-with-bosun" rel="canonical"/><script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Monitoring with Bosun",
"name": "Monitoring with Bosun - 99b8b4d9-52bc-4185-af2b-60f0343de7ed",
"description": "Bosun is a monitoring and alerting system developed by Stack Exchange. Written in @golang",
"url": "/blog/monitoring-with-bosun",
"image": "",
"datePublished": "2015-10-15",
"dateModified": "2026-06-05T08:56:44.808Z",
"author": {
"@type": "Person",
"name": "Barry Jones",
"image": "",
"jobTitle": ""
},
"publisher": {
"@type": "Organization",
"name": "CloudBees",
"logo": {
"@type": "ImageObject",
"url": "https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696254cf9924a1df0698d83e_Brand%20Logo.svg"
}
},
"articleSection": "",
"inLanguage": "en"
}
</script><style>.anti-flicker, .anti-flicker * {visibility: hidden !important; opacity: 0 !important;}</style><style>[data-wf-hidden-variation], [data-wf-hidden-variation] * {
display: none !important;
}</style><script type="text/javascript">if (localStorage.getItem('intellimize_data_tracking_type') !== 'disabled') { localStorage.setItem('intellimize_opt_out_117374858', 'true'); } if (localStorage.getItem('intellimize_data_tracking_type') !== 'disabled') { localStorage.setItem('intellimize_data_tracking_type', 'disabled'); }</script><script type="text/javascript">(function(e){var s={r:[]};e.wf={r:s.r,ready:t=>{s.r.push(t)}}})(window)</script><script type="text/javascript">(function(e,t,p){var n=document.documentElement,s={p:[],r:[]},u={p:s.p,r:s.r,push:function(e){s.p.push(e)},ready:function(e){s.r.push(e)}};e.intellimize=u,n.className+=" "+p,setTimeout(function(){n.className=n.className.replace(RegExp(" ?"+p),"")},t)})(window, 4000, 'anti-flicker')</script><link href="https://cdn.intellimize.co/snippet/117374858.js" rel="preload" as="script"/><script type="text/javascript">var wfClientScript=document.createElement("script");wfClientScript.src="https://cdn.intellimize.co/snippet/117374858.js",wfClientScript.async=!0,wfClientScript.onerror=function(){document.documentElement.className=document.documentElement.className.replace(RegExp(" ?anti-flicker"),"")},document.head.appendChild(wfClientScript);</script><link href="https://api.intellimize.co" rel="preconnect" crossorigin="true"/><link href="https://log.intellimize.co" rel="preconnect" crossorigin="true"/><link href="https://117374858.intellimizeio.com" rel="preconnect"/><link href="rss.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/><!-- OneTrust Cookies Consent Notice start for cloudbees.com -->
<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="30e8c8b5-5f2b-4d72-a544-f68ac4b5ebe8" ></script>
<script type="text/javascript">
function OptanonWrapper() {
// Get initial OnetrustActiveGroups ids
if(typeof OptanonWrapperCount == "undefined"){
otGetInitialGrps();
}
//Delete cookies
otDeleteCookie(otIniGrps);
// Assign OnetrustActiveGroups to custom variable
function otGetInitialGrps(){
OptanonWrapperCount = '';
otIniGrps = OnetrustActiveGroups;
// console.log("otGetInitialGrps", otIniGrps)
}
function otDeleteCookie(iniOptGrpId)
{
var otDomainGrps = JSON.parse(JSON.stringify(Optanon.GetDomainData().Groups));
var otDeletedGrpIds = otGetInactiveId(iniOptGrpId, OnetrustActiveGroups);
if(otDeletedGrpIds.length != 0 && otDomainGrps.length !=0){
for(var i=0; i < otDomainGrps.length; i++){
//Check if CustomGroupId matches
if(otDomainGrps[i]['CustomGroupId'] != '' && otDeletedGrpIds.includes(otDomainGrps[i]['CustomGroupId'])){
for(var j=0; j < otDomainGrps[i]['Cookies'].length; j++){
// console.log("otDeleteCookie",otDomainGrps[i]['Cookies'][j]['Name'])
//Delete cookie
eraseCookie(otDomainGrps[i]['Cookies'][j]['Name']);
}
}
//Check if Hostid matches
if(otDomainGrps[i]['Hosts'].length != 0){
for(var j=0; j < otDomainGrps[i]['Hosts'].length; j++){
//Check if HostId presents in the deleted list and cookie array is not blank
if(otDeletedGrpIds.includes(otDomainGrps[i]['Hosts'][j]['HostId']) && otDomainGrps[i]['Hosts'][j]['Cookies'].length !=0){
for(var k=0; k < otDomainGrps[i]['Hosts'][j]['Cookies'].length; k++){
//Delete cookie
eraseCookie(otDomainGrps[i]['Hosts'][j]['Cookies'][k]['Name']);
}
}
}
}
}
}
otGetInitialGrps(); //Reassign new group ids
}
//Get inactive ids
function otGetInactiveId(customIniId, otActiveGrp){
//Initial OnetrustActiveGroups
// console.log("otGetInactiveId",customIniId)
customIniId = customIniId.split(",");
customIniId = customIniId.filter(Boolean);
//After action OnetrustActiveGroups
otActiveGrp = otActiveGrp.split(",");
otActiveGrp = otActiveGrp.filter(Boolean);
var result=[];
for (var i=0; i < customIniId.length; i++){
if ( otActiveGrp.indexOf(customIniId[i]) <= -1 ){
result.push(customIniId[i]);
}
}
return result;
}
//Delete Cookies by Name Pattern
function findCookiesByPattern(cookieNamePattern){
var cookies = document.cookie.split(';');
var dataCookies = cookies.filter(function(cookie){
if (cookie.trim().indexOf(cookieNamePattern) === 0) {
var cookieName = cookie.substr(0,cookie.indexOf('='));
eraseCookie(cookieName)
return true;
} else {
return false;
}
});
}
//Delete cookie
function eraseCookie(name) {
if (name === '_ga_xxxxxxxxxx') {
findCookiesByPattern('_ga_')
}
if (name === '_gclxxxx') {
findCookiesByPattern('_gcl')
}
//Delete root path cookies
domainName = window.location.hostname;
domainNameDot = '.'+domainName.replace(/www./g, "");
document.cookie = name+'=; Max-Age=-99999999; Path=/;Domain='+ domainNameDot;
document.cookie = name+'=; Max-Age=-99999999; Path=/;Domain='+ domainName;
document.cookie = name+'=; Max-Age=-99999999; Path=/;';
//Delete LSO incase LSO being used, cna be commented out.
localStorage.removeItem(name);
//Check for the current path of the page
pathArray = window.location.pathname.split('/');
//Loop through path hierarchy and delete potential cookies at each path.
for (var i=0; i < pathArray.length; i++){
if (pathArray[i]){
//Build the path string from the Path Array e.g /site/login
var currentPath = pathArray.slice(0,i+1).join('/');
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + ';Domain='+ domainNameDot;
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + ';Domain='+ domainName;
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + ';';
//Maybe path has a trailing slash!
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + '/;Domain='+ domainNameDot;
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + '/;Domain='+ domainName;
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + '/;';
}
}
}
}
</script>
<!-- OneTrust Cookies Consent Notice end for cloudbees.com -->
<!-- WebFlow OneTrust Cookies Consent Integration -->
<script>
const runConsentMode = () => {
wf.ready(() => {
// Function to opt in or out based on consent preferences
const handleWebflowAnalyticsConsent = () => {
try {
// Logic to check consent groups from the OneTrust cookie
const otCookieKey = 'OptanonConsent=';
const otCookie = document.cookie.split('; ').find(row => row.startsWith(otCookieKey));
if (!otCookie) {
throw new Error('OneTrust cookie not found.');
}
const otGroupsKey = 'groups=';
const otGroups = decodeURIComponent(otCookie.split('&').find(row => row.startsWith(otGroupsKey)).split('=')[1]);
// OneTrust groups: 1 = necessary, 2 = performance, 3 = functional, 4 = targeting
const OT_FUNCTIONAL_CONSENT = 'C0003:1'; // Ensure this matches your expected consent group
// Check for functional cookies group
const hasOptedIn = otGroups.indexOf(OT_FUNCTIONAL_CONSENT) !== -1;
// Adjust Webflow Analytics opt-in/out based on consent
if (hasOptedIn) {
wf.allowUserTracking();
} else {
wf.denyUserTracking();
}
} catch (e) {
console.error('Error handling OneTrust consent:', e);
}
};
// Set up the OneTrust consent change listener to check when preferences change
if (typeof OneTrust !== 'undefined' && OneTrust.OnConsentChanged) {
OneTrust.OnConsentChanged(() => {
handleWebflowAnalyticsConsent();
});
}
// Initial check when the page loads
handleWebflowAnalyticsConsent();
});
};
if (typeof window.wf !== "undefined" && typeof window.wf.ready === "function") {
window.wf.ready(runConsentMode);
} else {
// fallback so your code still runs
document.addEventListener("DOMContentLoaded", runConsentMode);
console.warn("wf is not defined; using DOMContentLoaded fallback");
}
</script>
<!-- WebFlow OneTrust Cookies Consent Integration -->
<!-- Initial Google Consent Set to denied to match OneTrust -->
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Default is DENIED (matches your OneTrust default reject)
gtag('consent', 'default', {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied',
functionality_storage: 'denied',
personalization_storage: 'denied',
security_storage: 'granted',
wait_for_update: 500
});
</script>
<!-- End Initial Google Consent Set to denied to match OneTrust -->
<!-- Navattic JS (MKT-2104) — queue stub + async SDK, loaded for ALL visitors.
Moved here from the GTM "Navattic JS" tag so consent can be signalled via
setCookieConsent (see the OneTrust->Google sync below). Remove the GTM tag when this ships. -->
<script>
void 0===window.navatticQueue&&(window.navatticQueue=[],window.navattic=new Proxy({},{get:function n(t,u,e){return function(){for(var n=arguments.length,t=Array(n),e=0;e<n;e++)t[e]=arguments[e];return navatticQueue.push({function:u,arguments:t})}}}));
</script>
<script async src="https://js.navattic.com/sdk.js?key=pkey_cm9vjdepy000j04l4hexl9p18"></script>
<!-- End Navattic JS -->
<!-- Update Google Consent to match OneTrust Consent Categories-->
<script>
(function(){
const OT_ANALYTICS = "C0002"; // OneTrust Performance Cookies Group ID
const OT_FUNCTIONALITY = "C0003"; // OneTrust Functional Cookies Group ID
const OT_ADS_PERSONALIZATION = "C0004"; // OneTrust Targeting Cookies Group ID
function getGroups() {
const oc = document.cookie.split("; ").find(x => x.startsWith("OptanonConsent="));
if (!oc) return "";
const groupsParam = oc.split("&").find(x => x.startsWith("groups="));
return groupsParam ? decodeURIComponent(groupsParam.split("=")[1]) : "";
}
function syncConsentToGoogle() {
const groups = getGroups();
const analyticsOn = groups.includes(`${OT_ANALYTICS}:1`);
const functionalityOn = groups.includes(`${OT_FUNCTIONALITY}:1`);
const targettingOn = groups.includes(`${OT_ADS_PERSONALIZATION}:1`);
gtag("consent", "update", {
ad_storage: targettingOn ? "granted" : "denied",
ad_user_data: targettingOn ? "granted" : "denied",
ad_personalization: targettingOn ? "granted" : "denied",
analytics_storage: analyticsOn ? "granted" : "denied",
functionality_storage: functionalityOn ? "granted" : "denied",
personalization_storage: targettingOn ? "granted" : "denied",
});
// MKT-2104: mirror Targeting (C0004) consent to Navattic — runs anonymously (no cookies/PII) when denied,
// but still emits events so the Google Ads conversion can send a cookieless (modeled) ping.
try { navattic.setCookieConsent(targettingOn); } catch (e) {}
}
window.addEventListener("OneTrustGroupsUpdated", syncConsentToGoogle);
syncConsentToGoogle();
})();
</script>
<!-- End Update Google Consent to match OneTrust Consent Categories-->
<!-- 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-KMJ7D77');</script>
<!-- End Google Tag Manager -->
<!-- Ad Attribution Session Storage -->
<script>
(function () {
const params = new URLSearchParams(window.location.search);
const utms = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
const captured = {};
utms.forEach((key) => {
if (params.get(key)) captured[key] = params.get(key);
});
if (Object.keys(captured).length > 0) {
// Tag the originating page so we know where the session started
captured.utm_landing_page = window.location.pathname;
sessionStorage.setItem('cb_ad_attribution', JSON.stringify(captured));
}
})();
</script>
<!-- End Ad Attribution Session Storage -->
<style>
.nav__banner {
display: none;
}
.nav__banner.show {
display: block;
}
</style>
<!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.io/js/pa-hcJukO43tqwUkZ00jY7P2.js"></script>
<script>
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
plausible.init()
</script><!--head code-->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400&display=swap" rel="stylesheet">
<!-- <meta
property="og:image"
content="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a8569f061da12045317c7d2_OG%20-%20%20CloudBees%20Blog.png"
> --></head><body><div class="page-wrapper"><div class="styles"><div class="global-styles w-embed"><style>
/* Make text look crisper and more legible in all browsers */
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
/* Focus state style for keyboard navigation for the focusable elements */
*[tabindex]:focus-visible,
input[type="file"]:focus-visible {
outline: 0.125rem solid #4d65ff;
outline-offset: 0.125rem;
}
/* Get rid of top margin on first element in any rich text element */
.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
margin-top: 0 !important;
}
/* Get rid of bottom margin on last element in any rich text element */
.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
margin-bottom: 0 !important;
}
/* Create a class of .div-square which maintains a 1:1 dimension of a div */
.div-square::after {
content: "";
display: block;
padding-bottom: 100%;
}
/* Make sure containers never lose their center alignment */
.container-medium,.container-small, .container-large, .container-huge {
margin-right: auto !important;
margin-left: auto !important;
}
/*
Make the following elements inherit typography styles from the parent and not have hardcoded values.
Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
Uncomment this CSS to use it in the project. Leave this message for future hand-off.
*/
/*
a,
.w-input,
.w-select,
.w-tab-link,
.w-nav-link,
.w-dropdown-btn,
.w-dropdown-toggle,
.w-dropdown-link {
color: inherit;
text-decoration: inherit;
font-size: inherit;
}
*/
/* Apply "..." after 3 lines of text */
.ts-3lines {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
/* Apply "..." after 2 lines of text */
.ts-2lines {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
/* Apply "..." after 1 lines of text */
.ts-1line {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
/* Adds inline flex display */
.display-inlineflex {
display: inline-flex;
}
/* These classes are never overwritten */
.hide {
display: none !important;
}
@media screen and (max-width: 991px),
@media screen and (max-width: 767px),
@media screen and (max-width: 479px){
.hide, .hide-tablet{
display: none !important;
}
}
@media screen and (max-width: 767px)
.hide-mobile-landscape{
display: none !important;
}
}
@media screen and (max-width: 479px)
.hide-mobile{
display: none !important;
}
}
/* Removes native scrollbar */
.no-scrollbar,
[data-scrollbar="none"] {
-ms-overflow-style: none; /* For Internet Explorer and Edge */
overflow: -moz-scrollbars-none; /* For Firefox */
}
.no-scrollbar::-webkit-scrollbar,
[data-scrollbar="none"]::-webkit-scrollbar {
display: none; /* For Chrome, Safari, and Opera */
}
[x-clip] {
overflow-x: clip;
}
body.popup-open {
overflow: hidden;
padding-right: var(--scrollbar-width);
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.mktoCaptchaDisclaimer {
color: #666;
}
</style></div><div class="project-styles w-embed"><style>
.button:hover .button-arrow {
transform: translateX(2px);
}
.btn-contrast .btn-icon {
filter: invert(6%) sepia(12%) saturate(420%) hue-rotate(200deg) brightness(20%) contrast(110%);
}
.btn-sm .btn-icon {
width: 1.25rem;
height: 1.25rem;
}
.swiper-arrow.swiper-button-disabled {
pointer-events: none;
color: var(--_tokens---button--secondary-disabled);
border-color: var(--_tokens---button--secondary-disabled);
}
.contact_rte ul > li:before,
.tabs_rte ul > li:before,
.main_rte ul > li:before,
.main_rte-p2 ul > li:before {
content: '';
height: 1.25rem;
width: 1.25rem;
min-width: 1.25rem;
margin-top: 0.125rem;
display: block;
position: absolute;
left: -2rem;
background: url('https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6965dcada9cbb61894fcd729_check-circle-secondary.svg') center no-repeat;
background-size: contain;
}
.contact_rte p:has(+ ul),
.contact_rte p:has(+ ol) {
margin-bottom: 1rem !important;
}
.white_rte ul > li:before,
.article_white_rte ul > li:before {
content: '';
height: 1.5rem;
width: 1.5rem;
min-width: 1.5rem;
margin-top: 0.125rem;
display: block;
background: url('https://cdn.prod.website-files.com/695e1939655d6c0175b126da/69611147c4643f011be05298_check-circle.svg') center no-repeat;
background-size: contain;
}
.global_section:has(.global_frame) {
padding: 0 var(--_spacing---padding--side-20);
}
.global_section:has(.global_frame-no-border) {
padding-left: var(--_spacing---padding--side-20);
padding-right: var(--_spacing---padding--side-20);
}
.story_bg-wr {
overflow-x: clip;
}
.side_layout:last-child {
margin-bottom: 0;
}
.product_swiper-tab-bullet .product_tab_logo {
opacity: 0.4;
}
.product_swiper-tab-bullet.is-active .product_tab_logo {
opacity: 0.7;
}
@media (min-width: 480px) {
.product_tab-link_logo {
display: none;
}
}
.logo-ribbon-wr {
-webkit-mask: linear-gradient(90deg, #00000000 0%, #000000 10% 90%, #00000000 100%);
mask: linear-gradient(90deg, #00000000 0%, #000000 10% 90%, #00000000 100%);
}
#popup-content .wistia_embed {
width: 100% !important;
aspect-ratio: 16/9 !important;
}
.story_img-wr .ts-cap {
margin: 0 auto;
max-width: 90%;
text-align: center;
}
.cms_share-link.is-copied .is-url {
opacity: 0;
}
.cms_share-link.is-copied .is-url-check {
opacity: 1;
}
</style></div><div class="w-embed"><style>
.logo-ribbon-wr.is-investor .logo-ribbon_row-wr {
opacity: 1;
}
/* Logo Ribbon Animation */
@keyframes scroll {
from {
transform: translateX(0);
}
to {
transform: translateX(calc(-100% - 6.25rem));
}
}
.logo-ribbon_row-wr {
animation: scroll 35s linear infinite;
}
/* Mobile Styles */
@media (max-width: 767px) { /* Adjust the max-width as needed */
@keyframes scroll {
from {
transform: translateX(0);
}
to {
transform: translateX(calc(-100% - 3.5rem));
}
}
.logo-ribbon_row-wr {
animation: scroll 30s linear infinite;
}
}
</style></div></div><div data-banner="show" class="nav__banner"><div class="top-banner_code w-embed w-script"><script>
document.addEventListener('DOMContentLoaded', function () {
const banner = document.querySelector('.nav__banner');
const closeButton = document.getElementById('banner-close');
// 👀 Check if banner should be shown based on attribute
const bannerState = banner?.getAttribute('data-banner');
if (bannerState === 'hide') {
banner?.classList.remove('show');
return; // skip all logic
}
const lastShown = localStorage.getItem('bannerLastShown');
const now = new Date();
let shouldShow = true;
if (lastShown) {
const lastShownDate = new Date(lastShown);
const diffDays = Math.floor((now - lastShownDate) / (1000 * 60 * 60 * 24));
if (diffDays <= 7) {
shouldShow = false;
}
}
const bannerClosed = localStorage.getItem('bannerClosed');
if (bannerClosed === 'true') {
shouldShow = false;
}
if (shouldShow) {
banner?.classList.add('show');
}
closeButton?.addEventListener('click', function () {
banner?.classList.remove('show');
localStorage.setItem('bannerClosed', 'true');
localStorage.setItem('bannerLastShown', now.toISOString());
});
});
</script></div><div id="banner-close" class="nav-banner__close-button"><div class="nav-banner__close-button__image w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z" fill="currentcolor"/>
</svg></div></div><div href="#" class="nav-banner__content__wrapper"><div class="nav-banner__content"><div class="banner_label">New</div><p id="nav-banner-text" class="nav-banner-text">A note from our new CEO Moritz Plassnig</p><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a856:065b8505-25cf-4b0e-3cb3-92c9f08f6f13" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="065b8505-25cf-4b0e-3cb3-92c9f08f6f13" data-wf-component-context="%5B%7B%22componentId%22%3A%22065b8505-25cf-4b0e-3cb3-92c9f08f6f09%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a856%22%7D%5D" href="https://www.cloudbees.com/blog/introducing-moritz-plassnig-cloudbees-ceo/" class="btn is-text-sm is-nav-banner w-inline-block"><div>Read the announcement</div><div class="icon-regular w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.5137 6.46826C13.8078 6.17663 14.2825 6.17816 14.5742 6.47217L19.5322 11.4722C19.8219 11.7646 19.8221 12.2365 19.5322 12.5288L14.5742 17.5288C14.2826 17.8225 13.8077 17.824 13.5137 17.5327C13.2198 17.2411 13.2175 16.7663 13.5088 16.4722L17.2002 12.7505H5C4.58595 12.7505 4.25026 12.4145 4.25 12.0005C4.25 11.5863 4.58579 11.2505 5 11.2505H17.2002L13.5088 7.52881C13.2173 7.2348 13.2199 6.75994 13.5137 6.46826Z" fill="currentcolor"/>
</svg></div></a></div></div></div><div class="header-wr"><div class="nav-styles w-embed"><style>
.header.scroll .header__bg {
opacity: 1;
}
.nav__dd-trigger.w--open .nav__dd_arrow {
transform: rotateZ(180deg);
}
.nav__dd_menu-wr .nav__dd_group:last-child {
border-right: none;
}
@media screen and (min-width: 1280px) {
.nav__menu-list:has(.nav__dd-trigger[dd="small"].w--open) {
position: relative;
}
.nav__menu-list:not(:has(.nav__dd-trigger[dd="small"].w--open)) {
position: static;
}
.nav__dd-trigger[dd="small"] + .nav__dd-content {
top: 28px;
}
}
@media (max-width: 767px) {
.btn-nav .btn-text {
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3);
}
</style></div><header id="header" class="header"><div class="header__container"><a aria-label="Go to Home page" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b3e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b3e" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="/" class="header__brand w-inline-block"><img loading="eager" src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696254cf9924a1df0698d83e_Brand%20Logo.svg" alt="CloudBees Logo" class="company-logo_img"/></a><div class="nav__layout"><nav class="nav__menu-list"><div class="mobile_header"><a aria-label="Go to Home page" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b43" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b43" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="/" class="header__brand w-inline-block"><img loading="eager" src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696254cf9924a1df0698d83e_Brand%20Logo.svg" alt="CloudBees Logo" class="company-logo_img"/></a><div class="mobile_header-btn-wr"><div class="header__buttons-wr"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b47" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b47" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="https://www.cloudbees.com/contact-us" class="btn-nav btn-primary w-inline-block"><div class="btn-text">Book a demo</div></a></div><a data-w-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b4c" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b4c" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b4c" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="#" class="nav__menu-button w-inline-block"><div class="nav__menu-icon is-cross w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.4697 4.46985C14.7626 4.17696 15.2374 4.17696 15.5303 4.46985C15.8231 4.76275 15.8231 5.23754 15.5303 5.5304L11.0605 10.0001L15.5303 14.4698C15.8231 14.7628 15.8231 15.2375 15.5303 15.5304C15.2374 15.8233 14.7626 15.8232 14.4697 15.5304L10 11.0607L5.53027 15.5304C5.23742 15.8233 4.76263 15.8232 4.46973 15.5304C4.17683 15.2375 4.17683 14.7627 4.46973 14.4698L8.93945 10.0001L4.46973 5.5304C4.17683 5.2375 4.17683 4.76274 4.46973 4.46985C4.76262 4.17696 5.23738 4.17696 5.53027 4.46985L10 8.93958L14.4697 4.46985Z" fill="white"/>
</svg></div></a></div></div><ul data-scrollbar="none" role="list" class="nav__menu"><li class="nav__list-item"><div data-delay="0" data-hover="false" class="nav__dd w-dropdown"><div dd="small" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b51" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b51" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" class="nav__dd-trigger w-dropdown-toggle"><div>Product</div><div class="nav__dd_arrow w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M14.4697 6.96985C14.7626 6.67696 15.2374 6.67696 15.5303 6.96985C15.8231 7.26275 15.8231 7.73754 15.5303 8.0304L10.5303 13.0304C10.2374 13.3233 9.76263 13.3232 9.46973 13.0304L4.46973 8.0304C4.17683 7.7375 4.17683 7.26274 4.46973 6.96985C4.76262 6.67696 5.23738 6.67696 5.53027 6.96985L10 11.4396L14.4697 6.96985Z" fill="white" fill-opacity="0.5"/>
</svg></div></div><nav class="nav__dd-content w-dropdown-list"><div class="nav__dd_menu-wr is-small"><div id="w-node-f74b5068-adc7-1a9c-53c4-9f2f35f2a1be-35f2a1bd" class="nav__dd_group is-link"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1bf" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1bf" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" href="/unify" class="nav__dd_featured-link w-inline-block"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6984deccc2defde3d4f42ad0_f2942b06ac3aa33a70161ed027fdea6b_Unify-Overview-nav-feature.avif" loading="eager" sizes="100vw" srcset="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6984deccc2defde3d4f42ad0_f2942b06ac3aa33a70161ed027fdea6b_Unify-Overview-nav-feature-p-500.avif 500w, https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6984deccc2defde3d4f42ad0_f2942b06ac3aa33a70161ed027fdea6b_Unify-Overview-nav-feature.avif 744w" alt="CloudBees Unify Analytics screen." class="nav__dd_featured-img"/><div class="nav__dd_featured_text-group"><div class="nav__dd_featured_text-wr"><div class="nav__dd_link-title">CloudBees Unify Overview</div></div><p class="nav__dd_link-desc">CloudBees Unify gives enterprises one shared language across the SDLC.</p><div class="btn is-text-sm"><div>Explore</div><div class="icon-regular w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.5137 6.46826C13.8078 6.17663 14.2825 6.17816 14.5742 6.47217L19.5322 11.4722C19.8219 11.7646 19.8221 12.2365 19.5322 12.5288L14.5742 17.5288C14.2826 17.8225 13.8077 17.824 13.5137 17.5327C13.2198 17.2411 13.2175 16.7663 13.5088 16.4722L17.2002 12.7505H5C4.58595 12.7505 4.25026 12.4145 4.25 12.0005C4.25 11.5863 4.58579 11.2505 5 11.2505H17.2002L13.5088 7.52881C13.2173 7.2348 13.2199 6.75994 13.5137 6.46826Z" fill="currentcolor"/>
</svg></div></div></div></a></div><div class="nav__dd_group is-small"><ul role="list" class="nav__dd_links_list is-1col is-first"><li><a href="/capabilities/ci-cd-workflows" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1cd" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1cd" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976938a76b54533480c_cd57991f6dbd9328eda91ca192bfeea3_workflow.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">CI/CD</div><p class="nav__dd_link-desc">Streamline CI/CD workflows for faster innovation and reliable deployments</p></div></a></li><li><a href="/capabilities/compliance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1d6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1d6" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0c88dd3eb1f35371ef1f_28cb23b26a1cbf8530073bffa6ab8f59_shield-check.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Security and Compliance</div><p class="nav__dd_link-desc">Continuous security and compliance assessment with control insights</p></div></a></li><li><a href="/capabilities/feature-management" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1df" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1df" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09758beb7f5fc8c2d179_6cd04eba7a6b0b34a9e98db62bd08f7e_flag.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Feature Management</div><p class="nav__dd_link-desc">Control feature rollouts with flags for safer, faster releases and testing</p></div></a></li></ul></div><div class="nav__dd_group is-small"><ul role="list" class="nav__dd_links_list is-1col"><li><a href="/capabilities/cloudbees-smart-tests" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1ea" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1ea" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975c1d9a5fab249c9b2_563273da20b713605c4625ca0ba0cc09_flask-conical.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Smart Tests</div><p class="nav__dd_link-desc">AI-driven test intelligence that delivers developer feedback 80% faster</p></div></a></li><li><a href="/capabilities/release-orchestration" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1f3" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1f3" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976e9236cb5e93c4c16_17a9899912c5755e26e2d7362c206518_waypoints.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Release Orchestration</div><p class="nav__dd_link-desc">Orchestrate complex releases with DevOps ecosystem visibility</p></div></a></li><li><a href="/capabilities/analytics" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1fc" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1fc" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975b85d7acb849512d2_f7d862b2e5c030eb99eac717ed65ff00_chart-column.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Analytics</div><p class="nav__dd_link-desc">Single source of truth for software delivery insights and metrics</p></div></a></li></ul></div></div></nav></div></li><li class="nav__list-item"><div data-delay="0" data-hover="false" class="nav__dd w-dropdown"><div dd="small" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b59" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b59" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" class="nav__dd-trigger w-dropdown-toggle"><div>Solutions</div><div class="nav__dd_arrow w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M14.4697 6.96985C14.7626 6.67696 15.2374 6.67696 15.5303 6.96985C15.8231 7.26275 15.8231 7.73754 15.5303 8.0304L10.5303 13.0304C10.2374 13.3233 9.76263 13.3232 9.46973 13.0304L4.46973 8.0304C4.17683 7.7375 4.17683 7.26274 4.46973 6.96985C4.76262 6.67696 5.23738 6.67696 5.53027 6.96985L10 11.4396L14.4697 6.96985Z" fill="white" fill-opacity="0.5"/>
</svg></div></div><nav class="nav__dd-content w-dropdown-list"><div class="nav__dd_menu-wr is-solutions"><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Use Cases</p></div><ul role="list" class="nav__dd_links_list"><li><a href="/use-case/jenkins-modernization" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bd8d" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bd8d" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097657c04ac5445ae13b_1e2655369bf05b4c399a533ce3eb3a04_server-cog.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">AI-Powered CI</div></div></a></li><li><a href="/use-case/agentic-devops" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bd96" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bd96" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097521987fff4d2849a2_3470f8c00f2f5ea8f1e1e7d1d8e380c5_bot.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Governed AI software delivery</div></div></a></li><li><a href="/use-case/orchestration-and-governance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bd9f" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bd9f" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976c8ea52b40d7228ae_d14f4e4bd20ee92db2d44d35057f898e_network.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Multi-tool release orchestration</div></div></a></li><li><a href="/use-case/security-and-compliance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bda8" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bda8" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097552e78c474078eae9_2e34c7f0d98b1272a44c7002b60ff4e4_brick-wall-shield.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Continuous Security and Compliance</div></div></a></li></ul></div><div id="w-node-_44a36620-13c5-fbfe-5a1a-6f9877d1bdb0-77d1bd86" class="nav__dd_group is-wide"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Industries</p></div><ul role="list" class="nav__dd_links_list is-2col"><li><a href="/industries/automotive" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdb6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdb6" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975d02ebe816d59a6a2_f2a2a13a1181cd590a39ba6b764ec8be_car.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Automotive</div></div></a></li><li><a href="/industries/government" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdbf" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdbf" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09758c5181fd620d8cc0_e1e65c44301b4f93edb9c5043193d1a9_landmark.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Government</div></div></a></li><li><a href="/industries/financial-services" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdc8" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdc8" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097527b3e2ada1f3b27d_9b267388f792400b2c9cf3fe8e57dc75_banknote.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Financial Services</div></div></a></li><li><a href="/industries/insurance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdd1" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdd1" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976b084ff39f338a53a_07417b9c5387fb085880b29a50c1441d_umbrella.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Insurance</div></div></a></li><li><a href="/industries/retail" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdda" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdda" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09761ce0ab5e29c71c4d_d0b8cb6b161886e01480db7f4bc2a6ea_store.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Retail</div></div></a></li><li><a href="/industries/software" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bde3" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bde3" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0a825af84f44d78a96a0_b49b3d53bcc604cf9dd8844268a91d30_code.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Software</div></div></a></li></ul></div></div></nav></div></li><li class="nav__list-item"><div data-delay="0" data-hover="false" class="nav__dd w-dropdown"><div data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b61" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b61" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" class="nav__dd-trigger w-dropdown-toggle"><div>Resources</div><div class="nav__dd_arrow w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M14.4697 6.96985C14.7626 6.67696 15.2374 6.67696 15.5303 6.96985C15.8231 7.26275 15.8231 7.73754 15.5303 8.0304L10.5303 13.0304C10.2374 13.3233 9.76263 13.3232 9.46973 13.0304L4.46973 8.0304C4.17683 7.7375 4.17683 7.26274 4.46973 6.96985C4.76262 6.67696 5.23738 6.67696 5.53027 6.96985L10 11.4396L14.4697 6.96985Z" fill="white" fill-opacity="0.5"/>
</svg></div></div><nav class="nav__dd-content w-dropdown-list"><div class="nav__dd_menu-wr is4col"><div id="w-node-_21a8087d-8638-67de-c541-223e68ebb0b4-68ebb0b3" class="nav__dd_group is-wide-desktop"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Discover</p></div><ul role="list" class="nav__dd_links_list is-2col-desktop"><li><a href="https://ai.cloudbees.com/" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0ba" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0ba" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975be99e833813f5160_cb6c952934afa1d03155a6159f42086b_badge-plus.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">AI Design Partner Program</div></div></a></li><li><a href="/resources" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0c3" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0c3" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09757234a36b32ee7169_ba0212838c74830ebdf16ad261a51b42_layout-dashboard.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Resources Overview Page</div></div></a></li><li><a href="/blog" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0cc" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0cc" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976869064c0e6744f8c_3c5a6dc0f9fc9395357b740b417f062d_newspaper.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Blog</div></div></a></li><li><a href="/videos" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0d5" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0d5" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976a0447e86bed71d08_d795c7a1294838e19c44f8da0ffe5787_video.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Webinars &amp; Videos</div></div></a></li><li><a href="/events" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0de" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0de" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975938a76b5453347d7_179a2818d919a6d5fef9097c81065d75_calendar-days.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Events</div></div></a></li><li><a href="/guides" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0e7" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0e7" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696df108b936a6f63633120c_7849291e3649d0271f631c42bdcdd886_book-open.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Guides &amp; Reports</div></div></a></li><li><a href="/customers" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0f0" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0f0" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097650f2564e14ec0eb3_b802ac4a7e0941a9e356067dfd2c4f12_message-square-quote.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Customer Stories</div></div></a></li></ul></div><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Security</p></div><ul role="list" class="nav__dd_links_list"><li><a href="/company/trust-center" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0fe" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0fe" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696df1419d6732a58ee8ce63_94d64edb7b15a61e7804eed6daf31083_check-badge.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Trust Center</div></div></a></li><li><a href="/security-advisories" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb107" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb107" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975ba9dff321c25ddb7_9a1c14dcbff9ea42680fdaeb3898ea19_bell.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Security Advisories</div></div></a></li></ul></div><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Get help</p></div><ul role="list" class="nav__dd_links_list"><li><a href="https://docs.cloudbees.com/" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb115" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb115" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09754634f217840601fe_649681123281e64f9f98cc26c7df78f9_book-marked.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Documentation</div></div></a></li><li><a href="https://support.cloudbees.com/hc/en-us" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb11e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb11e" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976b80f2c2e10077fae_d10dce94a66917c7f89f23e94160623b_life-buoy.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Support</div></div></a></li><li><a href="/services" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb127" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb127" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09760bb9a89b4cd2c5b1_8b27954584753d420f4b82dc295da19f_user-check.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Customer Success &amp; Professional Services</div></div></a></li></ul></div></div></nav></div></li><li class="nav__list-item"><div data-delay="0" data-hover="false" class="nav__dd w-dropdown"><div dd="small" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b69" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b69" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" class="nav__dd-trigger w-dropdown-toggle"><div>About</div><div class="nav__dd_arrow w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M14.4697 6.96985C14.7626 6.67696 15.2374 6.67696 15.5303 6.96985C15.8231 7.26275 15.8231 7.73754 15.5303 8.0304L10.5303 13.0304C10.2374 13.3233 9.76263 13.3232 9.46973 13.0304L4.46973 8.0304C4.17683 7.7375 4.17683 7.26274 4.46973 6.96985C4.76262 6.67696 5.23738 6.67696 5.53027 6.96985L10 11.4396L14.4697 6.96985Z" fill="white" fill-opacity="0.5"/>
</svg></div></div><nav class="nav__dd-content w-dropdown-list"><div class="nav__dd_menu-wr is-about"><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Company</p></div><ul role="list" class="nav__dd_links_list"><li><a href="/about-us" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce36" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce36" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/697b1a52df58ada7ee5f9df2_8aadef5ab9f241b2aa20fdb150069428_cbinfinity.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">About Us</div></div></a></li><li><a href="/newsroom" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce3f" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce3f" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975d714fe3434073553_706f8a7511a42063d1e10a5885077c15_megaphone.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Press and Recognition</div></div></a></li><li><a href="/partners" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce48" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce48" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975e3fe7c8e139a90bb_b3de2cd5abd8ac9b64c44ef8d8b42a6a_handshake.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Partners</div></div></a></li><li><a href="/careers" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce51" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce51" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09750bb9a89b4cd2c510_bdd0e13348a8518659eedf4409e714b8_briefcase-business.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Careers</div></div></a></li></ul></div><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Compare CloudBees</p></div><ul role="list" class="nav__dd_links_list"><li><a href="/vs" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce5f" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce5f" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">CloudBees vs All Competitors</div></div></a></li><li><a href="/blog/cloudbees-vs-github-actions-choosing-a-ci-cd-platform-for-your-business" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce68" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce68" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs GitHub Actions</div></div></a></li><li><a href="/vs/cloudbees-vs-gitlab" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:2e5052c0-21c9-c12f-736f-07d0f9da71bc" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="2e5052c0-21c9-c12f-736f-07d0f9da71bc" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs GitLab</div></div></a></li><li><a href="/vs/cloudbees-vs-harness" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:820dab86-65ae-55c8-e3cd-d57a30f4cb29" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="820dab86-65ae-55c8-e3cd-d57a30f4cb29" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs Harness</div></div></a></li><li><a href="/blog/cloudbees-ci-enhancing-jenkins-for-business-and-mission-critical" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce71" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce71" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs Jenkins Open Source</div></div></a></li><li><a href="/vs/cloudbees-vs-launchdarkly" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce7a" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce7a" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs LaunchDarkly</div></div></a></li></ul></div><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Featured article</p></div><div class="nav__dd_links_list"><a id="w-node-_8ee7248b-4f5b-1b67-86b3-dfde38e3ce87-38e3ce2f" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce87" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce87" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" href="/blog/introducing-moritz-plassnig-cloudbees-ceo" class="nav__dd_featured-link plausible-event-name--navfeaturedarticleclick w-inline-block"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig.jpg" loading="eager" sizes="100vw" srcset="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig-p-500.jpg 500w, https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig-p-800.jpg 800w, https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig-p-1080.jpg 1080w, https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig.jpg 1280w" alt="2026 Winner Cybersecurity Excellence Awards" class="nav__dd_featured-img"/><div class="nav__dd_featured_text-group"><div class="nav__dd_featured_text-wr"><div class="nav__dd_link-title">A Note from CloudBees’ New CEO</div></div><div class="btn is-text-sm"><div>Explore</div><div class="icon-regular w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.5137 6.46826C13.8078 6.17663 14.2825 6.17816 14.5742 6.47217L19.5322 11.4722C19.8219 11.7646 19.8221 12.2365 19.5322 12.5288L14.5742 17.5288C14.2826 17.8225 13.8077 17.824 13.5137 17.5327C13.2198 17.2411 13.2175 16.7663 13.5088 16.4722L17.2002 12.7505H5C4.58595 12.7505 4.25026 12.4145 4.25 12.0005C4.25 11.5863 4.58579 11.2505 5 11.2505H17.2002L13.5088 7.52881C13.2173 7.2348 13.2199 6.75994 13.5137 6.46826Z" fill="currentcolor"/>
</svg></div></div></div></a></div></div></div></nav></div></li></ul></nav><div class="header__buttons-wr"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b74" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b74" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="https://www.cloudbees.com/contact-us" data-wf-event-ids="157073893" class="btn-nav btn-primary w-inline-block"><div class="btn-text">Book a demo</div></a></div><a aria-label="Open navigation menu" data-w-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b79" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b79" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b79" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="#" class="nav__menu-button w-inline-block"><div class="nav__menu-icon is-lines w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.665 15.083C17.0791 15.083 17.4149 15.4189 17.415 15.833C17.415 16.2472 17.0793 16.583 16.665 16.583H3.33203C2.91797 16.5828 2.58203 16.2471 2.58203 15.833C2.58221 15.4191 2.91808 15.0832 3.33203 15.083H16.665ZM16.665 9.25C17.0793 9.25 17.415 9.58579 17.415 10C17.415 10.4142 17.0793 10.75 16.665 10.75H3.33203C2.91797 10.7498 2.58203 10.4141 2.58203 10C2.58203 9.58589 2.91797 9.25018 3.33203 9.25H16.665ZM16.665 3.41699C17.0793 3.41699 17.415 3.75278 17.415 4.16699C17.4149 4.58106 17.0791 4.91699 16.665 4.91699H3.33203C2.91808 4.91682 2.58221 4.58095 2.58203 4.16699C2.58203 3.75289 2.91797 3.41717 3.33203 3.41699H16.665Z" fill="white"/>
</svg></div></a></div></div><div class="header__bg"></div></header></div><div class="page-styles"><div class="w-embed"><style>
.article_rte .w-code-block {
background-color: var(--gray--100) !important;
border-radius: 1rem;
font-size: var(--_typography---size--p2)!important;
}
.article_rte h1 > strong,
.article_rte h2 > strong,
.article_rte h3 > strong,
.article_rte h4 > strong,
.article_rte h5 > strong{
font-weight:normal;
}
.article_rte blockquote > strong {
display: block;
margin-top: 16px;
color: var(--_tokens---text--inverted-primary);
font-size: var(--_typography---size--p2);
line-height: var(--_typography---height--p2);
font-weight: 400;
}
.article_rte blockquote > strong > em {
display: block;
margin-top: 4px;
color: var(--_tokens---text--inverted-secondary);
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3);
font-weight: 400;
font-style: normal;
}
.toc_nav::-webkit-scrollbar {
width: 0.625rem !important;
}
/* Track */
.toc_nav::-webkit-scrollbar-track {
background: transparent;
margin-top: 0.75rem;
margin-bottom: 0.75rem;
}
/* Handle */
.toc_nav::-webkit-scrollbar-thumb {
background: var(--_tokens---border--inverted-default);
border-radius: 6px;
border: 3px solid #FAFAFA;
}
.w-richtext figure.w-richtext-align-fullwidth {
border-radius: 0.75rem;
overflow: hidden;
}
</style></div><div class="cc-element w-embed"><style>
.cms_share-link .is-url,
.cms_share-link .is-url-check {
transition: opacity 200ms ease;
}
.cms_share-link .is-url {
opacity: 1 !important;
}
.cms_share-link .is-url-check {
opacity: 0 !important;
}
.cms_share-link.is-copied .is-url {
opacity: 0 !important;
}
.cms_share-link.is-copied .is-url-check {
opacity: 1 !important;
}
</style></div><div class="cc-element w-embed"><style>
/* === TABLE LAYOUT === */
.w-embed table {
width: 100%;
min-width: 100%;
table-layout: fixed;
border: 1px solid var(--_tokens---border--inverted-default);
border-radius: 0.75rem;
background-color: var(--gray-alpha--02);
overflow: hidden;
border-collapse: separate;
position: relative;
z-index: 0;
margin: 1.5rem 0;
}
.w-embed table td ul {
margin-top: 0rem;
margin-bottom: 0rem;
gap: 0;
}
.w-embed table td ul li {
margin-bottom: 0rem;
}
/* === CELLS === */
.w-embed th,
.w-embed td {
max-width: 33.33%;
padding: 1rem;
position: relative;
z-index: 1;
}
.w-embed td {
border-top: 1px solid var(--_tokens---border--inverted-default);
vertical-align: top;
font-weight: 400;
}
.w-embed th:not(:first-child),
.w-embed td:not(:first-child) {
border-left: 1px solid var(--_tokens---border--inverted-default);
}
/* Remove border on last row and first if there is no header */
.w-embed tbody tr:last-child {
border-bottom: none !important;
}
.w-embed table:not(:has(thead)) tbody tr:first-child td {
border-top: none;
}
/* tight head cells */
.table-feature-comparison th:not(:first-child) {
padding: 1rem 0.375rem;
}
/* Alignment */
.w-embed th {
text-align: left;
vertical-align: middle;
}
/* Header background */
.w-embed thead {
background-color: var(--gray-alpha--02);
}
/* === TEXT === */
.w-embed th {
font-size: var(--_typography---size--p2);
line-height: var(--_typography---height--p2);
color: var(--_tokens---text--inverted-primary);
font-weight: 500;
}
/* First column (feature) */
.w-embed td:first-child {
font-size: var(--_typography---size--p2);
line-height: var(--_typography---height--p2);
color: var(--_tokens---text--inverted-primary);
}
/* Default cells */
.w-embed td {
font-size: var(--_typography---size--p2);
line-height: var(--_typography---height--p2);
color: var(--_tokens---text--inverted-primary);
white-space: normal;
overflow-wrap: break-word;
}
/* Caption */
.w-embed caption {
caption-side: bottom;
padding-top: 0.75rem;
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3);
color: var(--_tokens---text--inverted-secondary);
}
/* === ADDITIONAL COLORS === */
.table-pass {
color: var(--_tokens---text--inverted-success);
font-weight: 700;
}
.table-fail {
color: var(--_tokens---text--inverted-error);
font-weight: 700;
}
.table-high {
color: var(--_tokens---text--inverted-warning);
font-weight: 700;
}
.table-muted {
color: var(--_tokens---text--inverted-misc);
}
.table-check {
color: var(--_tokens---text--inverted-success);
font-weight: 700;
}
.table-cross {
color: var(--_tokens---text--inverted-error);
font-weight: 700;
}
.table-feature-title {
display: block;
font-weight: 600;
}
.table-feature-description {
display: block;
color: var(--_tokens---text--inverted-secondary);
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3);
}
.table-highlight-column {
background: var(--blue--100);
}
/* === COMPARISON TABLE === */
.table-feature-comparison table {
table-layout: fixed;
}
.table-feature-comparison td,
.table-feature-comparison th {
vertical-align: middle;
}
.table-feature-comparison th:first-child,
.table-feature-comparison td:first-child {
text-align: left;
}
.table-feature-comparison th:not(:first-child),
.table-feature-comparison td:not(:first-child) {
text-align: center;
}
.table-feature-comparison tbody tr:nth-child(even) td {
background-color: var(--gray-alpha--02);
}
.table-feature-comparison thead th:nth-child(2) {
background-color: var(--blue--500);
color: white;
}
.table-feature-comparison tbody tr td:nth-child(2) {
background-color: var(--blue--100);
}
/* === STATES === */
@media (max-width: 480px) {
.w-embed table {
min-width: 896px;
}
}
@media (max-width: 1279px) {
.table-scroll-wide {
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
}
.table-scroll-wide table {
min-width: 720px;
}
}
/* Scrollbar */
.table-scroll-wide::-webkit-scrollbar {
height: 0.625rem;
}
.table-scroll-wide::-webkit-scrollbar-track {
background: transparent;
margin-left: 0.75rem;
margin-right: 0.75rem;
}
.table-scroll-wide::-webkit-scrollbar-thumb {
background: var(--_tokens---border--inverted-default);
border-radius: 6px;
border: 3px solid white;
}
/* Mobile scroll */
@media (max-width: 480px) {
.w-embed:has(table) {
max-width: 100%;
}
/* Make embed a scroll container */
.w-embed:has(table) .table-scroll {
width: 100vw;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
margin-left: calc(var(--_spacing---padding--side-no-frame) * -1);
margin-right: calc(var(--_spacing---padding--side-no-frame) * -1);
padding-left: var(--_spacing---padding--side-no-frame);
padding-right: var(--_spacing---padding--side-no-frame);
}
.w-embed:has(table) table {
width: 600px;
min-width: 600px;
}
.table-scroll-wide table {
width: 720px !important;
min-width: 720px !important;
}
}
</style></div><div class="cc-element w-embed"><style>
#content code:not(pre code),
.w-richtext code:not(pre code) {
font-family: 'Roboto Mono', monospace !important;
font-weight: 500 !important;
font-size: 1rem !important;
color: var(--_tokens---text--inverted-primary);
line-height: 1.65 !important;
background: transparent !important;
white-space: nowrap;
}
.code-block p {
margin-top: 0rem;
margin-bottom: 0rem;
color: var(--_tokens---text--inverted-primary);
}
/* Prism override for code blocks */
.code-block pre[class*="language-"] {
padding: 0 1rem 0 0 !important;
margin: 0 !important;
overflow: visible !important;
}
.code-block code[class*="language-"],
.code-block pre[class*="language-"] {
font-family: "Roboto Mono", monospace !important;
font-weight: 400 !important;
font-size: 1rem !important;
line-height: 1.65 !important;
background: transparent !important;
}
/* enable wrapping (Prism disables this by default) */
.code-block pre[class*="language-"],
.code-block code[class*="language-"] {
white-space: pre-wrap !important;
word-break: break-word;
}
/* Comments */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #00000099 !important;
}
.token.punctuation {
color: #212121 !important;
}
/* Keywords (if, else, const, return, etc.) */
.token.keyword,
.token.atrule {
color: #9E1891 !important;
}
/* Functions and classes */
.token.function,
.token.class-name {
color: #2A58C5 !important;
}
/* Strings */
.token.string,
.token.char,
.token.attr-value,
.token.inserted {
color: #21770F !important;
}
/* Numbers and booleans */
.token.number,
.token.boolean,
.token.constant {
color: #00777B !important;
}
/* Variables / properties */
.token.property,
.token.symbol,
.token.builtin {
color: #CB3232 !important;
}
/* HTML / CSS selectors and attributes */
.token.selector,
.token.attr-name,
.token.tag {
color: #800000;
}
/* Operators and punctuation */
.token.operator,
.token.entity,
.token.url {
color: #212121 !important;
background: none !important;
}
/* Deleted / diff */
.token.deleted {
color: #b31d28;
}
</style></div></div><main x-clip="" class="main-wrapper"><section class="global_section btm-20"><div class="global_frame bg-alfa"><div class="global_container"><div class="blog_heading-wr"><p class="ts-overline w-dyn-bind-empty"></p><h1 data-w-id="e08e7190-573b-1ed5-0f56-04bb938f6aff" class="ts-h3 ts-wrap-balance">Monitoring with Bosun</h1><div data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855d" class="blog_hero_info-row"><p class="ts-p2"><span id="result" class="read-time">15</span> minutes to read</p></div></div></div></div><div class="section_bg"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696bc00bb646a7a2194a1211_541c0df5f2322e6e94744318be17d15b_bg%20gradient.avif" loading="lazy" alt="" class="section_bg_blur"/></div></section><section x-clip="" class="global_section is-detail-white z-index-1"><div class="global_container"><div class="article_layout"><aside data-toc="" aria-labelledby="toc-heading" class="article_right-wr"><div class="blog_aside-wr"><div class="article_details"><div class="ts-overline in-details">Written by</div><div class="blog_author-wr in-details"><p class="ts-p2 in-details">Barry Jones</p></div><div class="spacer is-8"></div><div class="ts-overline in-details">Published on</div><p class="ts-p2 in-details">October 15, 2015</p></div><div class="toc_wrapper"><h2 id="toc-heading" class="ts-overline tc-inverted-secondary">Table of contents</h2><nav data-toc-scroll="" aria-label="Page sections" class="toc_nav"><ul data-offset="6rem" data-toc-list="" role="list" class="toc_list"><li data-toc-template="" class="toc_li"><a data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fba" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fba" href="#" class="toc_link w-inline-block"><span data-toc-label="">Introduction</span></a></li></ul></nav></div><div class="blog_share-wr"><h2 id="toc-heading" class="ts-overline tc-inverted-secondary">Share</h2><div class="share-row"><a title="Copy URL" aria-label="Copy URL" data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fbe" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fbe" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium is-url w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M9.99825 13C10.4277 13.5741 10.9756 14.0491 11.6048 14.3929C12.234 14.7367 12.9298 14.9411 13.6449 14.9923C14.36 15.0435 15.0778 14.9403 15.7496 14.6897C16.4214 14.4392 17.0314 14.047 17.5382 13.54L20.5382 10.54C21.449 9.59695 21.953 8.33394 21.9416 7.02296C21.9302 5.71198 21.4044 4.45791 20.4773 3.53087C19.5503 2.60383 18.2962 2.07799 16.9853 2.0666C15.6743 2.0552 14.4113 2.55918 13.4682 3.46997L11.7482 5.17997M13.9982 11C13.5688 10.4258 13.0209 9.95078 12.3917 9.60703C11.7625 9.26327 11.0667 9.05885 10.3516 9.00763C9.63645 8.95642 8.91866 9.0596 8.2469 9.31018C7.57514 9.56077 6.96513 9.9529 6.45825 10.46L3.45825 13.46C2.54746 14.403 2.04348 15.666 2.05488 16.977C2.06627 18.288 2.59211 19.542 3.51915 20.4691C4.44619 21.3961 5.70026 21.9219 7.01124 21.9333C8.32222 21.9447 9.58524 21.4408 10.5282 20.53L12.2382 18.82" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg></div><div class="icon-medium is-url-check w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M19.4697 5.46979C19.7626 5.1769 20.2373 5.1769 20.5302 5.46979C20.823 5.76269 20.8231 6.23747 20.5302 6.53034L9.53022 17.5303C9.23735 17.8232 8.76257 17.8232 8.46967 17.5303L3.46967 12.5303C3.17678 12.2374 3.17678 11.7627 3.46967 11.4698C3.76256 11.1769 4.23732 11.1769 4.53022 11.4698L8.99994 15.9395L19.4697 5.46979Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Share on LinkedIn" data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fc1" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fc1" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 3C3.67157 3 3 3.67157 3 4.5V19.5C3 20.3284 3.67157 21 4.5 21H19.5C20.3284 21 21 20.3284 21 19.5V4.5C21 3.67157 20.3284 3 19.5 3H4.5ZM8.52076 7.00272C8.52639 7.95897 7.81061 8.54819 6.96123 8.54397C6.16107 8.53975 5.46357 7.90272 5.46779 7.00413C5.47201 6.15897 6.13998 5.47975 7.00764 5.49944C7.88795 5.51913 8.52639 6.1646 8.52076 7.00272ZM12.2797 9.76176H9.75971H9.7583V18.3216H12.4217V18.1219C12.4217 17.742 12.4214 17.362 12.4211 16.9819C12.4203 15.9681 12.4194 14.9532 12.4246 13.9397C12.426 13.6936 12.4372 13.4377 12.5005 13.2028C12.7381 12.3253 13.5271 11.7586 14.4074 11.8979C14.9727 11.9864 15.3467 12.3141 15.5042 12.8471C15.6013 13.1803 15.6449 13.5389 15.6491 13.8863C15.6605 14.9339 15.6589 15.9815 15.6573 17.0292C15.6567 17.399 15.6561 17.769 15.6561 18.1388V18.3202H18.328V18.1149C18.328 17.6629 18.3278 17.211 18.3275 16.7591C18.327 15.6296 18.3264 14.5001 18.3294 13.3702C18.3308 12.8597 18.276 12.3563 18.1508 11.8627C17.9638 11.1286 17.5771 10.5211 16.9485 10.0824C16.5027 9.77019 16.0133 9.5691 15.4663 9.5466C15.404 9.54401 15.3412 9.54062 15.2781 9.53721C14.9984 9.52209 14.7141 9.50673 14.4467 9.56066C13.6817 9.71394 13.0096 10.0641 12.5019 10.6814C12.4429 10.7522 12.3852 10.8241 12.2991 10.9314L12.2797 10.9557V9.76176ZM5.68164 18.3244H8.33242V9.76733H5.68164V18.3244Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Share on Facebook" data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fc3" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fc3" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M22 12.0611C22 6.50451 17.5229 2 12 2C6.47715 2 2 6.50451 2 12.0611C2 17.0828 5.65684 21.2452 10.4375 22V14.9694H7.89844V12.0611H10.4375V9.84452C10.4375 7.32296 11.9305 5.93012 14.2146 5.93012C15.3088 5.93012 16.4531 6.12663 16.4531 6.12663V8.60261H15.1922C13.95 8.60261 13.5625 9.37822 13.5625 10.1739V12.0611H16.3359L15.8926 14.9694H13.5625V22C18.3432 21.2452 22 17.083 22 12.0611Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Share on Twitter" data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fc5" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fc5" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M17.1761 4H19.9362L13.9061 10.7774L21 20H15.4456L11.0951 14.4066L6.11723 20H3.35544L9.80517 12.7508L3 4H8.69545L12.6279 9.11262L17.1761 4ZM16.2073 18.3754H17.7368L7.86441 5.53928H6.2232L16.2073 18.3754Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Share on Reddit" data-wf-native-id-path="65fe0228-b88a-02ec-eceb-5a1bc4126e21" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="65fe0228-b88a-02ec-eceb-5a1bc4126e21" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.797 5.19567C15.0353 6.20602 15.9426 6.95868 17.026 6.95868C18.2908 6.95868 19.3162 5.9333 19.3162 4.66849C19.3162 3.40367 18.2908 2.3783 17.026 2.3783C15.9201 2.3783 14.9978 3.16209 14.783 4.20465C12.9309 4.40328 11.4846 5.9741 11.4846 7.87776C11.4846 7.88205 11.4846 7.88527 11.4846 7.88957C9.47038 7.97439 7.63114 8.54774 6.17091 9.45287C5.6287 9.03305 4.94797 8.78288 4.20927 8.78288C2.4366 8.78288 1 10.2195 1 11.9922C1 13.2784 1.75588 14.3865 2.84783 14.8986C2.95412 18.6244 7.01376 21.621 12.0075 21.621C17.0013 21.621 21.0663 18.6211 21.1672 14.8922C22.2506 14.3768 23 13.272 23 11.9932C23 10.2206 21.5634 8.78396 19.7907 8.78396C19.0552 8.78396 18.3777 9.03198 17.8366 9.44857C16.3635 8.53701 14.5039 7.96365 12.4692 7.88742C12.4692 7.8842 12.4692 7.88205 12.4692 7.87883C12.4692 6.51524 13.4828 5.38357 14.797 5.19782V5.19567ZM6.04207 14.029C6.09575 12.8651 6.86881 11.9718 7.7675 11.9718C8.66618 11.9718 9.35334 12.9155 9.29966 14.0794C9.24597 15.2433 8.57491 15.6663 7.67516 15.6663C6.7754 15.6663 5.98838 15.1928 6.04207 14.029ZM16.2486 11.9718C17.1484 11.9718 17.9214 12.8651 17.974 14.029C18.0277 15.1928 17.2396 15.6663 16.3409 15.6663C15.4423 15.6663 14.7701 15.2444 14.7164 14.0794C14.6628 12.9155 15.3489 11.9718 16.2486 11.9718ZM15.1792 16.7218C15.3478 16.739 15.4551 16.914 15.3897 17.0707C14.8367 18.3925 13.5311 19.3212 12.0075 19.3212C10.4839 19.3212 9.1794 18.3925 8.62538 17.0707C8.55988 16.914 8.66725 16.739 8.83582 16.7218C9.82362 16.6219 10.8919 16.5672 12.0075 16.5672C13.1231 16.5672 14.1903 16.6219 15.1792 16.7218Z" fill="currentcolor"/>
</svg>
</div></a></div></div></div></aside><article class="article_content-wr"><div id="content" data-content="" class="article_rte w-richtext"><p><a href="http://bosun.org/" data-wf-native-id-path="06c462e7-e659-9843-d988-c03aae79f702" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="06c462e7-e659-9843-d988-c03aae79f702">Bosun</a> is a monitoring and alerting system developed by the good folks at <a href="http://stackexchange.com/" data-wf-native-id-path="d134439d-88f8-76ce-dd81-e6e0242df6d7" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="d134439d-88f8-76ce-dd81-e6e0242df6d7">Stack Exchange</a>, then open sourced for the rest of us. It&#x27;s written in <a href="https://golang.org/" data-wf-native-id-path="fd5cb911-61dd-5314-c44e-3c51b1f144f1" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="fd5cb911-61dd-5314-c44e-3c51b1f144f1">Go</a>, meaning its monitoring agents can run anywhere that Go can drop a binary… which is just about everywhere. So what exactly does it do and how does it compare to the likes of <a href="http://newrelic.com/" data-wf-native-id-path="d45b02bb-73b7-3940-39f6-bbc1013305e5" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="d45b02bb-73b7-3940-39f6-bbc1013305e5">New Relic</a>, <a href="https://aws.amazon.com/cloudwatch/" data-wf-native-id-path="cbe208ea-c9d3-5a1e-ac91-602e0c335118" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="cbe208ea-c9d3-5a1e-ac91-602e0c335118">CloudWatch</a>, <a href="https://www.nagios.org/" data-wf-native-id-path="7f5b9885-9251-d717-182d-4c4a3b03e10f" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7f5b9885-9251-d717-182d-4c4a3b03e10f">Nagios</a>, <a href="http://www.splunk.com/" data-wf-native-id-path="adaadafb-27c2-d36c-9f88-c6084b435475" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="adaadafb-27c2-d36c-9f88-c6084b435475">Splunk Cloud</a>, <a href="https://www.serverdensity.com/" data-wf-native-id-path="d84b40fc-3290-ec5d-5727-b38eabe88f67" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="d84b40fc-3290-ec5d-5727-b38eabe88f67">Server Density</a>, and other monitoring tools?</p><h2>What Is Bosun?</h2><p>At its simplest, Bosun is a system for receiving measurements from a lot of different sources, organizing it, tracking it, and allowing triggers based on changes over time.</p><p>The system uses an agent written in Go called <a href="http://bosun.org/scollector/" data-wf-native-id-path="49e8cc0c-f41c-89fc-ac08-470c322a0131" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="49e8cc0c-f41c-89fc-ac08-470c322a0131">scollector</a> to send these metrics in to the receiving host. The metrics are only limited by what the scollector can send, rather than any limitation in Bosun itself. That means there are ample opportunities to expand on available data. Numerous <a href="http://bosun.org/scollector/external-collectors" data-wf-native-id-path="fe1e0706-ceb5-b465-40de-8eebe2037a75" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="fe1e0706-ceb5-b465-40de-8eebe2037a75">external collectors</a> are already available, and writing custom collectors via your own shell scripts isn&#x27;t particularly complicated.</p><p>Out of the gate, this setup and structure is already very appealing. It&#x27;s free, deployable virtually anywhere, agents are compilation-free drop-in binaries, and it&#x27;s <a href="http://bosun.org/expressions" data-wf-native-id-path="eb38f72a-d1f8-ece7-ee71-10be2d1cb59e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="eb38f72a-d1f8-ece7-ee71-10be2d1cb59e">heavily customizeable</a>. That&#x27;s a solid formula.</p><p>It also leaves the scope of this article to be very open-ended unless we narrow the scope. With that in mind, for this overview and comparison, we will focus on out-of-the-box functionality.</p><h2>What&#x27;s In the Box?</h2><p>Baked right into scollector is the ability to monitor cpu, disk, network, memory, and processes on Windows, Mac, and Linux. From there, it adds some more OS specific features like .NET processes, AppDomains, Active Directory, and SQL Server on Windows or Yum on Linux. VMWare, icmp (ping), snmp, and AWS&#x27; EC2 and ELB monitors are also built in. There&#x27;s additional support included for Apache, Cassandra, Chef, CloudFlare, Elasticsearch, HAProxy, Puppet, and Redis just to name a few. These, of course, can be expanded on.</p><h2>How Do I Use It?</h2><p>First, we’ll set up a server to receive information from the various remote monitors that we might be using. That server will also act as our web host to view, track, and alert on these values. Next, we&#x27;ll set up a remote agent to send information about another machine back to our main monitoring server. Finally, we’ll look at how to set up an alert, some of the advanced metrics that you can track, and how to collect custom information that the agent might not already know about.</p><h3>1. Set up a server to collection information</h3><p>To get started, you&#x27;ll need to set up a Bosun Monitor server/container to receive and aggregate information.</p><p>You can try this out quickly with Bosun&#x27;s Docker setup, although Stack Exchange itself says they <em>DO NOT</em> use this setup in production. They don&#x27;t say that you shouldn&#x27;t, only that they do not. At the moment, I&#x27;d tend to agree with this advice because I left the monitor running from the Docker container monitoring three to four servers over the course of a few days and experienced a hung monitoring server after a while. The Bosun GitHub repo does have code to <a href="https://github.com/bosun-monitor/bosun/tree/master/cmd/tsdbrelay" data-wf-native-id-path="fe08b6ea-d258-7df3-c748-db92471a5a2c" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="fe08b6ea-d258-7df3-c748-db92471a5a2c">relay the data</a> in case the monitor is down though. For a detailed production setup, check out this blog post.</p><p>To run the Docker version to try things out, just pull up a publicly accessible server/VM, make sure <a href="https://docs.docker.com/installation/" data-wf-native-id-path="31ee2245-0478-dd49-a34d-4281cb0c656f" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="31ee2245-0478-dd49-a34d-4281cb0c656f">Docker is installed</a>, and then...</p><p><code>LANG:bash<br/>docker run -d -p 4242:4242 -p 8070:8070 stackexchange/bosun</code></p><p>That will install the monitor listening on port 8070 with all of its dependencies, including <a href="https://github.com/OpenTSDB/opentsdb" data-wf-native-id-path="1688ab73-03c2-5d07-ad94-abcc53414af0" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="1688ab73-03c2-5d07-ad94-abcc53414af0">OpenTSDB</a> and <a href="https://github.com/apache/hbase" data-wf-native-id-path="1768605f-ade8-6f68-41af-2f2fbac8dc81" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="1768605f-ade8-6f68-41af-2f2fbac8dc81">HBase</a>.</p><p>From here, you can grab your VM&#x27;s IP address and open up a browser to IP:8070 to see the basic web interface, including hosts that it&#x27;s receiving information from on the right-hand side. Currently, it should be collecting only from itself, but you can flip through the metrics to get an idea of the level of granularity and detail you&#x27;re able to get from the system. You might need to wait a few minutes for it to gather enough information to display.</p><p>I found that I need a 1GB VM for the Docker image to run properly, BUT that&#x27;s running the monitor, HBase, and OpenTSDB all on one machine. In a production setup, you&#x27;re probably just looking at just the monitor itself storing the data in an outside OpenTSDB host, just as you’d expect with any other production database setup.</p><figure class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img loading="lazy" alt="Wordpress import https://no-cache.hubspot.com/cta/default/1169977/964db6a6-69da-4366-afea-b129019aff07.png" src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a1ff76e33514a2e01b09e27_https___no-cache.hubspot.com_cta_default_1169977_964db6a6-69da-4366-afea-b129019aff07.png"/></div></figure><h3>2. Set up clients to send information</h3><p>Now that you&#x27;ve got your monitoring server set up, hop over to another machine/VM to set up the scollector. The scollector is a portable Go binary. <a href="http://bosun.org/scollector/" data-wf-native-id-path="5c11fb71-f8e5-dec3-0f4b-8f819130af37" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="5c11fb71-f8e5-dec3-0f4b-8f819130af37">Download</a> the correct one for your machine, then pull up a console, and run...</p><p><code>LANG:html<br/>scollector -h &lt;BOSUN MONITOR IP&gt;:8070</code></p><p>And that&#x27;s it. The agent will immediately begin collecting and sending in all of the out-of-the-box information it can for that host.</p><h3>3. Create an alert</h3><p>I&#x27;m not going to duplicate Bosun&#x27;s own <a href="https://bosun.org/quickstart" data-wf-native-id-path="cda8b7ec-19b3-260a-4a0e-972e6c88d3c1" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="cda8b7ec-19b3-260a-4a0e-972e6c88d3c1">alert creation quickstart</a>, which provides a great example of how to set up alerts on different metrics. Alerts boil down to selecting a metric and a host(s), using an expression to monitor the metric, creating a rule on that metric to trigger an alert, and then sending the alert.</p><p>This is where you start to see the strongest point of Bosun, the <a href="https://bosun.org/expressions" data-wf-native-id-path="7fc4fb06-04ad-07d4-74e6-984aae6736e5" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7fc4fb06-04ad-07d4-74e6-984aae6736e5">expressions</a>. Expressions are a language of their own that are basically map/reduce aggregation calls, including average, change count, standard deviation (very helpful), median, etc. A simple example from the quickstart shows a readable...</p><p><code>LANG:code<br/>avg(q(&quot;sum:rate{counter,,1}:os.cpu{host=your-system-here}&quot;, &quot;1h&quot;, &quot;&quot;))</code></p><p>We can see that it&#x27;s taking the average “avg&quot; of the result of querying the past hour “1h” of the “os.cpu” metric for the specified hostname “host” of “your-system-here”.</p><p>Rules are equally clear...</p><p><code>LANG:code<br/>alert cpu.is.too.high {<br/> template = test<br/> $metric = q(&quot;sum:rate{counter,,1}:os.cpu{host=your-system-here}&quot;, &quot;1h&quot;, &quot;&quot;)<br/> $avgcpu = avg($metric)<br/> crit = $avgcpu &gt; 80<br/> warn = $avgcpu &gt; 60<br/>}</code></p><p>A warning will trigger when the value exceeds 60 percent, and a critical status will be triggered once it exceeds 80 percent. The alert will use the template &#x27;test&#x27; which uses Bosun&#x27;s own <a href="https://bosun.org/configuration#template" data-wf-native-id-path="6ccadd7d-b862-bc76-fd32-247ca49c5108" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6ccadd7d-b862-bc76-fd32-247ca49c5108">template language</a> and can be customized to your needs.</p><p><code>LANG:html<br/>template test {<br/> subject = {{.Last.Status}}: {{.Alert.Name}} on {{.Group.host}}<br/> body = `&lt;p&gt;Alert: {{.Alert.Name}} triggered on {{.Group.host}}<br/> &lt;hr&gt;<br/> &lt;p&gt;&lt;strong&gt;Computation&lt;/strong&gt;<br/> &lt;table&gt;<br/> {{range .Computations}}<br/> &lt;tr&gt;&lt;td&gt;&lt;a href=&quot;{{$.Expr .Text}}&quot;&gt;{{.Text}}&lt;/a&gt;&lt;/td&gt;&lt;td&gt;{{.Value}}&lt;/td&gt;&lt;/tr&gt;<br/> {{end}}<br/> &lt;/table&gt;<br/> &lt;hr&gt;<br/> {{ .Graph .Alert.Vars.metric }}<br/> &lt;hr&gt;<br/> &lt;p&gt;&lt;strong&gt;Relevant Tags&lt;/strong&gt;<br/> &lt;table&gt;<br/> {{range $k, $v := .Group}}<br/> &lt;tr&gt;&lt;td&gt;{{$k}}&lt;/td&gt;&lt;td&gt;{{$v}}&lt;/td&gt;&lt;/tr&gt;<br/> {{end}}<br/> &lt;/table&gt;`<br/>}</code></p><p>In order to send those alerts, Bosun requires an SMTP server. Currently that is the only means of sending alerts, although a number of incoming mail handling systems from providers (Sendgrid, Mailgun, Cloudmailin, etc.) can make directing those emails to an http endpoint fairly trivial to trigger other actions. In that circumstance, you could set up the templates to send JSON or XML data.</p><h3>4. Track advanced metrics</h3><p>Bosun provides a lot of <a href="https://bosun.org/examples" data-wf-native-id-path="33075e47-6275-1025-29f3-42b59b47bffe" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="33075e47-6275-1025-29f3-42b59b47bffe">advanced usage examples</a> that cover handling thing like:</p><ul role="list"><li>Tracking sessions on each HAProxy frontend:</li></ul><p><code>LANG:code<br/>$current_sessions = max(q(&quot;sum:haproxy.frontend.scur{host=*,pxname=*,tier=*}&quot;, &quot;5m&quot;, &quot;&quot;))<br/>$session_limit = max(q(&quot;sum:haproxy.frontend.slim{host=*,pxname=*,tier=*}&quot;, &quot;5m&quot;, &quot;&quot;))<br/>$q = ($current_sessions / $session_limit) * 100</code></p><ul role="list"><li>Alerting on forecasted future disk space:</li></ul><p><code>LANG:code<br/>$days_to_zero = (forecastlr(q(&quot;avg:6h-avg:os.disk.fs.percent_free{$filter}&quot;, &quot;7d&quot;, &quot;&quot;), 0) / 60 / 60 / 24)</code></p><ul role="list"><li>Using Macros to avoid reusing alert definitions:</li></ul><p><code>LANG:code<br/>macro host_based {<br/>warnNotification = lookup(&quot;host_base_contact&quot;, &quot;main_contact&quot;)<br/>critNotification = lookup(&quot;host_base_contact&quot;, &quot;main_contact&quot;)<br/>warnNotification = lookup(&quot;host_base_contact&quot;, &quot;chat_contact&quot;)<br/>critNotification = lookup(&quot;host_base_contact&quot;, &quot;chat_contact&quot;)<br/>}</code></p><ul role="list"><li>Setting alerts of alarms that deviate from the norm without having to hard code an alert threshold:</li></ul><p><code>LANG:code<br/>$history = band($metric, $duration, $period, $lookback)<br/>$past_dev = dev($history)<br/>$past_median = percentile($history, .5)<br/>$current_median = percentile(q($metric, $duration, &quot;&quot;), .5)<br/>$diff = $current_median - $past_median<br/>warn = $current_median &gt; ($past_median + $past_dev*2) &amp;amp;&amp;amp; abs($diff) &gt; 10 &amp;amp;&amp;amp; $hit_percent &gt; 1</code></p><ul role="list"><li>Conditional alerts. When you expect an alert in certain circumstances, that’s okay, such as not sending an alert for using Swap when the mail queue is high.</li></ul><p><code>LANG:code<br/>$mail_q = nv(max(q(&quot;sum:exim.mailq_count{host=*}&quot;, &quot;2h&quot;, &quot;&quot;) &gt; 5000), 1)<br/>$metric = &quot;sum:rate{counter,,1}:linux.mem.pswp{host=*,direction=in}&quot;<br/>$q = (median(q($metric, &quot;2h&quot;, &quot;&quot;)) &gt; 1) &amp;amp;&amp;amp; ! $mail_q</code></p><h3>5. Track your own metrics with External Collectors</h3><p>Scollector can also send in information gathered from virtually any type of script to be aggregated, monitored, and acted on by the Bosun Monitor. These scripts are called <a href="http://bosun.org/scollector/external-collectors" data-wf-native-id-path="a933a54e-b99a-7b1c-39c7-69f1353438c4" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="a933a54e-b99a-7b1c-39c7-69f1353438c4">external collectors</a>. This data can be collected in one of two simple formats: simple data output and JSON data.</p><h3>Simple data output format</h3><p>Just use the standard output stream like so:</p><p><code>LANG:code<br/>// metric timestamp value tag-key=tag-value tag-key=tag-value tag-key=tag-value<br/>twitter.tweet_count 1441406996 0 query=stackoverflow-down<br/>twitter.follower_count 1441406996 1337 account=stackoverflow</code></p><p>You&#x27;ll notice no unit of measure is specified with the metric; it&#x27;s just a number as far as Bosun is concerned. Those can be added to graphs or expressions later.</p><h3>JSON data format</h3><p>This format lets you include additional data with your metrics, which are just serialized instances of the <a href="https://godoc.org/bosun.org/opentsdb#DataPoint" data-wf-native-id-path="4b8fcf07-59d4-542e-c772-4a4eef06a621" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="4b8fcf07-59d4-542e-c772-4a4eef06a621">opentsdb.DataPoint</a> or the <a href="https://godoc.org/bosun.org/metadata#Metasend" data-wf-native-id-path="55450ef0-3c47-cca6-01ee-140d93173889" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="55450ef0-3c47-cca6-01ee-140d93173889">metadata.Metasend</a> structs.</p><p><code>LANG:json<br/>{&quot;metric&quot;:&quot;exceptional.exceptions.count&quot;,&quot;timestamp&quot;:1438788720,&quot;value&quot;:5,&quot;tags&quot;:{&quot;application&quot;:&quot;Careers&quot;,&quot;machine&quot;:&quot;ny-web03&quot;,&quot;source&quot;:&quot;NY_Status&quot;}}<br/>{&quot;metric&quot;:&quot;exceptional.exceptions.count&quot;,&quot;timestamp&quot;:1438788720,&quot;value&quot;:0,&quot;tags&quot;:{&quot;application&quot;:&quot;AdServer&quot;,&quot;machine&quot;:&quot;ny-web03&quot;,&quot;source&quot;:&quot;NY_Status&quot;}}</code></p><h2>How Does It Compare?</h2><p>We&#x27;ve now got a monitoring server that can receive any metric we want, collect those metrics from anywhere we choose in a simple format, lets us use a bevy of reduction tools on any of those measures, and allows us to trigger multilevel alerts from a custom template to anywhere we choose. And it&#x27;s free, except for the price of the server(s) it sits on. That&#x27;s a pretty solid offering.</p><p>Here&#x27;s a general overview of how it compares to some other offerings.</p><h3><a href="http://newrelic.com/" data-wf-native-id-path="ad835448-0c84-4e90-95ae-f04e3469833f" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ad835448-0c84-4e90-95ae-f04e3469833f">New Relic</a></h3><p>New Relic makes its living with application monitoring, although it does include some server monitoring.</p><p>The application monitors are built to be integrated into the the running apps so that it can gather and report on stack level information, identify bottlenecks, and alert you to problems. This is a highly sophisticated system with pricing that varies from free to $149/month per host and higher. It generally earns its price as it provides invaluable information regardless of where your application is hosted.</p><p>Bosun certainly does not replace that. However, if you wanted to write your application level collector to output data in a way that Bosun could consume it, you still wouldn&#x27;t quite have the application trace level details that go along with the New Relic data. New Relic is a great service that is difficult to comprehend replacing. It&#x27;s also <a href="http://newrelic.com/plugins" data-wf-native-id-path="5a29beb5-d88b-bd9f-2861-13c0eab98379" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="5a29beb5-d88b-bd9f-2861-13c0eab98379">extensible</a>.</p><p>The edge that Bosun has on New Relic is that you get to determine your own data retention with unlimited hosts, its alerting system is tremendously more customizable and flexible, and New Relic compatibility doesn&#x27;t become a restriction of your monitoring system. Many people I know end up turning off New Relic&#x27;s alerts, especially regarding pager integration, because they often tend to be false alarms, self-resolving, or expected behavior without any means of telling that to New Relic.</p><h3><a href="https://aws.amazon.com/cloudwatch/" data-wf-native-id-path="35fe862d-d5de-a3f8-c0cf-f678465f9339" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="35fe862d-d5de-a3f8-c0cf-f678465f9339">CloudWatch</a></h3><p>CloudWatch provides monitoring and alerting on existing metrics tracked by AWS based on the type of AWS resource we&#x27;re talking about.</p><p>The alerting system is fairly flexible, although not as much so as Bosun. As such, CloudWatch provides a great system for monitoring AWS resources but nothing beyond that. If you want to track something that AWS isn&#x27;t already tracking, you can&#x27;t do it with CloudWatch. If you&#x27;re using AWS, CloudWatch is a piece of your monitoring infrastructure but not the whole.</p><h3><a href="https://www.nagios.org/" data-wf-native-id-path="7ef55ce4-71d7-6e13-9988-e3e93dea7de6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7ef55ce4-71d7-6e13-9988-e3e93dea7de6">Nagios</a></h3><p>Nagios is the comprehensive grandfather of monitoring systems. It monitors everything, it&#x27;s been doing it for years, and it has a fairly <a href="https://exchange.nagios.org/" data-wf-native-id-path="3f82f7b3-d870-d466-4b93-d78fbe0f10ed" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="3f82f7b3-d870-d466-4b93-d78fbe0f10ed">comprehensive network</a> of plugins and solutions around it. Everything from UI customization to monitors. It&#x27;s got <a href="https://www.nagios.org/projects/" data-wf-native-id-path="8a52b6e9-2a54-67e0-9be4-b26bc1a76ab7" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8a52b6e9-2a54-67e0-9be4-b26bc1a76ab7">open source</a> and <a href="https://www.nagios.com/products/" data-wf-native-id-path="b61356ff-53f7-1434-3d8d-74cbce793a96" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="b61356ff-53f7-1434-3d8d-74cbce793a96">commercial</a> solutions for just about everything.</p><p>It&#x27;s intimidating just looking at it, and that&#x27;s really where Bosun compares to it. Bosun is tremendously simpler than Nagios. That&#x27;s one part design and one part lack of age. If I were to compare the two tools at a simple level, I&#x27;d consider Nagios the IT Admin solution, and I&#x27;d consider Bosun the DevOps solution.</p><h3><a href="http://www.splunk.com/" data-wf-native-id-path="e1e52b8d-f634-bba9-9e75-575deb3a3544" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="e1e52b8d-f634-bba9-9e75-575deb3a3544">Splunk Cloud</a></h3><p>People who have Splunk love Splunk. Splunk is a very comprehensive solution with a formidable price tag. I know many people in the IT world who swear by everything Splunk has to offer as a monitoring solution, however, the price tag has prevented me from ever having an opportunity to thoroughly evaluate it. As such, I can’t provide much of a comparison.</p><h3><a href="https://www.serverdensity.com/" data-wf-native-id-path="62286890-5d3e-41ed-b0ce-2d683be41a5c" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="62286890-5d3e-41ed-b0ce-2d683be41a5c">Server Density</a></h3><p>In the &quot;As A Service&quot; world, Server Density probably provides the best comparison to Bosun. As a host, it will consume literally anything, including Nagios data.</p><p>You can write your own plugins for the agent. Metrics can be piped in from an assortment of different cloud providers, so there&#x27;s no monitoring lockin associated with it. Their web interface comes with a complete metric picture of what&#x27;s going on with the server at any given time. There are even <a href="https://www.serverdensity.com/iphone/" data-wf-native-id-path="d698641e-8b35-5ad7-2e98-94b0c69f5cac" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="d698641e-8b35-5ad7-2e98-94b0c69f5cac">iPhone</a> and Android apps. It also has fairly <a href="https://www.serverdensity.com/server-monitoring/#alerting" data-wf-native-id-path="ccda01dd-ee0e-d7b9-775f-8e81d5553fdf" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ccda01dd-ee0e-d7b9-775f-8e81d5553fdf">customizeable alerts</a> based on the variety of metrics you might pass in.</p><p>As for <a href="https://www.serverdensity.com/pricing/" data-wf-native-id-path="2e7035a9-aec4-5eee-f407-7f5ded308cdf" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="2e7035a9-aec4-5eee-f407-7f5ded308cdf">pricing</a>, it&#x27;s much more comparable to cloud offerings than the other paid players I’ve mentioned.</p><h2>Conclusion</h2><p>Bosun&#x27;s a great option in the open source monitoring space and has a lot of room to grow. As an ecosystem expands around it, it will certainly become a better and better option. Right now, stability of the monitor seems to be a known concern, but as soon as the production monitor setup is simplified, I would expect it to start gaining serious traction.</p></div><template id="code-template" class="code-template"><div class="code-block"><div class="code-header"><div class="code-lang-wr"><div class="code_icon w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.7841 3.7765C13.9077 3.38125 14.3283 3.16081 14.7236 3.28431C15.1188 3.40784 15.3392 3.82846 15.2157 4.22376L10.2157 20.2238C10.0922 20.6191 9.67163 20.8395 9.27629 20.7159C8.88095 20.5924 8.66059 20.1718 8.7841 19.7765L13.7841 3.7765ZM5.46965 7.46985C5.76254 7.17707 6.23733 7.17704 6.5302 7.46985C6.82306 7.76271 6.82299 8.2375 6.5302 8.5304L3.06047 12.0001L6.5302 15.4699C6.82306 15.7627 6.82299 16.2375 6.5302 16.5304C6.2373 16.8233 5.76254 16.8233 5.46965 16.5304L1.46965 12.5304C1.1768 12.2375 1.17677 11.7627 1.46965 11.4699L5.46965 7.46985ZM17.4696 7.46985C17.7625 7.17708 18.2373 7.17704 18.5302 7.46985L22.5302 11.4699C22.8231 11.7627 22.823 12.2375 22.5302 12.5304L18.5302 16.5304C18.2373 16.8233 17.7625 16.8233 17.4696 16.5304C17.1768 16.2375 17.1768 15.7627 17.4696 15.4699L20.9394 12.0001L17.4696 8.5304C17.1768 8.2375 17.1768 7.76273 17.4696 7.46985Z" fill="#0F0F14"/>
</svg>
</div><p data-lang-code="" class="ts-p1 tc-inverted-primary hide">React</p></div><a aria-label="Copy Code" data-wf-native-id-path="30f24974-5334-06d3-73f0-6705cedbd9c7" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="30f24974-5334-06d3-73f0-6705cedbd9c7" href="#" class="code-copy w-inline-block"><div class="code_icon w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M20 7.25C21.5188 7.25 22.75 8.48122 22.75 10V20C22.75 21.5188 21.5188 22.75 20 22.75H10C8.48122 22.75 7.25 21.5188 7.25 20V10C7.25 8.48122 8.48122 7.25 10 7.25H20ZM10 8.75C9.30964 8.75 8.75 9.30964 8.75 10V20C8.75 20.6904 9.30964 21.25 10 21.25H20C20.6904 21.25 21.25 20.6904 21.25 20V10C21.25 9.30964 20.6904 8.75 20 8.75H10ZM14 1.25C15.5142 1.25 16.75 2.48579 16.75 4C16.75 4.41421 16.4142 4.75 16 4.75C15.5858 4.75 15.25 4.41421 15.25 4C15.25 3.31421 14.6858 2.75 14 2.75H4C3.31421 2.75 2.75 3.31421 2.75 4V14C2.75 14.6858 3.31421 15.25 4 15.25C4.41421 15.25 4.75 15.5858 4.75 16C4.75 16.4142 4.41421 16.75 4 16.75C2.48579 16.75 1.25 15.5142 1.25 14V4C1.25 2.48579 2.48579 1.25 4 1.25H14Z" fill="currentcolor"/>
</svg>
</div></a></div><div class="code-body"></div></div></template></article></div></div></section><section class="global_section tb-96"><div class="global_container"><div data-w-id="3673e385-3f2b-0276-7de5-d26c9c2e0219" style="-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0" class="heading-wr is-side"><h2>Read next</h2><a data-wf-native-id-path="3673e385-3f2b-0276-7de5-d26c9c2e021c" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="3673e385-3f2b-0276-7de5-d26c9c2e021c" href="/blog" class="btn-secondary btn-md w-inline-block"><div class="btn-text">Explore All</div></a></div><div class="res_col-wr w-dyn-list"><div fs-list-load="pagination" fs-list-element="list" role="list" class="res_list w-dyn-items"><div role="listitem" class="w-dyn-item"><a data-wf-native-id-path="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200_instance-0" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200" data-wf-cms-context="%5B%7B%22collectionId%22%3A%226a1fe2a4a11dca1afc48dd15%22%2C%22itemId%22%3A%226a8c99a9a4b4609f63715f18%22%7D%5D" href="/blog/who-owns-ai-generated-code-failures" class="guide_card w-inline-block"><div class="res_card_text-wr"><div class="res_card_date-wr"><p fs-list-field="tag" class="ts-p2-500">Industry Insights</p><div class="res_card_dot"></div><p fs-list-field="tag" class="ts-p2-500">September 9, 2026</p></div><p fs-list-field="title" class="ts-h5 ts-3lines">When AI breaks production, who is accountable?</p></div></a></div><div role="listitem" class="w-dyn-item"><a data-wf-native-id-path="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200_instance-1" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200" data-wf-cms-context="%5B%7B%22collectionId%22%3A%226a1fe2a4a11dca1afc48dd15%22%2C%22itemId%22%3A%226a8c93afb8ce9874256c8b3e%22%7D%5D" href="/blog/every-tool-is-green-can-you-ship" class="guide_card w-inline-block"><div class="res_card_text-wr"><div class="res_card_date-wr"><p fs-list-field="tag" class="ts-p2-500">Industry Insights</p><div class="res_card_dot"></div><p fs-list-field="tag" class="ts-p2-500">September 9, 2026</p></div><p fs-list-field="title" class="ts-h5 ts-3lines">Every tool is green. Can you ship?</p></div></a></div><div role="listitem" class="w-dyn-item"><a data-wf-native-id-path="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200_instance-2" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200" data-wf-cms-context="%5B%7B%22collectionId%22%3A%226a1fe2a4a11dca1afc48dd15%22%2C%22itemId%22%3A%226a8605f48a480aa38550e626%22%7D%5D" href="/blog/smart-tests-high-failure-rate-tests-quarantine" class="guide_card w-inline-block"><div class="res_card_text-wr"><div class="res_card_date-wr"><p fs-list-field="tag" class="ts-p2-500">Product Updates</p><div class="res_card_dot"></div><p fs-list-field="tag" class="ts-p2-500">August 20, 2026</p></div><p fs-list-field="title" class="ts-h5 ts-3lines">When red doesn’t mean broken, your pipeline stops meaning anything</p></div></a></div></div></div></div></section><section class="global_section"><div class="cc-element w-embed"><style>
:root {
--mkto-space-xl: 1.5rem;
--mkto-space-lg: 1rem;
--mkto-space-md: 0.75rem;
--mkto-radius-lg: 1.5rem;
--mkto-radius-md: 0.75rem;
--mkto-radius-sm: 1.25rem;
--mkto-field-height: 3rem;
}
@media (max-width: 767px) {
:root {
--mkto-space-xl: 1.25rem;
}
}
/* Loader */
.mkto-loading .mkto-form-wrapper {
display: none;
}
.mkto-loading .mkto-loader {
display: block;
}
.mkto-form-wrapper {
position: relative;
}
.contact_form-wr .mkto-loader {
width: 48px;
height: 48px;
margin: 80px auto;
border-radius: 50%;
border: 3px solid rgba(255, 255, 255, 0.15);
border-top-color: #fff;
animation: mkto-spin 0.9s linear infinite;
}
@keyframes mkto-spin {
to {
transform: rotate(360deg);
}
}
/* Form */
#mktoForm_1037 {
font-family: var(--_typography---text-font) !important;
padding: var(--mkto-space-xl);
width: 100% !important;
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: var(--mkto-space-xl);
}
#mktoForm_1037 .mktoFormRow {
margin: 0 !important;
width: calc(50% - (var(--mkto-space-xl) / 2));
box-sizing: border-box;
}
@media (max-width: 767px) {
#mktoForm_1037 .mktoFormRow {
width: 100% !important;
}
}
#mktoForm_1037 .mktoOffset,
#mktoForm_1037 .mktoGutter,
#mktoForm_1037 .mktoClear {
display: none !important;
}
#mktoForm_1037 .mktoFormCol {
width: 100% !important;
margin-bottom: 0 !important;
}
#mktoForm_1037 .mktoFormRow:has(input[type='hidden']),
#mktoForm_1037 .mktoFormRow:has(.mktoPlaceholder) {
display: none;
}
#mktoForm_1037 .mktoFieldWrap,
#mktoForm_1037 input,
#mktoForm_1037 label {
width: 100% !important;
}
#mktoForm_1037 .mktoField {
width: 100% !important;
box-sizing: border-box;
}
#mktoForm_1037 .mktoFieldWrap {
display: flex;
flex-direction: column;
gap: 8px;
}
#mktoForm_1037 .mktoLabel {
color: var(--_tokens---text--primary);
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3) !important;
font-weight: 400 !important;
display: flex;
flex-direction: row;
padding-top: 0 !important;
}
#mktoForm_1037 .mktoAsterix {
color: var(--_tokens---text--error) !important;
padding-left: 6px;
order: 99;
}
#mktoForm_1037 input {
width: 100% !important;
box-sizing: border-box;
appearance: none;
background-color: var(--white-alpha--06) !important;
border: 1px solid var(--_tokens---border--default) !important;
border-radius: var(--mkto-radius-lg) !important;
color: var(--_tokens---text--primary) !important;
font-size: var(--_typography---size--p2) !important;
line-height: var(--_typography---height--p2) !important;
padding: var(--mkto-space-md) var(--mkto-space-lg) !important;
box-shadow: none !important;
outline: none !important;
min-height: var(--mkto-field-height) !important;
transition: all 0.3s;
}
#mktoForm_1037 input:hover {
border-color: var(--_tokens---border--accent) !important;
}
#mktoForm_1037 input:focus,
#mktoForm_1037 input:active {
border-color: var(--_tokens---text--misc) !important;
outline: none !important;
}
/* Button */
#mktoForm_1037 .mktoButtonRow {
position: relative;
flex: 0 0 calc(100% + (var(--mkto-space-xl) * 2));
width: calc(100% + (var(--mkto-space-xl) * 2)) !important;
margin:
calc(-1 * var(--mkto-space-xl))
calc(-1 * var(--mkto-space-xl)) !important;
padding:
calc(var(--mkto-space-xl) * 2)
var(--mkto-space-xl)
var(--mkto-space-xl) !important;
background-color: var(--_tokens---surface--default);
border-radius: 0 0 var(--mkto-radius-md) var(--mkto-radius-md);
box-sizing: border-box;
z-index: 2;
}
#mktoForm_1037 .mktoButtonRow::before {
content: "";
position: absolute;
left: 0;
right: 0;
top: 0;
height: var(--mkto-space-xl);
background-color: var(--_tokens---surface--subtle);
border-bottom: 1px solid var(--_tokens---border--default);
border-radius: 0 0 var(--mkto-radius-md) var(--mkto-radius-md);
pointer-events: none;
z-index: 0;
}
#mktoForm_1037 .mktoButtonWrap {
position: relative;
z-index: 1;
margin: 0 !important;
display: block;
width: 100%;
}
#mktoForm_1037 .mktoButton {
position: relative;
z-index: 1;
height: 2.5rem;
width: 100%;
padding: 0.5rem;
border-radius: var(--mkto-radius-sm);
border: none;
background: var(--_tokens---button--default);
color: #fff;
cursor: pointer;
box-shadow: none !important;
text-shadow: none !important;
font-family: var(--_typography---text-font) !important;
font-size: var(--_typography---size--p2) !important;
line-height: var(--_typography---height--p2) !important;
font-weight: 500 !important;
transition: all 0.3s;
}
/* Error */
#mktoForm_1037 .mktoError {
position: static;
right: auto !important;
z-index: 5 !important;
}
#mktoForm_1037 .mktoError .mktoErrorArrowWrap {
display: none;
}
#mktoForm_1037 .mktoError .mktoErrorMsg {
background: none !important;
border: 0 !important;
box-shadow: none !important;
padding: 0 !important;
margin: 6px 0 0 !important;
color: var(--_tokens---text--error) !important;
font-size: var(--_typography---size--cap) !important;
line-height: var(--_typography---height--cap) !important;
text-shadow: none !important;
}
</style></div><div class="global_frame"><div class="global_container"><div class="side_layout full-height"><div class="newsletter_text-wr"><div class="newsletter_icon-wr"><img loading="lazy" src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976869064c0e6744f8c_3c5a6dc0f9fc9395357b740b417f062d_newspaper.svg" alt="" class="icon-large"/></div><div class="contact_rte w-richtext"><h2>Newsletter</h2><p>Get updates about our latest releases, events, <br/>and more</p></div></div><div class="contact_form-wr is-newsletter"><div class="mkto-form-wrapper w-embed w-script"><script>
document.documentElement.classList.add('mkto-loading');
</script>
<script src="//build.cloudbees.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_1037"></form>
<script>
MktoForms2.loadForm("//build.cloudbees.com", "333-QPV-725", 1037, function(form) {
const attribution = JSON.parse(sessionStorage.getItem('cb_ad_attribution') || 'null');
if (!attribution) return;
// Set vals immediately before submission, not on load
form.onSubmit(function() {
form.vals({
utm_campaign__c: attribution.utm_campaign || '',
utm_content__c: attribution.utm_content || '',
utm_medium__c_lead: attribution.utm_medium || '',
utm_source__c_lead: attribution.utm_source || '',
utm_term__c: attribution.utm_term || ''
});
});
// Fire GTM conversion event on submit
form.onSuccess(function() {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'campaign_conversion',
utm_source: attribution.utm_source,
utm_medium: attribution.utm_medium,
utm_campaign: attribution.utm_campaign,
utm_content: attribution.utm_content || '',
utm_term: attribution.utm_term || '',
conversion_origin: attribution.utm_landing_page
});
sessionStorage.removeItem('cb_ad_attribution');
return true;
});
});
</script>
<script>
MktoForms2.whenReady((mktoForm) => {
const form = document.querySelector('#mktoForm_1037');
if (!form) return;
/* ---------- Label → placeholder ---------- */
form.querySelectorAll('.mktoFieldWrap').forEach(wrap => {
const label = wrap.querySelector('.mktoLabel');
const field = wrap.querySelector('input, textarea');
if (!label || !field) return;
if (field.placeholder) return;
let text = label.textContent || '';
text = text
.replace('*', '')
.replace(/\s*:\s*$/, '')
.replace(/\s+/g, ' ')
.trim();
if (text) {
field.placeholder = text;
}
});
/* ---------- Success State ---------- */
mktoForm.onSuccess(() => {
const wrapper = document.querySelector('.contact_form-wr');
if (!wrapper) return false;
const formWrapper = wrapper.querySelector('.mkto-form-wrapper');
const successState = wrapper.querySelector('.mkto-success-state');
if (formWrapper) {
formWrapper.style.display = 'none';
}
if (successState) {
successState.style.display = 'flex';
}
return false;
});
/* ---------- Loader off ---------- */
requestAnimationFrame(() => {
document.documentElement.classList.remove('mkto-loading');
});
});
</script></div><div class="mkto-loader"></div><div class="mkto-success-state"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/69611147c4643f011be05298_a5735dcd1c3684f9c2dbd36324db6f68_check-circle.svg" loading="lazy" alt="" class="icon-large"/><div class="mkto-success_text-wr"><p class="ts-h6">Subscription confirmed</p><p class="ts-p2">You&#x27;ll now receive our latest news, releases, and event updates by email.</p></div></div></div></div></div><div class="frame_bg"><div class="frame_bg_gradient is-contact"></div></div></div></section></main><footer class="footer"><div class="padding-global"><div class="container-large"><div class="f_top-group"><div class="f_top-left-group"><a href="/" title="CloudBees Homepage" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe38f6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe38f6" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_brand w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696254cf9924a1df0698d83e_Brand%20Logo.svg" alt=""/></a><div class="f_social-links"><a aria-label="Visit CloudBees on Facebook" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe38fc" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe38fc" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://www.facebook.com/CloudBees/" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M22 12.0611C22 6.50451 17.5229 2 12 2C6.47715 2 2 6.50451 2 12.0611C2 17.0828 5.65684 21.2452 10.4375 22V14.9694H7.89844V12.0611H10.4375V9.84452C10.4375 7.32296 11.9305 5.93012 14.2146 5.93012C15.3088 5.93012 16.4531 6.12663 16.4531 6.12663V8.60261H15.1922C13.95 8.60261 13.5625 9.37822 13.5625 10.1739V12.0611H16.3359L15.8926 14.9694H13.5625V22C18.3432 21.2452 22 17.083 22 12.0611Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Visit CloudBees on Instagram" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe38fe" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe38fe" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://www.instagram.com/cloudbees_inc/#" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 3H8C5.23858 3 3 5.23858 3 8V16C3 18.7614 5.23858 21 8 21H16C18.7614 21 21 18.7614 21 16V8C21 5.23858 18.7614 3 16 3ZM19.25 16C19.2445 17.7926 17.7926 19.2445 16 19.25H8C6.20735 19.2445 4.75549 17.7926 4.75 16V8C4.75549 6.20735 6.20735 4.75549 8 4.75H16C17.7926 4.75549 19.2445 6.20735 19.25 8V16ZM16.75 8.25C17.3023 8.25 17.75 7.80228 17.75 7.25C17.75 6.69772 17.3023 6.25 16.75 6.25C16.1977 6.25 15.75 6.69772 15.75 7.25C15.75 7.80228 16.1977 8.25 16.75 8.25ZM12 7.5C9.51472 7.5 7.5 9.51472 7.5 12C7.5 14.4853 9.51472 16.5 12 16.5C14.4853 16.5 16.5 14.4853 16.5 12C16.5027 10.8057 16.0294 9.65957 15.1849 8.81508C14.3404 7.97059 13.1943 7.49734 12 7.5ZM9.25 12C9.25 13.5188 10.4812 14.75 12 14.75C13.5188 14.75 14.75 13.5188 14.75 12C14.75 10.4812 13.5188 9.25 12 9.25C10.4812 9.25 9.25 10.4812 9.25 12Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Visit CloudBees on YouTube" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3900" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3900" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://www.youtube.com/user/CloudBeesTV" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M21.543 6.498C22 8.28 22 12 22 12C22 12 22 15.72 21.543 17.502C21.289 18.487 20.546 19.262 19.605 19.524C17.896 20 12 20 12 20C12 20 6.107 20 4.395 19.524C3.45 19.258 2.708 18.484 2.457 17.502C2 15.72 2 12 2 12C2 12 2 8.28 2.457 6.498C2.711 5.513 3.454 4.738 4.395 4.476C6.107 4 12 4 12 4C12 4 17.896 4 19.605 4.476C20.55 4.742 21.292 5.516 21.543 6.498ZM10 15.5L16 12L10 8.5V15.5Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Visit CloudBees on Twitter" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3902" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3902" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://x.com/cloudbees" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M17.1761 4H19.9362L13.9061 10.7774L21 20H15.4456L11.0951 14.4066L6.11723 20H3.35544L9.80517 12.7508L3 4H8.69545L12.6279 9.11262L17.1761 4ZM16.2073 18.3754H17.7368L7.86441 5.53928H6.2232L16.2073 18.3754Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Visit CloudBees on LinkedIn" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3904" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3904" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://www.linkedin.com/company/cloudbees" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 3C3.67157 3 3 3.67157 3 4.5V19.5C3 20.3284 3.67157 21 4.5 21H19.5C20.3284 21 21 20.3284 21 19.5V4.5C21 3.67157 20.3284 3 19.5 3H4.5ZM8.52076 7.00272C8.52639 7.95897 7.81061 8.54819 6.96123 8.54397C6.16107 8.53975 5.46357 7.90272 5.46779 7.00413C5.47201 6.15897 6.13998 5.47975 7.00764 5.49944C7.88795 5.51913 8.52639 6.1646 8.52076 7.00272ZM12.2797 9.76176H9.75971H9.7583V18.3216H12.4217V18.1219C12.4217 17.742 12.4214 17.362 12.4211 16.9819C12.4203 15.9681 12.4194 14.9532 12.4246 13.9397C12.426 13.6936 12.4372 13.4377 12.5005 13.2028C12.7381 12.3253 13.5271 11.7586 14.4074 11.8979C14.9727 11.9864 15.3467 12.3141 15.5042 12.8471C15.6013 13.1803 15.6449 13.5389 15.6491 13.8863C15.6605 14.9339 15.6589 15.9815 15.6573 17.0292C15.6567 17.399 15.6561 17.769 15.6561 18.1388V18.3202H18.328V18.1149C18.328 17.6629 18.3278 17.211 18.3275 16.7591C18.327 15.6296 18.3264 14.5001 18.3294 13.3702C18.3308 12.8597 18.276 12.3563 18.1508 11.8627C17.9638 11.1286 17.5771 10.5211 16.9485 10.0824C16.5027 9.77019 16.0133 9.5691 15.4663 9.5466C15.404 9.54401 15.3412 9.54062 15.2781 9.53721C14.9984 9.52209 14.7141 9.50673 14.4467 9.56066C13.6817 9.71394 13.0096 10.0641 12.5019 10.6814C12.4429 10.7522 12.3852 10.8241 12.2991 10.9314L12.2797 10.9557V9.76176ZM5.68164 18.3244H8.33242V9.76733H5.68164V18.3244Z" fill="currentcolor"/>
</svg></div></a></div></div><div class="f_top-right-group"><div class="f_links-col"><div class="f_link-title">Product</div><ul role="list" class="f_links-list"><li class="f_link-item"><a href="/unify" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe390c" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe390c" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">CloudBees Unify</a></li><li class="f_link-item"><a href="/capabilities/ci-cd-workflows" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3912" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3912" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">CI/CD</a></li><li class="f_link-item"><a href="/capabilities/compliance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3915" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3915" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Security and Compliance</a></li><li class="f_link-item"><a href="/capabilities/feature-management" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3918" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3918" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Feature Management</a></li><li class="f_link-item"><a href="/capabilities/cloudbees-smart-tests" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe391b" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe391b" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Smart Tests</a></li><li class="f_link-item"><a href="/capabilities/release-orchestration" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe391e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe391e" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Release Orchestration</a></li><li class="f_link-item"><a href="/capabilities/analytics" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3921" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3921" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Analytics</a></li></ul></div><div class="f_links-col"><div class="f_link-title">Solutions</div><ul role="list" class="f_links-list"><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3928" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3928" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/use-case/jenkins-modernization" class="f_link">AI-Powered CI</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe392b" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe392b" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/use-case/agentic-devops" class="f_link">Governed AI software delivery</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe392e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe392e" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/use-case/orchestration-and-governance" class="f_link">Multi-tool release orchestration</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3931" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3931" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/use-case/security-and-compliance" class="f_link">Continuous Security and Compliance</a></li></ul></div><div class="f_links-col"><div class="f_link-title">Resources</div><ul role="list" class="f_links-list"><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3938" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3938" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/blog" class="f_link">Blog</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe393b" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe393b" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://ai.cloudbees.com/" class="f_link">AI Design Partner Program</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe393e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe393e" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/company/trust-center" class="f_link">Trust Center</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3944" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3944" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/security-advisories" class="f_link">Security Advisories</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3947" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3947" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://docs.cloudbees.com/" class="f_link">Documentation</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe394a" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe394a" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://support.cloudbees.com/hc/en-us" class="f_link">Support</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe394d" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe394d" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/services" class="f_link">Customer Success and Professional Services</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:45f652bb-ce51-bb9e-5315-9591f50565be" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="45f652bb-ce51-bb9e-5315-9591f50565be" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/ci-waste-calculator" class="f_link">CI Waste Calculator</a></li></ul></div><div class="f_links-col"><div class="f_link-title">Company</div><ul role="list" class="f_links-list"><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3954" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3954" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/about-us" class="f_link">About Us</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3957" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3957" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/newsroom" class="f_link">Press and Recognition</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe395a" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe395a" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/partners" class="f_link">Partners</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe395d" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe395d" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/careers" class="f_link">Careers</a></li><li class="f_link-item"><a href="/pricing" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:d33d1c36-3415-6d11-7870-a106dcea9ba6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="d33d1c36-3415-6d11-7870-a106dcea9ba6" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Pricing</a></li></ul></div></div></div><div class="f_separator"></div><div class="f_bottom-group"><div class="ts-cap tc-tertiary">© 2026 CloudBees, Inc., CloudBees® and the Infinity logo® are registered trademarks of CloudBees, Inc. in the United States and may be registered in other countries. Other products or brand names may be trademarks or registered trademarks of CloudBees, Inc. or their respective holders.</div><div class="footer_bottom-links"><div class="footer_bottom-links"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3968" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3968" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/company/terms-of-service" class="footer_bottom-link w-inline-block"><div>Terms of Service</div></a></div></div></div></div></div></footer></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=695e1939655d6c0175b126da" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/js/cloudbees-staging.schunk.181a2070a530b302.js" type="text/javascript" integrity="sha384-JWdgqTXFub/8eKOkMquT9MN7nnkFfqj2IsxHNIv8W+n3NdpIA3X+EZEx+ykmtOKR" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/js/cloudbees-staging.schunk.4bd9a8a936f24217.js" type="text/javascript" integrity="sha384-zCbeDEMPOwW6NN4QH/7/feRaV4oAvhevE2fLMRH0Y7cZBg2ufLb96qHt2eBfI0Vi" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/js/cloudbees-staging.218fa848.f809c73b119cb9bd.js" type="text/javascript" integrity="sha384-oBYsZOOWP+A6rKZtP5LzKQK5H44W/cXeUHUppiS1lkGsy/KCHgXg+gnBo018jM4V" crossorigin="anonymous"></script><script>
//NAVBAR
// Check scroll position and toggle class
function checkScroll() {
var scroll = $(window).scrollTop();
if (scroll > 0) {
$("#header").addClass('scroll');
} else {
$("#header").removeClass('scroll');
}
}
// Run on scroll
$(window).on('scroll', checkScroll);
// Run on load
$(document).ready(function() {
checkScroll();
// Toggle header's 'scroll' class only if at top
$(".nav__menu-button").on('click', function() {
if ($(window).scrollTop() === 0) {
$("#header").toggleClass('scroll');
}
// Always toggle page scroll (disable/enable)
$('body').toggleClass('no-scroll');
});
});
</script>
<!-- Prevent CMS filter forms (Finsweet Attributes) from triggering native Webflow form submissions / notification emails. Finsweet filtering runs on input/change events and does not require the form to actually submit. -->
<script>
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('form[fs-list-element="filters"]').forEach(function (form) {
form.addEventListener('submit', function (e) {
e.preventDefault();
});
});
});
</script>
<style>
/* 2. Set all animation and transition times to exactly 0 seconds */
#onetrust-banner-sdk,
#onetrust-banner-sdk * {
animation-duration: 0s !important;
transition-duration: 0s !important;
animation-delay: 0s !important;
transition-delay: 0s !important;
}
/* 3. Use standard system fonts to stop font-swapping layout shifts (CLS) */
#onetrust-banner-sdk,
#onetrust-banner-sdk *,
#onetrust-banner-sdk button {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}
</style>
<script>
window.addEventListener('load', () => {
const element = document.getElementById('content');
const result = document.getElementById('result');
if (!element || !result) return;
const text = element.textContent || '';
const words = text.trim().match(/\w+/g)?.length || 0;
const minutes = Math.max(1, Math.round(words / 170));
result.textContent = `${minutes}`;
});
</script>
<script>
window.addEventListener('DOMContentLoaded', () => {
const pageUrl = encodeURIComponent(window.location.href);
const pageTitle = encodeURIComponent(document.title);
const shareUrls = {
linkedin: `https://www.linkedin.com/sharing/share-offsite/?url=${pageUrl}`,
facebook: `https://www.facebook.com/sharer/sharer.php?u=${pageUrl}`,
twitter: `https://twitter.com/intent/tweet?url=${pageUrl}&text=${pageTitle}`,
reddit: `https://www.reddit.com/submit?url=${pageUrl}&title=${pageTitle}`,
};
function openSharePopup(url) {
const width = 600;
const height = 600;
const left = window.screenX + (window.outerWidth - width) / 2;
const top = window.screenY + (window.outerHeight - height) / 2;
window.open(url, 'share-window', `width=${width},height=${height},left=${left},top=${top},resizable=yes,scrollbars=yes`);
}
function setupShareButton(selector, url) {
const button = document.querySelector(selector);
if (!button) return;
button.setAttribute('href', url);
button.addEventListener('click', (event) => {
event.preventDefault();
openSharePopup(url);
});
}
setupShareButton('[aria-label="Share on LinkedIn"]', shareUrls.linkedin);
setupShareButton('[aria-label="Share on Facebook"]', shareUrls.facebook);
setupShareButton('[aria-label="Share on Twitter"]', shareUrls.twitter);
setupShareButton('[aria-label="Share on Reddit"]', shareUrls.reddit);
const copyButton = document.querySelector('[aria-label="Copy URL"], [title="Copy URL"]');
if (copyButton) {
copyButton.addEventListener('click', async (event) => {
event.preventDefault();
try {
await navigator.clipboard.writeText(window.location.href);
copyButton.classList.add('is-copied');
setTimeout(() => {
copyButton.classList.remove('is-copied');
}, 2000);
} catch (error) {
console.error('Copy failed:', error);
}
});
}
});
</script>
<link href="https://cdn.jsdelivr.net/npm/prismjs/themes/prism.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/prismjs/prism.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
const template = document.getElementById('code-template');
if (!template) return;
const LANG_LABELS = {
js: 'JavaScript',
javascript: 'JavaScript',
ts: 'TypeScript',
typescript: 'TypeScript',
jsx: 'React',
tsx: 'React (TS)',
react: 'React',
css: 'CSS',
html: 'HTML',
bash: 'Bash',
shell: 'Shell',
sh: 'Shell',
json: 'JSON',
python: 'Python',
py: 'Python',
makefile: 'Makefile',
make: 'Makefile',
yaml: 'YAML',
yml: 'YAML',
};
function normalizeLang(lang) {
lang = (lang || 'code').toLowerCase().trim();
const aliases = {
javascript: 'js',
typescript: 'ts',
sh: 'bash',
shell: 'bash',
py: 'python',
make: 'makefile',
yml: 'yaml',
};
return aliases[lang] || lang;
}
/* ---------- Webflow imported code fallback ----------
Converts:
<p><code>LANG:makefile<br>...</code></p>
into:
<pre data-lang="makefile"><code>...</code></pre>
*/
function getCodeTextWithBreaks(codeEl) {
let text = '';
codeEl.childNodes.forEach((node) => {
if (node.nodeType === Node.TEXT_NODE) {
text += node.nodeValue;
} else if (node.nodeName === 'BR') {
text += '\n';
}
});
return text;
}
document.querySelectorAll('.w-richtext p > code').forEach((codeEl) => {
const rawText = getCodeTextWithBreaks(codeEl);
const lines = rawText.replace(/\r\n/g, '\n').split('\n');
const firstLine = (lines[0] || '').trim();
const match = firstLine.match(/^LANG:(.+)$/i);
if (!match) return;
const lang = normalizeLang(match[1]);
lines.shift();
const pre = document.createElement('pre');
pre.setAttribute('data-lang', lang);
const code = document.createElement('code');
code.textContent = lines.join('\n').replace(/^\n+|\n+$/g, '');
pre.appendChild(code);
const paragraph = codeEl.closest('p');
if (paragraph) {
paragraph.replaceWith(pre);
}
});
/* ---------- Render code blocks ---------- */
document.querySelectorAll('pre[data-lang]').forEach((pre) => {
const lang = normalizeLang(pre.dataset.lang || 'code');
const clone = template.content.cloneNode(true);
const wrapper = clone.querySelector('.code-block');
const body = clone.querySelector('.code-body');
const langText = clone.querySelector('.code-lang-wr p');
const copyBtn = clone.querySelector('.code-copy');
let code = pre.querySelector('code');
if (!code) {
code = document.createElement('code');
code.textContent = pre.textContent.trim();
pre.innerHTML = '';
pre.appendChild(code);
}
code.className = `language-${lang}`;
pre.setAttribute('data-lang', lang);
if (langText) {
langText.textContent = LANG_LABELS[lang] || lang.toUpperCase();
}
const parent = pre.parentNode;
parent.insertBefore(wrapper, pre);
body.appendChild(pre);
if (copyBtn) {
copyBtn.addEventListener('click', (e) => {
e.preventDefault();
navigator.clipboard.writeText(code.textContent).then(() => {
copyBtn.setAttribute('aria-label', 'Copied');
setTimeout(() => {
copyBtn.setAttribute('aria-label', 'Copy Code');
}, 1500);
});
});
}
if (window.Prism) {
Prism.highlightElement(code);
}
});
});
</script>
<!-- TOC -->
<script src="https://cdn.jsdelivr.net/gh/helenmadeit/webflow-scripts/toc.js"></script></body></html>